<aside> 👇 Table of contents
Cybertruck robot car
PCB I designed and soldered
What I did in this class
We designed and built this robot to carry a 1kg weight on it and traverse a maze. We communicate with the robot with a Raspberry Pi and using the MQTT framework to send commands. There is a Python program on my computer that detects keypresses, sends them to an MQTT broker, then the Python program on the Pi receives these commands and uses a stepper motor library and multithreading to control two H bridges which then control the two stepper motors. We also experimented with using Flask to send commands and receive a live video feed from the robot.
<aside> <img src="/icons/banana_yellow.svg" alt="/icons/banana_yellow.svg" width="40px" />
Make a game that uses a microcontroller user input, and a motor. That’s the whole prompt. My primary constraint for this project was that I wanted it to center around a dropping mechanism because I wanted to design one that I could use to drop heavy things from my drone.
</aside>
SolidWorks model
This dropping mechanism uses a servo to slide a pin out which then allows this bottom bar to flip down and drop the load. This mechanism allows a lightweight and cheap servo to release heavy weights. If the load were just on the servo arm without this series of mechanical advantages, the servo would likely break
The dropping mechanism is manufactured as three layers of laser-cut wood which I then glued together
To make this dropping mechanism into a game, I played around with several ideas. Eventually, I went with having the knob that the user could turn to control the position of a stepper motor. By timing the turning of the knob so it is in phase with the swing of the dropping mechanism, you can get the swing to be quite large. Then the user presses a button to release the dropping mechanism with the overall goal to “get the banana in the box”
Wiring. Cleanliness was not a priority…
User interface
I designed and manufactured two ways of securely connecting a string to a motor D shaft
Spool manufactured on the lathe. It uses a set screw to connect to the D shaft
Simple lever arm I cut out on the water jet cutter
For project 2, I designed (including the schematic and layout) a printed circuit board (PCB) to control a DC motor. I then soldered the through hole components and validated it (it worked!). The board takes two 3.3 volt input’s from a microcontroller and uses that to toggle four MOSFETs to give the motor either 12 volts (forwards), -12 volts (backwards), or 0 volts (stopped). The two LEDs indicate the direction of the motor.
PCB layout. Uses both sides, and the silkscreen for additional component information
PCB schematic
Final soldered and functional board