Course - ME218B - Smart Product Design Applications
Duration - 4 weeks, February 2020
Skills - software design, event-driven programming, prototyping, integration, debugging
Skills - software design, event-driven programming, prototyping, integration, debugging
Since my previous mechatronics project, I learned more about interrupts, stepper motors, DC motors, closed loop control, synchronous serial communications (SPI), and state charts. Armed with this knowledge, our team of four was ready to tackle building an autonomous robot that could locate IR-emitting beacons and transport them to the correct location.
My main focus was on software. I designed hierarchical state machines, translated state charts to code, and wrote a service to handle SPI communication between the SPUD and TIVA. I also supported the mechanical and electrical subsystems in order to ensure a successful integration. Some of these tasks included soldering perfboards, troubleshooting noisy circuits, iterating on the robot's physical design using SOLIDWORKS, lasercutting parts, and constructing the robot.
Our team faced several challenges throughout our project, but one of the most difficult to overcome was the noise in our phototransistor circuit that was used to detect IR emitting beacons (MINERS). The four periods that we were looking for were 300us, 500us, 700us, and 1100us, yet we were seeing noise in the ranges of 300-500us. These false readings would have impaired our ability to perform on the field if we had not corrected them. We first ran our phototransistor circuit off of an external power supply to ensure that it worked properly when isolated from the rest of the robot's electrical system. When we could confirm that the circuit worked independently, we slowly added back in the different components of the circuit to determine where we saw noise. Our solution to this issue (as well as other design challenges) are discussed here.
Watch our gameplay video below or visit our project website to learn more about this project!