Archives for posts tagged ‘raspberry pi’

My First Robot, part 1

Isabell is ready for robots!

Isabell is ready for robots!

Several months ago I backed a Kickstarter campaign for Primo, a simple Arduino-based teaching tool for introducing programming logic to kids age 4-7. My oldest daughter was just 3, but my pledge got me plans and code only, and I figured the way projects go around here it just might be done by the time she’s 4. The Primo experience involves a cute (albeit simple) little robot named “Cubetto”, and right off the bat I figured I would modify some things to make him more… well, awesome. Little did I know of the rabbit hole I was about to tumble into.

As usual I started off with some sketches, thinking about what the robot could do aside from the Primo stuff. A suite of sensors would enable all sorts of behaviors, from simple (light seeking, line following) to more complex (play catch, drawbot). I would definitely enable a simple “radio control” mode, but I’m much more interested in autonomous (or semi-autonomous) behaviors. Isabell is obsessed with the Curiosity Mars rover, so it should definitely have some of that DNA. I also believe the rover should have some personality, so I’m looking into some simple dot-matrix display “eyes” that can communicate artificial emotion, and a simple speaker to give it a voice.




I’m focusing on a tracked design for now, so it can navigate a moderately challenging indoor environment. I love the idea of solar charging, or at least autonomously finding its own charging station. Of course it needs a camera so I’m drawn to the Raspberry Pi as a brain, which might also make remote control from an iPad relatively easy. I imagine the Rasp Pi might talk to one or more Arduinos, which can handle low-level functions like battery monitoring or distance sensors. I already have some small full-rotation servos, which will make the drivetrain simpler (vs. motor controllers, gearboxes, etc.).

My main guiding principle here will be flexibility/modularity, so features can be added or changed as we try things, get bored with them, imagine new uses, learn stuff, etc. Next step, start building the platform.


My First Robot part 3 – Drivetrain

Once I decided a custom tank tread wasn’t going to work for me, I went back to searching the internet for an off-the-shelf solution. Someone recommended looking at Lego Technic parts, and sure enough I found this on Ebay (EDIT: a helpful commenter on hackaday pointed out this much cheaper option). I don’t know what set this came from, but they are just about the right size (a little on the small side, maybe) and the price was right. Once they arrived I got them into CAD and quickly pulled together a basic design.



Aside from the treads this design is driven entirely by a few key components. First are two small SM-S4303R servos, which offer continuous rotation without modification. After much debate I decided on this lithium ion battery pack from Adafruit for two reasons: it has 6600mAh capacity which should provide hours of use between charging, and it is known to work well with this multi-source charger, also from Adafruit. I have plans to include solar charging in the future, which will impose some challenges, but I’ll get into that later.


2014-04-12 13.08.02 The rear tank tread wheel is mounted to a sliding part that allows the tread to be tensioned just right. The front wheels are attached directly to the servos, via a modified servo horn that I turned down to size on the lathe and glued into the wheel. Shown below (from left to right) is the original servo horn, the same part after turning its diameter down, and the wheel it is about to be glued into.

2014-04-12 13.23.28


Once glued together, the screw that holds the wheel onto the servo is trapped in the assembly:

2014-04-12 13.56.17


The chassis is 3D-printed, and I used small brass threaded inserts everywhere, considering how much I expect to be disassembling/reconfiguring things…

2014-04-24 17.04.41


…which made assembly nice and smooth.

2014-04-23 18.44.01


The top part is a slab of polycarbonate, meant to be easily removed and re-drilled, etc. as things change and evolve. Here it is, ready for electronics!

2014-04-23 20.17.49