Second Year
Automated Measurement System
This system, was designed for quality assurance in industrial automation lines, it automates the validation of part tolerances right after manufacturing. Parts are placed on a rotary platform where computer vision, facilitated by Python and OpenCV, rotates each part for precise measurement. The system employs a moving clamp with a rotary encoder to gauge critical dimensions through force sensing, automatically halting upon secure contact with the part. Measurements are converted from rotary motion to linear distances, ensuring accurate dimension verification.
​
As the lead firmware engineer, I developed the core system functionalities using C++. My responsibilities encompassed programming the ESP32 and the main control unit to manage motor operations, dimension derivation, and the user interface. I also established a custom communication protocol akin to I2C between the ESP32 and the system's main brain. Additionally, I collaborated on integrating Python-driven rotation data into the C++ framework via web sockets, enhancing the precision and reliability of the measurement process. Any parts failing to meet specifications trigger automatic logging of the discrepancy, coupled with a visual alert on the display, ensuring seamless quality control.
Custom Communication Protocol
The VEX V5 brain is required to receive data from a PC regarding what angle it should rotate the object to (the PC is using computer vision to determine this, more on this below). However, because the VEX V5 brain uses proprietary software and firmware, standard communication protocols like UART, I2C, SPI, etc… are not available on the brain. The only thing that was available was the ability to read a wire as being a digital high, or digital low (0 or 1). Based on this our team worked on creating a custom communication protocol such that an ESP32 could be used as a middleman to wirelessly receive data from the PC and then send that data over 2 wires to the brain using our custom uni-directional, peer-to-peer, communication protocol, which was loosely inspired by I2C, carrying over the concept of a clock and signal line. We began by converting our angle into binary, and then transmitting it using our communication protocol (90-degree angle shown in the image above) to the brain, and then decoding this signal back into motor encoder ticks for the turntable motor to rotate the object to the correct orientation. There were several challenges, and innovations made regarding this custom communication protocol, though the details are out of the scope of this project. The result however is the system is able to receive an angle input from a PC wirelessly thereby being able to rotate an object to its correct orientation
UW REACT: FRC RI3D
With a grand total of 3h of sleep over the course of 2 days this was definitely an intense event. As team lead of UW REACT I had the responsibility of organizing this "robot in 3 days" hackathon style event, this meant a lot of work, both technical, and non technical prior to the event, and truly some of the "hardest fun I have ever had" during the event. Despite only having 30% of the member turnout I projected we would need, me and 4 other team mates scrambled over 48 hours to go from quite literally nothing, to what you see above. In fact the very nature of the challenge is you don't even know what your robot is supposed to do prior to the start of the challenge. This meant a lot of trips to Canadian Tire and Home Depot to grab extra supplies, despite doing A LOT of planning before hand to try to account for every raw material we might need. Despite the personnel and time constraints I think we did a great job of meeting the challenge objective (to take those rings and launch them into a goal), hopefully serving as inspiration for many of the high school teams that will get the next 6-8 weeks to work on their robots.