Wireless Motion-Sensing Gaming Glove for the
My latest project is a wireless
motion-sensing gaming glove for the C64. It's akin to the
Power Glove, but people who have tested this one claims it
The sensor on the glove is based on the SoMo by SonicWear,
a wearable Arduino-compatible device that is intended for creating
interactive dance and music performance. SoMo contains a 9-DOF
accelerometer/gyro/magnetometer, microprocessor, battery, and
XBee transmitter and
receiver pair. Since it's Arduino-compatible, it can easily be
reprogrammed for custom applications.
To turn it into a gaming device, we had to do a few things:
■ Reprogram the XBees
to use "I/O Line Passing" mode instead of Serial mode.
■ Add two extras I/O
connections between the microprocessor and XBee. (Thanks Eric from hacklab.to for doing this part!)
■ Wire in a fire button, using
conductive fabric between the thumb and forefinger.
■ Interface the receiving XBee
to the C64 Joystick port.
the microprocessor to sense tilt in the X and Z axis, and instead of
generating MIDI, toggle outputs connected to the XBee.
If you want to see the glove in action or try it yourself, come
check out my display at the World of Commodore
2013, December 7th in Toronto!
Here's a short Vine showing the glove
in action, at the Vintage Computer Festival Midwest / Emergency
Chicagoland Commodore Convention 2013 (Thanks Robin Harbron):
a longer video of my talk at VCFMW 2013 with more technical detail. I also use the glove to control GEOS!
I don't consider myself a hardware
expert by any means, so this has been quite a learning experience.
already provides the IMU interface over I2C, so all I had to do on that
end was add two extra I/O jumpers from the microprocessor to the XBee
(thanks again Eric) to get a total of five outputs
then connected up one of the SoMo's inputs to conductive fabric on the
glove's thumb and forefinger to act as a fire button. It's all
held on with a vectro strap and some super glue. The glove itself
just came from a shop in Toronto's Chinatown.
On the C64 side, the receiving XBee is powered off the 5V line at the
joystick port. I'm using an 74LS05 hex inverter to "emulate"
a joystick. The 74LS05 is ideal for this because it
has open-collector outputs - meaning that when the output is
off, it's neither high or low - it simply disconnects. When
it's low, it pulls the output pin to ground - just like a joystick.
The code is available on GitHub.
I am planning on making more!
If you're interested in one, please email me so I can gauge
the interest. If there is enough interest, I'll look into
something like Kickstarter to fund a more serious production run, with
custom circuit boards, a better glove, and so on.
It should work on any
retro machine from the 80's with the 9-pin D-Sub connector (VIC 20,
Atari 2600, etc).
to Leif's Commodore Page