Our resident expert on all things
robotic is merely an email away.
roboto@servomagazine.com
Tap into the sum of all human knowledge and get your questions answered here!
From software algorithms to material selection, Mr. Roboto strives to meet you
where you are — and what more would you expect from a complex service droid?
by
Dennis Clark
Q. Here’s one for you: I’m told that the PS3 wireless
controllers use Bluetooth to talk to the PS3 console.
How can I interface one with my own Bluetooth
transceiver and use it as a robot controller?
— Joe in Fort Collins
A. Interesting question, and quite a bit to look up to
answer, as well! The Bluetooth in the PS3 controller
(which is called the “SixAxis” controller) is a slave, not
a master device, so this means that it wants to pair with a
computer which has the master software on it. If all you
are wanting is to get the basic joystick operation from the
device, you would use the USB connection on it which will
work with any computer that uses a USB HID (Human
Interface Device) driver for that kind of thing. If you are
using a microcontroller that has USBOTG (On The Go)
software in it, then you can connect right up, but only with
the cable. If you want the Bluetooth capability, you can leave
out most of our hobby robotics brains. MOST, but not all.
There are always those intrepid folks out there that
cannot leave well enough alone and sally forth into the
Figure 1.
A Gumstix processor board.
Used by permission of Gumstix, Inc.
14 SERVO 01.2009
unknown, or even intentionally obfuscate. Interestingly, the
reason that this controller is called the SixAxis controller is
that it has six axis accelerometers and a gyro in it! This data
is only available over the Bluetooth link, so now we have a
reason to hack the system. And, in fact, I found at least
one place that did this and published full specs on how to
get a Linux system to pair with the PS3 SixAxis and get all
that accelerometer and gyro data. Here’s the URL:
www.pabr.org/sixlinux/sixlinux.en.html.
They have a couple of very nice videos that show the
full use of all the accelerometers using hobby servos. There
are some complications apparently that come from the PS3
Bluetooth controller not being precisely like other Bluetooth
devices in the way that it gets the accelerometer data out.
They have special hacks made to deal with this. It isn’t
obvious in the first video but this is a fully embedded
project that isn’t using “big iron” to control these servos.
The Linux kernel with the full Bluetooth master code is
running on a Gumstix processor board which is quite small,
in fact, they are more or less the size of a pack of stick
gum, so they can easily fit into smaller robots. The Gumstix
processor boards are generally under $200; you can them
at http://gumstix.com/.
The Gumstix boards (see Figure 1) run embedded Linux
with full open source available and are very capable devices
for their size. The Verdex Pro XM4-bt (one with Bluetooth)
has 64 MB of RAM, 16 MB of Flash, and a microSD slot for
mass storage. All this runs on a 400 MHz XScale processor.
For a Linux box, that isn’t all that fast but for an embedded
processor, it is. It still runs at power levels that we can
tolerate with our batteries in a robot and the board weighs
in at about 8g (1/4 oz).
The Gumstix processor boards are programmed using
the OpenEmbedded build system which uses gcc and runs
primarily on Linux distributions. So, you’ll need to have a
Linux system as your primary build machine. This build
environment requires you to check out your source code to
build images; to do this, you’ll need to have Subversion on
your machine. Subversion is a source code control and