Our main accomplishments this previous week were as follows:
The robot is approaching being mechanically and electrically complete!
We integrated our custom PCB into it's final enclosure. We purchased the perfect case from OSUsed, which provides us with IEC power input, a power switch, and a NEMA 15 output that will allow us to control our compressor. We also are using the steel of the case to dissipate heat from one of our hottest voltage regulators.
Neat wiring in Electrical box.
We wrote firmware for both of our microcontrollers. Oh yeah, we now have two microcontrollers! It turns out that the 16MHz Sparkfun Redboard didn't' have enough "umph" to handle all of the requirements we were throwing at it (including 2 FastLED strips of LEDs, a 38KHz IR LED modulation scheme, UART, etc.) simultaneously, So we set the Redboard to act High Impedance on these connections and attached a Teensy 3.2 to handle these strict demands for timing. This microcontroller talks to our computer in parallel with the other one, and simply makes it's features available via a ROS Topic, which makes it no different to the controlling software. This firmware is in a working state now, and it just needs to be tweaked as necessary for the competition.
Our main microcontroller integrated into case.
We've combined our group's experience with wiring tons of different robots, and the cable available in the Applied Robotics lab, to create a robust wiring system for this robot. All of the wiring terminates in locking connectors into our new electronics box.
Robot wiring during manufacture and testing.
We finally brought together all of the different parts of our firing system into a roughly final implementation. You can see three of the main parts of the system to the right: the blowgun/firing servo, the digital pressure sensor, and the custom-made pressure vessel. The system also includes an off the shelf inflator (off picture to the right) and the firing end effector that is off to the left.
The tamping servo is a necessary part of our system to ensure that the ball has an effective and consistent seal with the PVC end effector. It has currently been designed, and is being manufactured, although it's final design might change.
Finished and tested automated firing system.
We have updated our GUI to be a preliminary version of what we will use for the final competition.
Unfortunately, we've reached our cutoff for attempting to use Computer Vision of some distinction to catch the ball. We gave ourselves until the checkoff this week to come up with a viable solution, and haven't found one. So we will be pivoting to a more traditional catching method that just takes up the area where the ball could fall and funnels it into a pre-set catching position. This will be designed and implemented this weekend, in preparation for the upcoming seeding competition on Tuesday.
As discussed above, our primary microcontroller doesn't have the capability to perform all of the tasks that we wanted it to do (a lack of an appropriate amount of Timer Counters and the pickiness of the timing for the FastLED library are to blame). So, we added an additional microcontroller (a Teensy 3.2) on the side that parallels our main SparkFun Redboard and handles some of the challenging tasks.
The seeding competition is Tuesday! Electrically there is nothing major that remains that has to occur before the competition. Now that we are no longer approaching the CV task, we just have to implement strategic use of the capability that the computer has been made available to it (making the appropriate menu items, etc). We are also planning to implement automatic firing based upon face detection, but it is unclear whether that will happen before the seeding competition.