Wall-E: The Linux-Based Robot Pet

10 June 2012

About a 2-minute read

I decided recently to embark on a new robotics project. I bought a BeagleBone, a small Linux computer running the Angstrom distro, because I want to make a Wall-E robot with computer vision capabilities.

Initially, I thought about powering the mechanisms with an AVR, and offloading the processing to my laptop. I could use  a networked camera and connect the AVR over Bluetooth or WiFi to relay commands. But I rally want Wall-E to be able to make his own decisions, even when my laptop is busy with other things.

The BeagleBone should have more than enough power for what I’m doing. It has a USB host, so I can hook up a WiFi dongle, a webcam, and potentially a USB-based AVR motor controller. USB cameras are extraordinarily cheap compared to similar models that expose TTL signals for microcontrollers (ah, the wonders of mass-production).

The Plan

First I scoured the internets and failed to find new Wall-E toys for use in my project. Unfortunately, it seems Pixar has discontinued the adorable line of toys. Who wouldn’t want a Wall-E to play with? I ended up on eBay in bidding wars with other Wall-E fans and the formidable collectors. I bought a Wall-E “InterActive” toy, which basically makes noise when you push it around and may or may not have motors in it. The cubic torso is about 5” on a side, so hopefully I can fit my electronics in there.

I will rip open the plastic enclosure and remove the battery holder, the noise circuits, etc., and supplant them with my BeagleBone and a better battery pack. I may put servos in the binoculars, for emotion, and perhaps one at the base of each arm. I will put DC gearmotors on the track wheels, assuming the ones in the toy are lousy. I plan to make an I2C motor controller based on the AVR to simplify programming the kinematics.

The Parts

I bought a cheap webcam from Syba via Amazon, and took out its innards. It turned out to be a well-built PCB for $8, and it works out of the box with Linux. I plan to mount it in one of Wall-E’s eyes. I haven’t seen the toy yet, so I hope the camera will fit in an eye.

I already mentioned the BeagleBone, an ARMv7-based board devloped with help from TI by the folks behind BeagleBoard. I already have the Bone running WiFi via the adapter from Adafruit, and I have confirmed that the Syba camera works with the Angstrom flavor of Linux with ffmpeg. I am trying to set up video streaming for remote monitoring.

I still need to work on the battery, which will likely be a rechargeable hobby unit. I want to put together a buck regulator for a clean 5V, an potentially include some kind of power management system to monitor the battery status. Wall-E shouldn’t run out of juice without knowing about it!

For the servos I picked up an Adafruit I2C servo driver, which has 16 channels of PWM from dedicated hardware. The extra cost is justified considering how complicated PWM from Linux can get. The less time I spend debugging code the better.

Comments