Editing Compass Vibro Anklet Directions

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
 
How to make a vibrating compass anklet
 
How to make a vibrating compass anklet
  
These steps describe how to make a vibrating compass anklet which lets you tell absolute direction all day longThe project is described in [[Compass Vibro Anklet]] which is mostly a description of Eric and Skory's work.
+
These steps describe how to make a vibrating compass anklet.  This design was made by Eric and Skory. Skory took the time to sit down with me and explain how he did it, so I wrote this up so that others can see it too.
 
 
Skory took the time to sit down with me at [[Sensebridge]] and explain how they did it, so I wrote this up so that others can see it too.
 
  
 
I’m going to work on assembling an anklet myself using these steps.  When I do, I’ll update the directions with what I find.
 
I’m going to work on assembling an anklet myself using these steps.  When I do, I’ll update the directions with what I find.
Line 15: Line 13:
 
You’ll need all the following components:
 
You’ll need all the following components:
  
'''Arduino:''' a controller to run everything.  (I’m using the Arduino-clone [www.moderndevice.com Really (RBBB) Bare-Bones Board])
+
'''Arduino:''' a controller to run everything.  (I’m using the Arduino Really RBBB Bare-Bones Board)
  
 
'''Shift Register:''' regulates power and switches which pager motor is running.  (I’m using part number TPIC6B595)
 
'''Shift Register:''' regulates power and switches which pager motor is running.  (I’m using part number TPIC6B595)
Line 22: Line 20:
 
(I’m using an HM55B from Parallax)
 
(I’m using an HM55B from Parallax)
  
