Playing with apps on an Android phone is fun. Building your own apps, even more so. But what about using the phone to operate a moving, talking bot? Tim Heath and Ryan Hickman have done exactly that.
The bot they recently finished building — Truckbot — is still relatively simple. It’s got an HTC G1 phone for a brain, riding on top of a chassis with some wheels and treads. All it can do is roll around on a tabletop, turn and head off in a specified direction. When I visit the workshop where they’re building it, Heath and Hickman show how it can use the phone’s compass to make itself point to the south. But the duo have much more ambitious plans in mind.
“I knew I could build this thing. I just needed a phone,” explains Heath, a Python web engineer. He posted on various e-mail lists looking for one, including that of Hacker Dojo, a Mountain View, California, hackerspace. Hickman, who works for Google’s Doubleclick division, but has no connections to the Android people, saw Heath’s pleas.
They got together and started building. The first bot they built was made out of plastic. They just finished constructing their second bot, called Truckbot, which is lighter and cardboard-based.
They could have purchased the pricey $175 Oomlout kit, which includes wheels, motors and an Arduino-based brain. Hickman and Heath opted for making their own chassis. Here’s a full list of parts they used:
- $16 Bare bones Arduino
- $3 Micro servo
- $0.25 Hex inverter (handled 3.3v to 5v conversion)
- $4 HTC USB breakout board
- $3 Mini breadboard
- $4 miscellaneous cardboard, strap ties, wires, rear wheel
Their bot is more impressive for its potential than what it currently does. “Unlike most people out there,” says Hickman, as he types commands on the screen of his laptop, “we don’t want to use the phone as a remote control. Rather, it becomes the brain of the operation.”
This means they could utilize every hardware and software component of an Android phone, programming the bot to avoid obstacles, recognize faces and voices, pinpoint its location and go places. An Arduino board, which basically serves as a software-hardware link, is not smart enough to handle that, but an Android phone can.
For example, Arduino can detect when the bot bumps into something, but has to rely on the phone to decide on what to do next. As we’re wrapping up, the bot turns towards me and says, “Hello, Miran. Wired is awesome.”
Thanks, Truckbot! I like you too.
Wanna try building your own Android bot? Here is their five-step process:
- Laser-cut pieces in cardboard or acrylic using PDF file
- Attach breadboard, rear caster, 9V battery, servos, and Arduino using strap ties and glue
- Glue servo arms to wheels and attach with the small servo screw
- Connect wiring for servos, Arduino, breadboard, HTC USB board and battery
- Mount phone with large strap tie and insert USB plug to bottom
- Load Cyanogen on Android phone*
- Download the Android Scripting Environment application from code.google.com
- Copy cellbot.py file to phone’s SD card /sdcard/ase/scripts/
- Load Cellbot code on Arduino board
- Run the Python script and telnet into the robot from a remote machine to control it.
If you get stuck, go to Heath and Hickman’s bot development blog for more tips. Enjoy experimenting, and let us know how it goes.