David’s Status Report for 3/9/2024

This week, I worked with the group on writing the design report. Besides that, I finalized the motor drivers for the arduino as well as the interface between the arduino and rpi. There are now commands for dealing a card and rotating the platform an arbitrary amount of steps. The rpi will wait for the arduino to send back a “done” message to ensure the two microcontrollers stay synchronized. I also wrote code for data collection for the card classifier.

I am on schedule. Next week, I will work with Jason on generating the card classifier data set as well as implementing the interface for the hardware controller. For generating data, generating images of the bottom is very simple as dispensing cards is automated. However, generating images from the top is more tedious as we need to manually place each card so we cannot automate the data collection process. This just means we’ll have to spend some time taking pictures.

David’s Status Report for 2/24/2024

This week saw a big step forward in the mechanical side of the design. I wrote drivers for the servo and dc motors for testing. We got the rotating platform working along with the stepper motor. We are getting a smooth and consistent rotation. We also got the card dealer working as we were able to use the dc motor to push the cards out with enough speed. We were unable to test automated card extrusion as the gear for the servo motor had not been printed yet. However, we were able to test just using our hands to turn the roller and we can test the servo motor tomorrow as the gear is now printed. We have attached videos in the team status report showing the subsystems working. I also tested the white LED’s we bought for lighting inside the chassis for card classification and they work fine. Lastly, I started working on the event loop that the raspberry pi will run during actual operation. I planned out the functions we will need to add as well as the control flow of deciding what to do on each turn.

I am on schedule. Next week I will work on finalizing the camera drivers and start automating data collection for our ML model. I will also work on fleshing out the event loop and modifying the UNO software implementation.

David’s Status Report for 2/17/2024

This week all of the parts arrived which allowed me to start testing the drivers for the motors and cameras as well as testing the batteries. I soldered the motor shield pins and got a proof of concept for all motors working. I also was able to get images from the Pi camera and output them to a jpeg file.

I also got UART communication between the Pi and Arduino working which will allow us to send commands to control the motors from the Pi.

All code I worked on this week is included in the UNOmatic repo that Jason shared last week.

Lastly, I tested the batteries and the voltage converter. We proved that we were able to power the motors from the 12v battery and get 5v for powering the raspberry Pi from the 12v battery as well. We also powered on the Arduino using the 9v rechargeable batteries.

I am currently on schedule. Next week, I want to get started in assisting Jason with collecting image data for the card classifier. We will have to decide on an image size and format. The picamera library provides support for outputting images as numpy arrays so that will be our first try. I also will work with Thomas to tune the motor parameters to get smooth rotation and card dealing.

David’s Status Report 2/10/2024

This week I made and finalized the parts list and wrote up all of the necessary information for submitting the purchase requests. Choosing the particular motors was very important as we had to take into account the current limitations on the Adafruit Motor Shield V2. I will formally submit the requests before the end of class on Monday to ensure we can get our parts ordered in the Tuesday batch. I also assisted Thomas in designing the enclosure and fleshing out the card dealing system. I did research on controlling the stepper and servo motors using the motor shield: https://cdn-learn.adafruit.com/downloads/pdf/adafruit-motor-shield-v2-for-arduino.pdf.

I also powered on the RPI 5 and determined that 5V 5A can be supplied through the GPIO pins. This allowed us to finalize the power delivery system to the RPI 5 using a buck convertor to step down 12V DC from the battery to 5V 5A dc output, instead of using a separate power supply which would have required a slip ring in our design.

I am currently on track, and once we get parts delivered, I will be able to start implementing motor drivers and calibrating the movement as well as getting images using the RPI 5 and raspberry pi cameras. I am most heavily prioritizing getting motors power on so we can test if our gear system for rotating our platform is sufficient as well as estimate battery life.