For this robotics project, we were tasked with remotely driving a car using 2 Raspberry Pi Picos. The Raspberry Pis communicated with each other using MQTT control. This involved creating a broker on a computer and then assigning one Raspberry Pi Pico to be a subscriber (receives the data) and one to be a publisher (sends the data).
Our challenge was to remotely drive our car from an undisclosed location back to our classroom using the camera of the onboard phone to navigate. Our car won the race being the first one back in the classroom!
The body of the car was designed in Onshape and then cut on a laser cutter. To make the pieces fit together I utilized the “Laser Joint” feature on Onshape. My priority in this design was having holes for the robo-pico motor controller and the servos. I also wanted a stable mount for the phone and for the whole car to be level.
Because we were only using 2 motors we needed to have a ball caster on the back. I was able to 3D print one using this design. It uses a marble as the ball. It was smooth and functioned well.
Onshape rendering with laser joints
Final product fabricated out of wood and acrylic
This project utilized 2 Raspberry Pi Picos, 1 robo pico motor controller board, 1 gamepad joystick, and 2 continuous servo motors.
Our code works using MQTT to send data from one pico to another pico. There is a computer that acts as a broker between the 2 picos. For this assignment, my partner Chris did the majority of the code for the publishing pico. The code uses several libraries to function. Our library for the servo motors was made using ChatGPT.
Hardware mounted on the car body