'''Battery:''' For power.  You’ll need something that will source at least 3.325V and about 700mAh. (I bought a Polymer Li-Ion Battery 3.7V 875mAh from [http://www.all-battery.com/polymerli-ionbattery37v875mah383562.aspx here)
+
'''Battery:''' For power.  You’ll need something that will source 3.325V and about 700mAh. (I bought a Polymer Li-Ion Battery 3.7V 875mAh from here http://www.all-battery.com/polymerli-ionbattery37v875mah383562.aspx)
  
'''Pager Motors:''' Eight vibrating motors.  Whichever one is northmost will vibrate.  (I bought ROB-08449 vibration motors but they were crazy overpriced - $7 each, it's better to get them from [www.pagermotors.com pagermotors.com])
+
'''Pager Motors:''' Eight vibrating motors.  Whichever one is northmost will vibrate.  (I bought ROB-08449 vibration motors but they were crazy overpriced - $7 each)
 
 
'''Proto-board''' a thin board with a grid of pads into which one can solder the components, which you will need to cut down to size (available at an electronics store).
 
  
 
'''Ribbon Cable:''' One or possibly two twelve inch lines of Ribbon Cable wire to connect the controller to the pager motors. (available at an electronics store)
 
'''Ribbon Cable:''' One or possibly two twelve inch lines of Ribbon Cable wire to connect the controller to the pager motors. (available at an electronics store)
Line 32: Line 28:
 
'''Connector/Switch:''' A power switch or connection for the power supply to act as an on/off switch for the device (available at an electronics store)
 
'''Connector/Switch:''' A power switch or connection for the power supply to act as an on/off switch for the device (available at an electronics store)
  
'''Connector:''' A 9-pin connector to connect the shift register to the pager motor assembly.  (available at an electronics store)
+
'''Connector:''' A 9-pin connector to connect the shift register to the pager motor assembler.  (available at an electronics store)
  
 
'''Wiring:''' Wire & solder & electrical tape to connect everything  (available at an electronics store)
 
'''Wiring:''' Wire & solder & electrical tape to connect everything  (available at an electronics store)
  
'''Elastic:''' The main body of the anklet armature.  Two inches wide.  About 12 inches of elastic, plus a few three inch pieces to make pockets for the controller and the battery. (get from a fabric store)
+
'''Elastic:''' The main body of the anklet armature.  Two inches thick.  About 12 inches of elastic, plus a few three inch pieces to make pockets for the controller and the battery. (get from a fabric store)
  
 
'''Zipper:''' A zipper so that you can close every up when you’re not tinkering.  About 12 inches of zipper. (get from a fabric store)
 
'''Zipper:''' A zipper so that you can close every up when you’re not tinkering.  About 12 inches of zipper. (get from a fabric store)
Line 42: Line 38:
 
'''Velcro Strip:''' To close the anklet.  About an inch wide, and three or four inches long. (get from a fabric store)
 
'''Velcro Strip:''' To close the anklet.  About an inch wide, and three or four inches long. (get from a fabric store)
  
'''Felt Strip:''' To connect to the ankle on the other side and hold onto the Velco-backed motors.  About an inch wide and twelve inches long.
+
'''Felt Strip:''' To connect to the ankle on the other side.  About an inch wide and twelve inches long.
  
'''Foam:''' A thin strip of foam. Goes between the felt and the elastic to absorb vibration (making it easier to distinguish which motor is vibrating and to make the device quieter).  About an inch wide and twelve inches long.
+
'''Foam:''' A thin strip of foam. Goes between the felt and the elastic, to make the anklet more comfortable.  About an inch wide and twelve inches long.
  
 
'''Velcro Patches:''' Eight little patches of Velcro, about half an inch square each.  These will attach the pager motors to the anklet in a way that lets you move them around the anklet so that each motor is in the right place.
 
'''Velcro Patches:''' Eight little patches of Velcro, about half an inch square each.  These will attach the pager motors to the anklet in a way that lets you move them around the anklet so that each motor is in the right place.
Line 55: Line 51:
 
Computer to program Arduino
 
Computer to program Arduino
  
FTDI Cable (or BUB Board from Modern Device) to program Arduino
+
Cable to program Arduino
  
 
Soldering tools
 
Soldering tools
Line 63: Line 59:
 
Possibly LEDs for initial controller build
 
Possibly LEDs for initial controller build
  
Saw to cut the proto-board to size
+
Wire stripper
  
Wire stripper
+
Probably a crimper
  
 
Scissors
 
Scissors
Line 71: Line 67:
 
Sewing machine
 
Sewing machine
  
 +
Probably other sewing equipment
  
==Overview of Compass Vibro Anklet==
+
==Overview of Components==
The vibrating compass anklet has three basic parts: a '''controller''', a '''pager motor array''', and an '''armature'''.
+
The Vibrating Compass Anklet has three basic parts: a '''controller''', a '''pager motor array''', and an '''armature'''.
  
The '''controller''' controls the motors, provides power and data and sensory input.  The controller consists of an Arduino (a programmable board that uses the ATMega processor + Arduino bootloader, which is designed for exactly this kind of project), a Shift Register (which takes a single byte of data from the Arduino and uses this to trigger a single motor), the compass chip (which connects to the Arduino), and the battery (which connects to the Arduino).  Basically, everything in the controller connects to the Arduino, and then the shift register connects to the pager motor array.
+
The '''controller''' controls the motors, provides power and data and sensory input.  The controller consists of an Arduino (a programmable board that uses the Arduino processor, which is designed for exactly this kind of project), a Shift Register (which takes a single byte of data from the Arduino and uses this to trigger a single motor), the compass chip (which connects to the Arduino), and the battery (which connects to the Arduino).  Basically, everything in the controller connects to the Arduino, and then the shift register connects to the pager motor array.
  
 
The '''pager motor array''' consists of eight pager motors (little vibrating motors) and the wire to connect them up.  The pager motor array receives power and signal from the shift register, which activates one of eight pager motors.  The pager motors are little vibrating motors that come out along the length of the ribbon cable.  All of the motors get power from the same line, but only one will be grounded at a time, so only one will run at a time.
 
The '''pager motor array''' consists of eight pager motors (little vibrating motors) and the wire to connect them up.  The pager motor array receives power and signal from the shift register, which activates one of eight pager motors.  The pager motors are little vibrating motors that come out along the length of the ribbon cable.  All of the motors get power from the same line, but only one will be grounded at a time, so only one will run at a time.
Line 86: Line 83:
  
 
'''Part One: Assemble Controller on Breadboard'''
 
'''Part One: Assemble Controller on Breadboard'''
 
 
'''Part Two: Build Pager Motor Array'''
 
'''Part Two: Build Pager Motor Array'''
 
 
'''Part Three: Make Armature'''
 
'''Part Three: Make Armature'''
 
 
'''Part Four: Assemble Controller on Board'''
 
'''Part Four: Assemble Controller on Board'''
 +
'''Part Five: Put Assembly Into Armature'''
  
'''Part Five: Put Assembly Into Armature'''
 
  
 
==Part One: Assemble Controller on Breadboard==
 
==Part One: Assemble Controller on Breadboard==
Line 101: Line 95:
 
Here’s a really fake diagram of that:
 
Here’s a really fake diagram of that:
  
         
+
compass chip
    compass chip
 
 
           |
 
           |
      Arduino  ---  Shift Register ---  pager motor connector
+
  Arduino  ---  Shift Register ---  pager motor connector
 
           |
 
           |
      battery
+
    battery
  
 
To assemble the controller on the breadboard:
 
To assemble the controller on the breadboard:
 
 
1. Connect the battery to the Arduino.  The wires from the battery go into the power and ground for the Arduino.  If the battery includes a connect, you may just want to get a matching connector for the other side and attach that to the Arduino.  Alternately, if you’re feeling ambitious you could add a power switch here.
 
1. Connect the battery to the Arduino.  The wires from the battery go into the power and ground for the Arduino.  If the battery includes a connect, you may just want to get a matching connector for the other side and attach that to the Arduino.  Alternately, if you’re feeling ambitious you could add a power switch here.
 
 
2. Connect the compass chip to the Arduino.  You’ll connect three data pins, plus power and ground, to the Arduino.  One pin is input/output: bridge together the “in” pin and the “out” pin from the compass and connect them to the same pin on the Arduino.  The other two are the clock pin and the enable pin.  These all connect to the Arduino’s output pins.  Note which pins you use, since you’ll need to update the code with that information.
 
2. Connect the compass chip to the Arduino.  You’ll connect three data pins, plus power and ground, to the Arduino.  One pin is input/output: bridge together the “in” pin and the “out” pin from the compass and connect them to the same pin on the Arduino.  The other two are the clock pin and the enable pin.  These all connect to the Arduino’s output pins.  Note which pins you use, since you’ll need to update the code with that information.
 
+
3. Connect the shift register to the Arduino.  You’ll connect five data pins, plus power and ground.  One of the data pins on the shift register is the enable pin.  This pin must connect to a pin on the Arduino which is capable of PWM.  (PWM lets a digital signal simulate analog, and the enable pin needs analog input.)
3. Connect the shift register to the Arduino.  You’ll connect five data pins, plus power and ground.  One of the data pins on the shift register is the enable pin.  This pin must connect to a pin on the Arduino which is capable of PWM.  (PWM lets a digital signal simulate analog, and the enable pin needs analog input if you want to be able to vary the speed of the motors.)
 
 
 
 
4. Connect the shift register to the header socket.  Solder ribbon wire to the shift register’s output and give it a few inches of wire.  On the other side of the ribbon wire, solder a 9-pin header socket.
 
4. Connect the shift register to the header socket.  Solder ribbon wire to the shift register’s output and give it a few inches of wire.  On the other side of the ribbon wire, solder a 9-pin header socket.
 
 
5. Install the Arduino IDE on your computer.  You can get the IDE here: http://www.arduino.cc/en/Main/Software
 
5. Install the Arduino IDE on your computer.  You can get the IDE here: http://www.arduino.cc/en/Main/Software
 
+
6. Connect your computer to the Arduino with a data cable.  Make sure you’ve got a data connection.  Try running Hello World or a similar program to make sure you’ve got everything working.
6. Connect your computer to the Arduino with a data cable (it is recommended to unplug the battery when you do so).  Make sure you’ve got a data connection.  Try running Hello World or a similar program to make sure you’ve got everything working.
+
7. Download the code into the Arduino.  The code is on the wiki. (link?) You will probably need to modify the Arduino code based on what you connected on the Arduino: if you connect anything differently, change the Arduino code so that it connects to the right place.  This shouldn’t be a very difficult change in the code: just change the constants to reflect where you attached each wire.
 
 
7. Download the code into the Arduino.  It's on the wiki on the [[Compass Vibro Anklet Code]] page.  You will probably need to modify the Arduino code based on what you connected on the Arduino: if you connect anything differently, change the Arduino code so that it connects to the right place.  This shouldn’t be a very difficult change in the code: just change the constants to reflect where you attached each wire.
 
 
 
 
8. For testing purposes, you may want to connect the shift register to LEDs and try moving around with the breadboard.  Each LED in turn should light up as you turn around.    Note that the light will go off if you hold it in one place for a while.  This is intentional: when the motors are vibrating against your ankle, they can get very annoying and itchy if they run all the time!
 
8. For testing purposes, you may want to connect the shift register to LEDs and try moving around with the breadboard.  Each LED in turn should light up as you turn around.    Note that the light will go off if you hold it in one place for a while.  This is intentional: when the motors are vibrating against your ankle, they can get very annoying and itchy if they run all the time!
  
Line 130: Line 115:
 
This is a working sensor!  Now you need a display and an armature.
 
This is a working sensor!  Now you need a display and an armature.
  
==Part Two: Build Pager Motor Array==
+
==Part Two: Build Pager Motor Array===
  
 
The pager motor array is logically pretty simple, but it’s tricky to solder together properly.
 
The pager motor array is logically pretty simple, but it’s tricky to solder together properly.
Line 139: Line 124:
  
 
1. Connect the ribbon cable to the connector.  Strip the ends of the ribbon cable and solder them into the connector.
 
1. Connect the ribbon cable to the connector.  Strip the ends of the ribbon cable and solder them into the connector.
 
 
2. Peel off a little bit of the bottom ground wire of the ribbon cable.  Strip the end of the wire.  Solder the line to the ground line of the first pager motor.
 
2. Peel off a little bit of the bottom ground wire of the ribbon cable.  Strip the end of the wire.  Solder the line to the ground line of the first pager motor.
 
 
3. Splice off a wire from the power line: strip some of the cable, solder another wire to the exposed metal, and wrap the connection with electrical tape for stability.  Connect the spliced wire to the power line of the first pager motor.
 
3. Splice off a wire from the power line: strip some of the cable, solder another wire to the exposed metal, and wrap the connection with electrical tape for stability.  Connect the spliced wire to the power line of the first pager motor.
 
 
4. Repeat steps 2-3 for each pager motor along the length of the ribbon cable.  Peel of a little more from the next ground wire of the ribbon cable and strip the wire to solder to the ground line of the next pager motor.  Splice another wire from the power line in the same place and solder the spliced wire to the power line of the next pager motor.
 
4. Repeat steps 2-3 for each pager motor along the length of the ribbon cable.  Peel of a little more from the next ground wire of the ribbon cable and strip the wire to solder to the ground line of the next pager motor.  Splice another wire from the power line in the same place and solder the spliced wire to the power line of the next pager motor.
  
Line 159: Line 141:
  
 
1. Cut a twelve-inch length of elastic and fold it in half.
 
1. Cut a twelve-inch length of elastic and fold it in half.
 
 
2. Sew each end of the elastic closed.  You should now have something like a long floppy canoe.
 
2. Sew each end of the elastic closed.  You should now have something like a long floppy canoe.
 
 
3. Sew the zipper onto the elastic on each side of the fold, at the top.  You should have a long tube that you can unzip into a long floppy canoe.
 
3. Sew the zipper onto the elastic on each side of the fold, at the top.  You should have a long tube that you can unzip into a long floppy canoe.
 
 
4. Pick one side of the elastic to be the inner side, which will go against your ankle.  Lay a thin layer of foam onto this side, and then a layer of felt.  Sew this down so that it all stays in place.
 
4. Pick one side of the elastic to be the inner side, which will go against your ankle.  Lay a thin layer of foam onto this side, and then a layer of felt.  Sew this down so that it all stays in place.
 
 
5. Cut vertical slits into the inner side, through the elastic, the foam and the felt.  Sew these open so that they’re stable.  They should end up a little like button holes.  The vibrating motors are the buttons: they’ll poke out through these button holes to press against your leg.
 
5. Cut vertical slits into the inner side, through the elastic, the foam and the felt.  Sew these open so that they’re stable.  They should end up a little like button holes.  The vibrating motors are the buttons: they’ll poke out through these button holes to press against your leg.
 
 
6. On the outer side of the elastic, on one end of the anklet, sew two strips of elastic to make pockets.  One will hold the controller, the other will hold the battery.  It’s better to sew these on like a loop, rather than a wave: loop them back under so that the stitching is on the inside of the battery.  This is a little harder to do, but it means that the pressure from the pockets will pull the elastic out instead of bunching it up.
 
6. On the outer side of the elastic, on one end of the anklet, sew two strips of elastic to make pockets.  One will hold the controller, the other will hold the battery.  It’s better to sew these on like a loop, rather than a wave: loop them back under so that the stitching is on the inside of the battery.  This is a little harder to do, but it means that the pressure from the pockets will pull the elastic out instead of bunching it up.
 
+
7. On the outer side of the elastic, on the same end of the anklet, sew a length of Velcro. This should face outward. It will latch on to the felt on the other side.
7. On one end of the anklet, on the outside of the elastic, sew a couple inches of fuzzy velcro. On the other end, sew a couple inches of pointy Velcro out past the edge. Ensure that the dimensions of these allow you to wrap the armature around your ankle and then fasten it on.
 
  
 
You should now have an anklet that can hold all the wiring on the inside of a zipped-up pocket, which allows pager motors to poke into your ankle to vibrate, which has two elastic pockets for the controller and battery, and which you can wear comfortably with the Velcro strap.
 
You should now have an anklet that can hold all the wiring on the inside of a zipped-up pocket, which allows pager motors to poke into your ankle to vibrate, which has two elastic pockets for the controller and battery, and which you can wear comfortably with the Velcro strap.
  
NOTE: Skory is working on an better design for this, where the foam and felt are inside the belt.  With this improvement, the only thing that touches your skin will be the armature, so it should be easier to take all the electronics out and wash all the cloth so it doesn’t get gross and sweaty.  If this works well, the instructions will be updated with steps for how to do this instead.
+
NOTE: Skory is working on an better design for this, where the foam and felt are inside the belt.  With this improvement, the only thing that touches your skin will be the armature, so it should be easier to take all the electronics out and wash all the cloth so it doesn’t get gross and sweaty.  If this works well, the instructions will be updated with steps for how to do this instead.
  
 
==Part Four: Assemble Controller on Board==
 
==Part Four: Assemble Controller on Board==
Line 180: Line 156:
 
This step pretty much involves putting the controller together again in a way that is more compact so you can wear it around.
 
This step pretty much involves putting the controller together again in a way that is more compact so you can wear it around.
  
The compass chip still needs to be horizontal, even though the rest of it will probably end up vertical.  Compass chips needs to be horizontal to work.  At least, two-axis compass chips do.  A good three-axis chip wouldn’t necessarily need to be horizontal to work, but 3D compass chips are prohibitively expensive.
+
The compass chip still needs to be horizontal, even though the rest of it will probably end up vertical.  Compass chips needs to be horizontal to work.  At least, two-dimensional compass chips do.  A good three-dimensional chip wouldn’t necessarily need to be horizontal to work, but 3D compass chips are prohibitively expensive.
 
 
1. Solder the shift register onto a minimally sized rectangle of proto-board.
 
  
 +
1. Solder the shift register onto the board.
 
2. Solder the Arduino board on top so that the shift register is sandwiched in between.  If you do this right, most of the data connections will actually fit together perfectly.
 
2. Solder the Arduino board on top so that the shift register is sandwiched in between.  If you do this right, most of the data connections will actually fit together perfectly.
 
 
3. Solder the compass chip at the tip of the other two boards so that the compass chip is horizontal while the Arduino is vertical.  Connect the compass chip to the Arduino.
 
3. Solder the compass chip at the tip of the other two boards so that the compass chip is horizontal while the Arduino is vertical.  Connect the compass chip to the Arduino.
 
 
4. Make a connection from the Arduino to the battery (again, this should probably involve your switch).  The battery will go in a separate pocket, so use a few inches of wire on each side.
 
4. Make a connection from the Arduino to the battery (again, this should probably involve your switch).  The battery will go in a separate pocket, so use a few inches of wire on each side.
 
+
5. Make a connection from the shift register to the connector for the pager motor array.
5. Make a connection from the shift register to the connector for the pager motor array. Again, one pin needs to have power, and the other eight will connect to the eight drains on the shift register. Soldering the little wires in for this step is absolutely horrible, but don't worry too much if you don't solder the pins in the right order, you can change to code later to compensate.
 
  
 
At this point, you should have a compact little stack of electronics plus a battery.  It should still work the same way it did when everything was on the breadboard, but now it will fit in the armature.
 
At this point, you should have a compact little stack of electronics plus a battery.  It should still work the same way it did when everything was on the breadboard, but now it will fit in the armature.
Line 196: Line 168:
 
You will need some kind of casing for the stack of electronics.  You may be able to modify an existing plastic box for this, or make your own.
 
You will need some kind of casing for the stack of electronics.  You may be able to modify an existing plastic box for this, or make your own.
  
NOTE: Skory and Eric are working very hard on a PCB which will make this step a lot easier and remove a lot of the wiring and difficult soldering and hassle for this.  If this works well, the instructions will be updated with steps for how to do this instead, along with how to purchase these PCBs.
+
NOTE: Skory is working on a PCB which should make this step a lot easier and remove a lot of the wiring and soldering and hassle for this.  If this works well, the instructions will be updated with steps for how to do this instead.
 +
 
  
 
==Part Five: Put Assembly Into Armature==
 
==Part Five: Put Assembly Into Armature==
  
Now put it all together.
+
1. Sew squares of Velcro and cloth onto the end of each pager motor.
 
 
1. Glue squares of Velcro and cloth onto the end of each pager motor. Any good fabric glue will do, but be patient if it's slow-setting. (Alternatively, for another dollar or two, you can by square-inch velcro stickers, the adhesive on which seems to be good enough to hold the cloth on the other side of the motor.)
 
 
 
 
2. Put the whole pager motor assembly into the pouch, with just the connector sticking out of one end of the zipper.
 
2. Put the whole pager motor assembly into the pouch, with just the connector sticking out of one end of the zipper.
 
+
3, Put the controller assembly and batteries into the appropriate pouches and connect them up.
3, Put the controller assembly and batteries into the appropriate pockets and connect them up.
 
 
 
 
4. Push the pager motors through the button-holes in the armature.  Wear the anklet and test it a little to find where each motor should go.  Since ankles are so irregularly-shaped, you’ll need to adjust which button-holes get pager motors by trial and error.
 
4. Push the pager motors through the button-holes in the armature.  Wear the anklet and test it a little to find where each motor should go.  Since ankles are so irregularly-shaped, you’ll need to adjust which button-holes get pager motors by trial and error.
  
 
You should now have a compass anklet that you can wear comfortably in daily life!
 
You should now have a compass anklet that you can wear comfortably in daily life!

Please note that all contributions to Noisebridge are considered to be released under the Creative Commons Attribution-NonCommercial-ShareAlike (see Noisebridge:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel Editing help (opens in new window)