Introduction: Soft-Circuit Position Sensing Glove
Advancer Technologies is currently developing a semi-autonomous pneumatic muscle actuated hand therapy glove for recovering stroke and neurologically impaired patients called the ExoGlove. Part of the ExoGlove project is focused on integrating a finger position sensing ability to monitor the position of each finger.
The following Instructable describes the position sensing hardware of the ExoGlove project and will teach you how to build your very own position sensing glove.
After your glove is finished, use it in a variety of applications such as a controller for a TV, video game system (like the Power Glove), computer, or robot.
Position Sensing Hardware Features:
> Sensors are sewn into a neoprene glove
> More comfortable and feels more natural.
> Sensors are removable and replaceable
> Uses conductive thread for the wiring. More comfortable than conventional wiring.
> Easily customized or mod'ed
The following Instructable describes the position sensing hardware of the ExoGlove project and will teach you how to build your very own position sensing glove.
After your glove is finished, use it in a variety of applications such as a controller for a TV, video game system (like the Power Glove), computer, or robot.
Position Sensing Hardware Features:
> Sensors are sewn into a neoprene glove
> More comfortable and feels more natural.
> Sensors are removable and replaceable
> Uses conductive thread for the wiring. More comfortable than conventional wiring.
> Easily customized or mod'ed
Step 1: Materials and Tools
Materials:
1 - Glove:
We suggest using a neoprene glove but most gloves will be suitable.
5 - Female Conductive Fabric Connectors:
These can be made or bought. Below are the materials needed to make them.
You can buy complete kits or pre-assembled parts. All proceeds go to funding the ExoGlove project.
--> 10 - Female Crimping Terminals --> Can be purchased at Digikey
--> 5 - 2 Position Terminal Housings --> Can be purchased at Digikey
10 - Additional Female Crimping Terminals
5 - Additional 2 Position Terminal Housings
These will be used for the flex sensors.
5 - Male Conductive Fabric Connectors:
These can be made or bought. Below are the materials needed to make them.
You can buy complete kits or pre-assembled parts.
--> 10+ Position Single Row Header Pins --> Can be purchased at Digikey
5 - Flex Sensors:
We used traditional conductive ink flex sensor hardware that can be readily bought at Jameco.com or Sparkfun.com. These are the same as in the original Nintendo Power Glove. You could substitute with conductive fabric flex sensors. However, unlike the conductive ink sensors, conductive fabric sensors measure pressure as well as bending. This could lead to noise due to something pressing on the sensors.
Misc.:
-- Solder
-- Solid Core Wire (~20-28AWG)
-- Conductive Thread --> Can be purchased at Sparkfun or Lame LIfesaver
-- Thread (We used button or heavy duty thread)
-- Extra Fabric (neoprene)
-- Velcro
-- Glue (rubber cement or super glue will work)
-- Heat shrink wrap
Tools:
-- Digital multimeter
-- Soldering Iron
-- Wire Crimper
-- Wire stripper or scissors
-- Needle nose pliers
-- Needle
-- Sewing Pins
1 - Glove:
We suggest using a neoprene glove but most gloves will be suitable.
5 - Female Conductive Fabric Connectors:
These can be made or bought. Below are the materials needed to make them.
You can buy complete kits or pre-assembled parts. All proceeds go to funding the ExoGlove project.
--> 10 - Female Crimping Terminals --> Can be purchased at Digikey
--> 5 - 2 Position Terminal Housings --> Can be purchased at Digikey
10 - Additional Female Crimping Terminals
5 - Additional 2 Position Terminal Housings
These will be used for the flex sensors.
5 - Male Conductive Fabric Connectors:
These can be made or bought. Below are the materials needed to make them.
You can buy complete kits or pre-assembled parts.
--> 10+ Position Single Row Header Pins --> Can be purchased at Digikey
5 - Flex Sensors:
We used traditional conductive ink flex sensor hardware that can be readily bought at Jameco.com or Sparkfun.com. These are the same as in the original Nintendo Power Glove. You could substitute with conductive fabric flex sensors. However, unlike the conductive ink sensors, conductive fabric sensors measure pressure as well as bending. This could lead to noise due to something pressing on the sensors.
Misc.:
-- Solder
-- Solid Core Wire (~20-28AWG)
-- Conductive Thread --> Can be purchased at Sparkfun or Lame LIfesaver
-- Thread (We used button or heavy duty thread)
-- Extra Fabric (neoprene)
-- Velcro
-- Glue (rubber cement or super glue will work)
-- Heat shrink wrap
Tools:
-- Digital multimeter
-- Soldering Iron
-- Wire Crimper
-- Wire stripper or scissors
-- Needle nose pliers
-- Needle
-- Sewing Pins
Step 2: Prepare Fabric for Flex Sensor Pockets
You are going to want to cut rectangle sections of the extra/spare/scrap fabric that you gathered. These sections are going to form pockets for the flex sensors to be slipped inside.
First, trace five outlines of a flex sensor on the fabric. We used a sliver sharpie to show up on the black fabric.
Next, cut out the five outlines. Make sure to leave a little extra room for your stitching (e.g. the width of the sharpie pen marking) but not too much since you want the flex sensors to fit snuggly in the pockets.
First, trace five outlines of a flex sensor on the fabric. We used a sliver sharpie to show up on the black fabric.
Next, cut out the five outlines. Make sure to leave a little extra room for your stitching (e.g. the width of the sharpie pen marking) but not too much since you want the flex sensors to fit snuggly in the pockets.
Step 3: Sow Flex Sensor Pockets on the Glove
Next, you are going to sow your fabric cutouts to the glove. For better aesthetics, we sowed mine to the inside of the glove. However, if you find this too difficult, you can always sow them to the outside of the glove.
Turn the glove inside out. Now, if you are able to, put the glove on one of you hands (e.g. if you turn the right glove inside out, put it on your left hand). Mark down the center of the glove fingers the approximate location of your finger joints (see picture). It's OK if you aren't super accurate. The basic idea here is to get some position markers so you line the flex sensor pockets up correctly.
Line up the fabric cutouts on each glove finger such that they are centered on the joint marks. We positioned my cutouts such that they did not cover the distal joint of each finger (aka the third joint which is the closest one to your finger nail). We did this because we only wanted to capture the bending of the first two joints of each finger since most people can't voluntarily control their third joint anyway.
Note: The flex sensors can't tell a difference if you make one big bend or two smaller bends (that equal the big bend). Therefore, you are only detecting the overall bend of your finger... NOT the bend of each joint. If you would like to detect each joint bend, you would need a flex sensor per joint. Considering you can't change the length of the traditional flex sensor, this would make thing grow rather complex. We weren't concerned about the individual bends and was content with measuring the overall bend.
Stitch both sides and the end closest to your fingertip of each cutout to each corresponding glove finger. (see picture) You are leaving the base end (closest to the palm) open so that you can slide in the flex sensors later on.
Turn the glove inside out. Now, if you are able to, put the glove on one of you hands (e.g. if you turn the right glove inside out, put it on your left hand). Mark down the center of the glove fingers the approximate location of your finger joints (see picture). It's OK if you aren't super accurate. The basic idea here is to get some position markers so you line the flex sensor pockets up correctly.
Line up the fabric cutouts on each glove finger such that they are centered on the joint marks. We positioned my cutouts such that they did not cover the distal joint of each finger (aka the third joint which is the closest one to your finger nail). We did this because we only wanted to capture the bending of the first two joints of each finger since most people can't voluntarily control their third joint anyway.
Note: The flex sensors can't tell a difference if you make one big bend or two smaller bends (that equal the big bend). Therefore, you are only detecting the overall bend of your finger... NOT the bend of each joint. If you would like to detect each joint bend, you would need a flex sensor per joint. Considering you can't change the length of the traditional flex sensor, this would make thing grow rather complex. We weren't concerned about the individual bends and was content with measuring the overall bend.
Stitch both sides and the end closest to your fingertip of each cutout to each corresponding glove finger. (see picture) You are leaving the base end (closest to the palm) open so that you can slide in the flex sensors later on.
Step 4: Prepare Flex Sensors
Using the wire crimpers, crimp the female crimp terminals to each of the flex sensors' tabs (two per flex sensor).
For extra strength, we soldered the crimp terminal to the tab after we crimped it. You can skip this part if you want.
Now, slide the terminals into the female housings. You might need to cut a little length off the side of the housing for it to slide into place correctly.
One problem with the Spectra Symbol flex sensors is a weak section just before the soldering tabs. This section has a tendency to break the traces after relatively few bending cycles (This happend to one of the sensors in the demo video). Additionally, this section can impact the sensor reading because its stiffness is much less than the rest of the sensor, making it bend much more easily.
To minimize this design flaw, we have found that you can use heat shrink to strengthen this section. Cut about a 1/2" section of shrink wrap of a diameter that will fit over the connector housing. Next, slide the heat shrink over the housing and along the sensor up to a black bar right before the start of the pale conductive ink squares. Heat the shrink wrap until it shrinks securely to the sensor.
Using a multimeter, test the new connector. Using the resistance setting, when you bend the flex sensor you should see the resistance change relative to the bend angle. If not, check your crimp connection.
Finally, using scissors, round the corners of your flex sensors. The sharp right angle corners snag on your stitching. Rounding them allows you to slide them in the pockets more easily.
For extra strength, we soldered the crimp terminal to the tab after we crimped it. You can skip this part if you want.
Now, slide the terminals into the female housings. You might need to cut a little length off the side of the housing for it to slide into place correctly.
One problem with the Spectra Symbol flex sensors is a weak section just before the soldering tabs. This section has a tendency to break the traces after relatively few bending cycles (This happend to one of the sensors in the demo video). Additionally, this section can impact the sensor reading because its stiffness is much less than the rest of the sensor, making it bend much more easily.
To minimize this design flaw, we have found that you can use heat shrink to strengthen this section. Cut about a 1/2" section of shrink wrap of a diameter that will fit over the connector housing. Next, slide the heat shrink over the housing and along the sensor up to a black bar right before the start of the pale conductive ink squares. Heat the shrink wrap until it shrinks securely to the sensor.
Using a multimeter, test the new connector. Using the resistance setting, when you bend the flex sensor you should see the resistance change relative to the bend angle. If not, check your crimp connection.
Finally, using scissors, round the corners of your flex sensors. The sharp right angle corners snag on your stitching. Rounding them allows you to slide them in the pockets more easily.
Step 5: Attach Velcro to Glove and Flex Sensor
If not secured to the glove, the flex sensors will slip out of the pockets. To keep this from happening, we will use Velcro squares attached to the female housing on the flex sensors and the glove to hold them in place.
Cut the fuzzy side of the Velcro into five ~1/2" x ~3/4" rectangle sections. Next, Cut the hook side of the Velcro into five sections the same size as the female housings on the flex sensors.
Sew the fuzzy Velcro rectangles to the glove at the opening of each flex sensor pocket such that when the flex sensor is in the pocket, the connector housing is directly above the Velcro patch.
Now, glue the hook Velcro sections to the upper side of each flex sensor housing. The upper side of the flex sensor is the side with the pale squares on it.
Your flex sensors should be all ready to go! Try sliding them into their pockets and make sure the Velcro on the glove contact the Velcro on the flex sensor.
The remaining steps will cover using conductive thread and connectors to wire the flex sensors.
Cut the fuzzy side of the Velcro into five ~1/2" x ~3/4" rectangle sections. Next, Cut the hook side of the Velcro into five sections the same size as the female housings on the flex sensors.
Sew the fuzzy Velcro rectangles to the glove at the opening of each flex sensor pocket such that when the flex sensor is in the pocket, the connector housing is directly above the Velcro patch.
Now, glue the hook Velcro sections to the upper side of each flex sensor housing. The upper side of the flex sensor is the side with the pale squares on it.
Your flex sensors should be all ready to go! Try sliding them into their pockets and make sure the Velcro on the glove contact the Velcro on the flex sensor.
The remaining steps will cover using conductive thread and connectors to wire the flex sensors.
Step 6: (Optional) Assemble Conductive Thread Connectors
If you did not buy the male and female conductive thread connectors, you will need to make them now.
Instructions for making them can be found at the Instructables below:
Male Conductive Thread Connector
Female Conductive Thread Connector
Instructions for making them can be found at the Instructables below:
Male Conductive Thread Connector
Female Conductive Thread Connector
Step 7: Attach Fabric Tabs With Male Connectors
Next, you will need to make fabric tabs for the male connectors to be attached. These neoprene tabs will allow the glove to be stretched without the male connectors being pulled out of the flex sensors.
Cut five ~1/2" x ~3/4" rectangles out of the neoprene fabric.
Now using as few stitches as possible, sew one male connector to one end of each fabric tab. This is just to hold the connector in place until you use the conductive thread to connect the male connector to the female connector.
For each tab, insert the male connectors into the female connectors of the flex sensors which are already inserted (if not put them in and then do this step). This is so you can find the ideal position to sew the end of each tab that is opposite the male connector. You'll want to sew the end of the tab with a little slack.
Cut five ~1/2" x ~3/4" rectangles out of the neoprene fabric.
Now using as few stitches as possible, sew one male connector to one end of each fabric tab. This is just to hold the connector in place until you use the conductive thread to connect the male connector to the female connector.
For each tab, insert the male connectors into the female connectors of the flex sensors which are already inserted (if not put them in and then do this step). This is so you can find the ideal position to sew the end of each tab that is opposite the male connector. You'll want to sew the end of the tab with a little slack.
Step 8: Plan Out Conductive Thread Paths and Attach Female Connectors
When we constructed our glove, one mistake we made was, when we mapped out the path the conductive thread (from the male connectors to the female connectors), we placed the female connectors too close together. Trust me you don't want to run the threads more than once. Give yourself plenty of space between threads and don't put the female connectors too close together. You can see in the pictures our first (bad) setup and our second (good) setup.
It really helps if you mark out the path for each thread line. This will keep your sewing inline and on target.
Now, just like with the male connectors, sew the female connectors to their planned out position with as little stitching as possible. This is to temporarily hold them in place.
It really helps if you mark out the path for each thread line. This will keep your sewing inline and on target.
Now, just like with the male connectors, sew the female connectors to their planned out position with as little stitching as possible. This is to temporarily hold them in place.
Step 9: Start Sewing One Thread Line Using the Conductive Thread
Now for the big moment! Measure out the conductive thread so that you have plenty to cover the distance between the male and female connectors (more is better, less is bad!). You are going to sew one line at a time.
Thread the needle with the conductive thread, pull halfway through and tie a knot in the double strand. All conductive thread has some degree of fraying. We've found this causes their knots to come loose. To prevent this, we dab a drop of super glue on each conductive thread knot.
Start at the male connector end and stitch around one of the wire loops of the male connector. You want to make sure there is a good connection between the wire loop and thread so make sure this stitching is nice and tight. Stitch starting at the top and go around the loop.
Note: We grabbed the pictures from the male connector instructable to illustrate the sewing method. You will be sewing on your tabs which should not look like the fabric in the first four pictures below.
Once you get to the bottom of the loop, thread the thread through the neoprene such that thread is IN the thickness of the neoprene fabric. This is to isolate and insulate the thread. Continue down the tab and into the glove fabric following your tracing.
Now, if your male and female connectors are spaced far apart (like in my case), you won't be able to thread the thread in the thickness of the neoprene all the way. Basically, go as far as you can manage and then bring the thread up to the surface and pull the remaining thread through. Don't pull too tight because you'll want some slack in the line so you don't run the chance of breaking the thread if the glove stretches. Now, thread the thread in the neoprene a short distance away and continue down your trace until you reach the female connectors.
If your male and female connectors are relatively close together, try to sew the thread in the neoprene the entire distance.
Thread the needle with the conductive thread, pull halfway through and tie a knot in the double strand. All conductive thread has some degree of fraying. We've found this causes their knots to come loose. To prevent this, we dab a drop of super glue on each conductive thread knot.
Start at the male connector end and stitch around one of the wire loops of the male connector. You want to make sure there is a good connection between the wire loop and thread so make sure this stitching is nice and tight. Stitch starting at the top and go around the loop.
Note: We grabbed the pictures from the male connector instructable to illustrate the sewing method. You will be sewing on your tabs which should not look like the fabric in the first four pictures below.
Once you get to the bottom of the loop, thread the thread through the neoprene such that thread is IN the thickness of the neoprene fabric. This is to isolate and insulate the thread. Continue down the tab and into the glove fabric following your tracing.
Now, if your male and female connectors are spaced far apart (like in my case), you won't be able to thread the thread in the thickness of the neoprene all the way. Basically, go as far as you can manage and then bring the thread up to the surface and pull the remaining thread through. Don't pull too tight because you'll want some slack in the line so you don't run the chance of breaking the thread if the glove stretches. Now, thread the thread in the neoprene a short distance away and continue down your trace until you reach the female connectors.
If your male and female connectors are relatively close together, try to sew the thread in the neoprene the entire distance.
Step 10: Finish Sewing One Thread Line Using the Conductive Thread
Once you get near the female connector, have the thread come up out of the neoprene at the top of the corresponding wire loop.
Like with the male connectors, start at the top of the loop and work your way around it. Remember you want to make a good connection here as well so make the stitching nice and tight but still leave slack in the rest of the line.
Once you feel the loop is secure to your liking, finish it off with a know. Dab on some super glue and you're 1/10th the way done!
Before you start your next thread, make sure to test out your trace with your multimeter to make sure you made good connections on both ends.
Repeat steps 9 and 10 nine more time with all the other male and female connectors' wire loops.
Note: We found it useful, when stitching a line close to a separate line, to stop and check every so often that your lines are in fact isolated from each other using the multimeter. It's easy to make a mistake and have them ever so slightly touch with this sewing method since you cannot see the thread as you sew it.
Like with the male connectors, start at the top of the loop and work your way around it. Remember you want to make a good connection here as well so make the stitching nice and tight but still leave slack in the rest of the line.
Once you feel the loop is secure to your liking, finish it off with a know. Dab on some super glue and you're 1/10th the way done!
Before you start your next thread, make sure to test out your trace with your multimeter to make sure you made good connections on both ends.
Repeat steps 9 and 10 nine more time with all the other male and female connectors' wire loops.
Note: We found it useful, when stitching a line close to a separate line, to stop and check every so often that your lines are in fact isolated from each other using the multimeter. It's easy to make a mistake and have them ever so slightly touch with this sewing method since you cannot see the thread as you sew it.
Step 11: Testing
Once you've threaded all your lines, your glove should be wired up for use. If you took your flex sensors out while you threaded the lines, put them back in their pockets and plug in the male connector.
Using your multimeter on ~20k ohm resistance setting, confirm your glove is correctly wired by putting on the glove, connecting the multimeter probes to the each female connector (one at a time) and bend the corresponding finger. You should see the resistance go from around 10-40k Ohm to 40-60k Ohm (each flex sensor is different in its initial resistance and range and can differ greatly).
Using your multimeter on ~20k ohm resistance setting, confirm your glove is correctly wired by putting on the glove, connecting the multimeter probes to the each female connector (one at a time) and bend the corresponding finger. You should see the resistance go from around 10-40k Ohm to 40-60k Ohm (each flex sensor is different in its initial resistance and range and can differ greatly).
Step 12: Circuits
If you've gotten to this point, your Soft-Circuit position sensing glove is in working order so now the fun can begin!
Flex sensors only change resistance with respects to bend angle. You're going to have to build a circuit to convert this resistance change into a voltage to make it useful.
Here is the Spectra Symbol Flex Sensor spec sheet. They describe a couple different circuits you can use for different applications. Basically, the simplest one is to use it as a variable resistor in a voltage divider (with an op amp impedance buffer tagged on at the end of it).
We design our circuits and protoboards in Eagle. This is a great way to plan out your circuit elements' positions before hand. We've posted pictures of the Eagle schematic and board layout files below. (The pictures look pretty small but if you click the "i" button when you hover over the image, you'll go to another page where you can download the much larger original images.)
Note: The circuit we built for the demo is for applications where you want to monitor the angle of bend of each finger. However, the circuit you need will change depending on your intended application for the glove. Some examples of circuits for other applications can be found in the Spectra Symbol datasheet as well.
Basically the circuit works like this.
5V input voltage --> inverting amplifier with a gain of -1 ----> voltage divider ---> inverting amplifier with a gain of -2.5 ---> MCU analog input pins.
Well eventually get around to posting an instructable detailing how to build the one we used in the demo. Until then, feel free to ask questions.
Flex sensors only change resistance with respects to bend angle. You're going to have to build a circuit to convert this resistance change into a voltage to make it useful.
Here is the Spectra Symbol Flex Sensor spec sheet. They describe a couple different circuits you can use for different applications. Basically, the simplest one is to use it as a variable resistor in a voltage divider (with an op amp impedance buffer tagged on at the end of it).
We design our circuits and protoboards in Eagle. This is a great way to plan out your circuit elements' positions before hand. We've posted pictures of the Eagle schematic and board layout files below. (The pictures look pretty small but if you click the "i" button when you hover over the image, you'll go to another page where you can download the much larger original images.)
Note: The circuit we built for the demo is for applications where you want to monitor the angle of bend of each finger. However, the circuit you need will change depending on your intended application for the glove. Some examples of circuits for other applications can be found in the Spectra Symbol datasheet as well.
Basically the circuit works like this.
5V input voltage --> inverting amplifier with a gain of -1 ----> voltage divider ---> inverting amplifier with a gain of -2.5 ---> MCU analog input pins.
Well eventually get around to posting an instructable detailing how to build the one we used in the demo. Until then, feel free to ask questions.
Step 13: Demo
For this demo, we used an Arduino Duemilanove microcontroller hooked up to a PC. We used the same code as in this Instructable by Plusea.