- You may use any online resources, datasheets, or documentation needed, but be mindful of your time and stay focused on the task.
- The duration of the test is 90 mins from 5:15pm to 6:45 pm.
- There will be a MCQ test conducted here
- There are 3 tasks in the tests. Complete all of them.
- In case you are not able to complete all the tasks, do upload the whatever you are able to do.
- In the
README.md
of your repository include your thought process, places where you got stuck, where you used the help of chatGPT, google or other online resources. - Even if you are not able to solve anything. Do fill the readme and what your thought process would have been.
- Carefully read the instructions to implement the required functionality.
- Install mingw(c compiler) and git if you haven't already done it.
- After finishing your test, provide the link to your forked repository in the google form provided at the end.
Aim/Objective: You are implementing code to control motors for a rover using data received from an RC transmitter.
You are implementing code to control a sabrtooth motor driver(we are only trying to control motor 1 using S1 of Sabertooth), connected to drive motors of the rover, using data received from an RC transmitter(make note that the transmitter is configured to transmit data in extended limits). The data from the transmitter is being recieved by a SBUS reciever module, you can find about the data protocol used here.
Task 0: Fork the provided repository and ensure it is set to PUBLIC so we can access and assess your work.
The motor driver (Sabertooth 2x60
) in the simplified serial mode (check out the datasheets)
Your task is to interpolate a channel value into the format accepted by the motor driver, and make the rover move in forward or backward direction.
- src/main.c: Code for running the test.
- lib/parsing.c: Complete the defined
interpolation
function here.
(make sure you are in the root directory)
- Compile your code by running:
make build
- To check if your code is implemented correctly run:
make check
If you are able to compile your code successfully you should see something like this on your screen:
- If your make check was unsuccesfull, you can clean your attempt by running
make clean
, review your implementation and repeat the previous steps.
Describe what you understood about the problem.
After understanding the problem, describe how you decided to proceed towards solving the question.
How did you decide to implement your solution.
Mention the details, such as the scaling used in the interpolation and how you tested it.