Your ultimate goal for this lab is to use systick system


Assignment

Your ultimate goal for this week's lab is to use SysTick system timer to create a periodic interrupt which will then be used to implement two separate PWM signals (variable duty cycle digital outputs) to control the left/right and up/down position of a small robotic arm.

By varying the duty cycle between limits, the robotic arm's left/right and up/down angles will be changed.

Here are the requirements for this solution (given a breadboard, single variable resistor, wires, and 2 axis microservo robotic arm):

1. Implement a "manual" mode which you will be able to change the position of the left/right servo and the up/down servo one at a time.

2. There must be a method to adjust the PWM (duty cycle) of each servo axis (one at a time) using a single analog input from the user in real-time.

3. You must also implement an "automatic" mode which will automatically change the servo position for both the left/right and up/down servo from one extreme position (-90 degrees from neutral to 90 degrees from neutral) continuously until manual mode is entered.

4. You must have a display indicator that gives an alphabetic label for the servo axis you are currently adjusting (or last adjusted), i.e. l/r, u/d, or bth for left/right, up/down or both. This must work in both manual and automatic modes.

5. You must have a way to latch each servo's position (in degrees) from neutral and continuously display it after it is set. This must work in both manual and automatic.

6. There should be no way to make your PWM'ed servos, display of the duty cycle, or software malfunction just by switching the switches, or adjusting the variable resistor at any time.

7. There must be at least 50 levels of PWM resolution from -90 degrees from neutral to 90 degrees from neutral. The servos don't have to move exactly 180 total degrees (they don't) but they do have to move as far as they can judging by an oscilloscope measuring the duty cycles of digital outputs going to the servos at -90 and +90 degrees.

8. NOTE: You may only write in C and use no assembly files except for functions SetSysClock(), gpio_c_init(), gpio_d_init(), seg7_init(), seg7_put(), adc_start(), adc_done, and adc_init. I suggest using your last week's lab main.c (and makefile) and build on it from there.

Request for Solution File

Ask an Expert for Answer!!
Other Engineering: Your ultimate goal for this lab is to use systick system
Reference No:- TGS02547706

Expected delivery within 24 Hours