This week, I spent time prepping for the interim demo and starting mechanical construction. For the demo, I focused on getting the hardware system ready. The main circuit and operation was constructed a few weeks back, and I spent some time making sure the integration of the Jetson and Arduino worked. I wrote a script for the Jetson to take the output of the model and send it to the Arduino rather than the initial hard-coded test script I was using. As the demo neared, I began having issues with the Arduino port switching when multiple model outputs in a stream were sent (when trying to have multiple rounds of waste being sorted). I spent some time attempting to research and fix the issue, and will continue later this weekend. On the mechanical side, I finalized the remaining parts that we needed and put an order in early in the week. I then used the Techspark laser cutter to cut our acrylic frame and door. Once the parts ordered arrived, I assembled our axle structure and aligned it to the servo so it turned the right amount and direction.
My progress overall aligns with the newer schedule. However, I might need to spend a little more time on the Jetson Arduino integration, as while it works for one iteration before the port resets, it is important that it works for multiple inputs. Mechanical construction has also begun so I am on track for that as well.
Next week, I plan to finish constructing a good portion of the main frame (making holes for the screws in the acrylic and hardware cables, connecting the door to the frame) so that we can start integrating the hardware, and see if I can solve the port issue.
In terms of testing, I have been conducting a few tests as each part of the hardware subsystem was built, mainly in regards to operation accuracy (which is one of our most important requirements). While integrating each component (neopixels, speaker, and servos), I did them one at a time, and made sure they either displayed the correct color, produced the right sound, or turned the right direction. After this, I tested multiple components at once, initially making sure that the color, sound, and directions were correct, then adding in delays, specifically for the servos, so that the correct lock unlocked before the main servo turned so that the door doesn’t get stuck, and the lock closing after the door returns back to place. After making sure the logic for all the components together were correct based on the model value that the Arduino would receive (fulfilling the requirement for the correct alerts and door movement being produced), I started working on Jetson integration. First, I tested that the correct hardcoded value was being sent over serially, then tested multiple, then tested actual integration with the output of the model. As I work on the mechanical door, I will have to test and tune the angle and direction of the servo now with the additional parts attached to it. Additionally, once the door works, I will increase/reduce the delays currently inputted so that the door works properly and as fast as possible without getting stuck with the locks (another requirement).
Going forward, once the system works accurately, I plan on testing individual times and attempting to reduce them so that overall system operation time is reduced as having our system operate each round in less than 5 seconds was one of our defined requirements. I will make sure the door operation takes less than 2-3 seconds, and the overall circuit begins to operate within one second of model output.