Let's Make Robots!

Build a Raspberry Pi Camera Robot (Updated)

Hi all, I'm a big fan of Dagu's Mini Driver board, and having realised recently that its 5V voltage regulator could provide up to 1A I've put together a tutorial which shows you how you can easily use it to build an affordable Raspberry Pi Camera Robot that you can drive round using a web browser on a tablet, smartphone or computer. All of the required software is provided as an SD card image, so it makes it really easy to get up and running with a cool robot quickly.

We also have a chassis bundle in our store which provides parts needed to build the robot. If you buy this bundle then it comes with wires soldered onto the motors, and connectors crimped onto all of the wires. So no soldering is required, you can just plug everything together and start having fun. :)

Any comments or suggestions would be very much appreciated. Also, all of the software we wrote for the robot is open source and available here in case it's of use to people building their own Raspberry Pi robots.



Update 18/06/2014 - We've carried on improving the software for this robot, and so the new things to share since our original post are

New software and an updated SD card image for the robot featuring, faster camera streaming, more config options, and an off button in the web interface...

We've released an open source Python library that allows you to connect to the webserver running on the robot, and write scripts to give the robot autonomous behaviour. The scripts can run either on the robot, or on another, more powerful computer. The library lets you stream images from robot's camera for computer vision with OpenCV, and you can also get motion vectors from the robot's camera (free low resolution optical flow! :) ).

We've started to sell a USB powerbank that can be used to power the entire robot. This is more expensive than using rechargeable AA batteries, but gives longer running time (approx 3hrs compared with 1.5hrs for Duracell NiMh) and means that you don't have to buy a separate charger.

As always, any questions, comments or suggestions much appreciated.

Update 15/09/2014 - We've now expanded the kit slighty so that we run the Pi off a UBEC (efficient switching voltage regulator) rather than the Mini Driver's linear voltage regulator. This gives more current overhead for attaching sensors, and increases the robot's battery life to 3 hours when running off 6xAA NiMh batteries. Details of our battery testing process can be found in this blog post.

Also, we've updated the robot's software so that it's really easy to attach lots of sensors to the robot and read from them using Python. The tutorial showing how to attach and read sensors can be found here.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Hi abroun,

in june I'll speak at German Raspberry Pi Jam Pi and More and I wonder, whether I may use the photos of your robots in my powerpoint presentation. The presentation will be accessible in the web after the event. Of course I will credit the photos to you or your company.

We' made some updates to the robot software, and so edited this post

To squeeze the full amp from the Mini Driver regulator you need to becareful about your battery voltage. Do not exceed 6V.

DAGU has a 5xAA battery holder. If you use 5x NiMh cells then that is perfect.

Cheers OddBot, that's good to keep in mind. At the moment, using the Wifi adaptor we suggest in the tutorial I think that the Pi and Mini Driver draw about 0.7 to 0.8A (I need to check again to be sure), but that would definitely be handy if people wanted to expand the robot with more sensors.

I didn't realise that Dagu had 5xAA battery holders, I'll get some with my next order. :)

We never got round to switching to a 5xAA battery holder, but we have started supplying this robot kit with a UBEC (efficient switching voltage regulator). This almost doubles the battery life when running of 6xAA NiMh batteries to about 3 hours. We've got a blog post decribing the change and battery testing here.

Great tutorial.  I specifically like that you put me onto "INO"  commandline too for arduino.  I do all of my Arduino development *ON* the Raspberry Pi attached to the various service Arduinos. The process typically involves having a sshfs mounted on my laptop so I can at least edit the files properly.  Once edited, I have to launch a vncvewer, open the Arduino IDE compile and upload...

You've saved me a great deal of time... Just because I didn't ask the question myself...

"Hey, anyone know a good commandline arduino tool?



Cheers, and best of luck on your next project.


Thanks for the comments, and yeah INO is a real gem of a library. I'm currently working on a small Python Firmata client library for this Raspberry Pi Arduino add-on board I sell, and I'm using INO so that when you load up the library, if it doesn't find the Firmata sketch on the Arduino it will automagically load it in the background. I'm hoping that it'll make for a really simple user experience and allow the board to be used as a kind of general purpose IO board for the Pi.

But yeah, whenever I have what I think is a good idea, like 'building and loading sketches from the command line would be cool' I go straight to Google to try to find the implementation by the people who had the idea before me. :)

I tend to forget to google for a solution so I accidentally implemented something like INO my self... Of cause not as flexible as INO it seems.

Thanks, and awesome looking robot btw. :) I like all the wiring and electronic work you've done on it to keep it looking neat.

The basic task of controlling a Raspberry Pi over wifi and streaming back camera images is something a lot of people have done, but I'd like to make a straightforward software package that people can use to get started quickly, and then adapt to their particular robot, so that they can get on quickly with cooler higher level stuff.

The code is rather clunky at the moment, and a bit too focussed on the one robot, but I'm hoping to expand and refine it over the coming months so any comments you had would be very much appreciated.



Nice :) I'll have a good look at your code. I'm trying to make something similar: http://letsmakerobots.com/node/40106