I wanted a videostream so I could keep an eye on my prints. I didn't want to print one of the standard RPi + camera cases for my printer so I decided to make it into a little rover robot. It's inspired by the butter passing robot in Rick and Morty because I liked the looks and personality of it.
The brain of this robot is a RPi zero W the servos are directly connected to the GPIO and the DC motors are connected via a L9110 motor driver. To drive this robot I decided to use the Blynk app after I found out that they support a video stream because that is the most important function of this robot. It was surprisingly easy to use this app with the Python library they developed even while this library is still in alpha it worked great.
The video stream is set up using MJPG streamer after flipping the image because the camera is mounted upside down it worked flawlessly, however the video stream inside the Blynk app lags a bit this isn't the case in the browser.
To control the servos I use ServoBlaster because this retains the PWM output in the background. To use this inside a Python script I decided to use the os module to run command line commands.
Improvements to make
- The powerbank that I used as battery for this robot isn't able to provide enough current as I experienced some brownouts while driving the robot. So I should replace the charging circuit with a better charging circuit, preferably one that supports charging and discharging at the same time.
- The servo I am using in the neck isn't strong enough and it probably already ripped some of the plastic teeth. I already expected this but this was the servo I had on hand, so this servo should be upgraded to a stronger servo with metal teeth.
- The wheels are made of PLA so they don't have enough friction to really drive around. I plan to upgrade this to rubber tracks when I have some flexible filament, this also makes it look more like a Butter passing robot from Rick and Morty.