Project Title:
Microcontroller Implementation of a Small Robot Arm
Controller
Week of: March 21st, 2000
Engineers:
Megan Bern and Ritesh Patel
Advisor’s Signature: _________________
Grade: _______
=================================================================
Objective:
For the week of March 21st, 2000, the first objective is to fix a problem with the controller shown in Figure 1. This block diagram does not represent unity gain. The lack of a gain of 0.05 after the step input will give 20° of position of the robot arm for every 1 volt input into the controller. The second objective is to continue the menu system.
Figure 1:
Block Diagram of P Controller
Progress:
The problem with Figure 1 was that the value used for 35.66 is software was 70/3. This value, 70/3, is not equal to 35.66. Instead the value below will replace 70/3 in software.
Replacing 70/3 by [7/4+1/30] will make a huge different in the output position of the robot arm. After the change was made in the software, Prg4d_df.a51, attached to this report, the robot arm moved from approximately -30° to +30°. This was compared to the simulation of Figure 1 using Simulink for a step input of 5V. This result is shown in Figure 2.
Figure 2:
Simulink Results for P Controller
The simulation results and the experimental results are a very close match. This verifies that our P controller shown in Figure 1 has been implemented in software.
The menu system was the next objective for this week. We have completed the main menu prompt. It reads the following:
Press 1 or 2
1=In 2=Out For Menus
The code is written to except only a 1 or a 2 from the keypad. This is shown in Prg4d_df.a51. If a 1 is excepted, the code will jump to a INPUT1 subroutine. If a 2 is excepted, the code will jump to a OUTPUT1 subroutine.
Once in the INPUT1 subroutine, the microcontroller will write the following to the LCD:
Press 1 0r 2
1=JOYSTICK 2=INSIG
The code is written to except only a 1 or a 2 from the keypad. If a 1 is excepted, the RAM location called joy will change from a 0 to a 1. The interrupt will check this RAM location and allow the input to an A/D from the joystick if there is a 1. It will then loop back to the main menu prompt and wait for the next input before it turns the joystick off. If a 2 is excepted, it will then go to another prompt which has not been developed yet. Right now it just loops back to the main menu prompt.
Once in the OUTPUT1 subroutine, the microcontroller will write the following to the LCD:
Press 1 For Error
or 2 For Other Sigs
The code is written to except only a 1 or 2 from the keypad. If a 1 is excepted, the error signal will be displayed which has not been developed. For now, it loops back to the main menu prompt. If a 2 is excepted, the microcontroller will write the following to the LCD:
Press 1 For Output
or 2 For Other Sigs
The code is written to except only a 1 or 2 from the keypad. If a 1 is excepted, the output position signal will be displayed which has not been developed. For now, it loops back to the main menu prompt. If a 2 is excepted, the microcontroller will write the following to the LCD:
Press 1 For Filtered
Pos or 2 Other Sigs
The code is written to except only a 1 or 2 from the keypad. If a 1 is excepted, the filtered position signal will be displayed which has not been developed. For now, it loops back to the main menu prompt. If a 2 is excepted, the microcontroller will write the following to the LCD:
Press 1 For Command
or 2 For Other Sigs
The code is written to except
only a 1 or 2 from the keypad. If a 1 is excepted, the command signal
will be displayed which has not been developed. For now, it loops back
to the main menu prompt. If a 2 is excepted, it loops back to the
main menu prompt since feedforward control has not been developed yet.
This is as far as we got on the menu system.
Conclusion:
Overall we implemented the block diagram shown in Figure 1 in software. The robot arm was moving as expected. We are on schedule. Week 9 will be used to proceed with our menu system. Below is the schedule for weeks 9-12.
Schedule for Weeks 9-12