Construction Details
Magnetic sensor (Hitachi HM55B; here is a manual) and processor (Arduino). Pictured is the NG version of Arduino, though I am now using the Decimila, which starts up faster and provides a handy 3.3v supply. If you want to buid a wireless version, you might consider getting the version of Arudino with built-in BlueTooth; though pricey ($150 versus $95 for Arduino + BlueTooth module), you can upload your code wirelessly, and will not need to deal with radio configuration hassles.
The eight orange & red wires on the right side of the board provide current to the motors (one wire each; the other wire connected to each motor runs to a common ground on the bread board). The two purple and one white wires at the bottom of the right side run to the compass module. Not shown: BlueTooth radio, which is now connected to digital out pins 0 & 1 (aka RX & TX). This module seems to act exactly like the more famous BlueSmirf device, also from SparkFun, so if you run into trouble, solutions / forum responses should apply to both.
Vibrator arrangement
Compass_BT.pde - the most recent version of the hat controller, which allows the use of a BlueTooth radio serial port to set the goal angle (or not). Pretty well commented.
VibroNav_receiver.pde - a small program which sets up the hat to receive commands from my VibroNav video game. Should work with BlueTooth, though not tested. Not commented, but pretty short & simple.
VibroNav.pde - the VibroNav game, same as the virtual demo, but actually vibrates the motor which most closely points toward the target circle. To work with BlueTooth, the proper serial port must be selected in the "setup" section. Could use more commenting.
VibroHat_BT.pde - the Processing code which talks to the hat via BlueTooth or USB, telling it which compass direction to indicate, based on how the user has rotated an on-screen hat graphic. Also displays the current compass direction measured by the hat.
Coming soon: circuit diagram! (after BIL conference)
Processing code:
2008 Todd Anderson