Integrated System Build & Test
Table of Contents
Team Vision for Integrated System Build & Test PhaseIn the past two week since our last review we have been quite busy. Here are just some of the things we've accomplished!
- Programmed the Arduino side of the software to allow for relatively accurate control of the motor
- Successfully tested both QtGUI/Arduino with the motor setup and the motor tracked according to the user inputs
- Further plans made to streamline the GUI and make the Arduino code more efficient and more accurate.
- The dimensions were calculated to include both sprockets and the idler pulley to fit the belt length we have chosen.
- CAD Model for calibration unit has been modified since last week.
- Power supply housing is done!
- Updated SW model of overall device
- Updated BOM to reflect SW model
- Filled out purchasing documents for base plate and yoke materials and went and picked them up from our supplier
- Debugged the Arduino script
- Implemented debug features and features from meeting with Dong in previous weeks
- Discussed alterations to the yoke structure
- Worked to add a supporting structure to the design for the base plates in Solidworks
- Met with Rob in machine shop to obtain feedback on our design
Software Updates and TestsIn terms of recent progress, the code has been revamped and been made more efficient. Direct timer manipulation allowed for simple code which can be run quickly in order to create the pulses necessary with accurate timings. The delay between the Arduino running the commands and the GUI sending them have been virtually eliminated and can be run less than 10ms apart, although this will be limited by the physical design of the belt and pulley system. An initial error with the microsecond delay receiving too large of an integer was fixed and resulted in more accurate motor tracking.
Communication between the Arduino and GUI have been improved, as the Arduino can now send data to the GUI which can be parsed. Features that need to be programmed are the high level feedback (HLFB) of the motor telling the Arduino when the motor has reached +/- 1 encoder count to the end position. The time difference between the commands received and ran to the time the HLFB goes high can be used to measure the time the whole movement of the motor took.
A script consisting of movements from -30 to 30 degrees and back to 0 position was run 20 consecutive times to generate the above graph. The current problem that is a high priority is the fact that when the motor is run through a script like this, the error compounds and increases with each movement due to the inaccuracies of the Arduino pulse train and the inherent inaccuracies of the motor (+/- 1 encoder count). This can be alleviated by having the motor return to home position every few movements which brings it back to 0 position +/- 1 counts. More work is being performed on how to reduce this error.
Risk and Problem Tracking
Bill of Materials
- Total Price $1020.44
- Budget Left $79.56
- Total Purchased $898.80
- Purchased Difference $201.20
Update on Manufacturing
The belt and sprockets have come in the mail, and can be seen below. These components are essential for the belt drive which will improve the system's overall resolution.
The enclosure for the Power Supply has been assembled. However, the parts for the enclosure did not go together quite as was predicted. We are looking into ways to improve the design of the enclosure and potentially construct a replacement, if necessary.
The design for the calibration unit has been refined as well. Earlier, the unit was planned to be secured to the dynamic eye clamp through three holes, but it now uses a pattern of four holes. This four-hole system allows for the unit to be better secured to the front of the eye, since it uses both halves of the clamp. It was originally thought that the holes should all go on one half of the clamp due to not all model eyes being exactly the same diameter, but this was addressed by enlarging the holes in the calibration unit.