DIY Hand Neuroprosthetic
Inventor | Will Wharton |
micro:bit IDE | MakeCode |
Best Used | Classroom |
Background
The Spiker:bit can record the the electrical signals our brain sends to our muscles. Our Getting Started in Block guide shows how we can capture those electrical signals and use them in a micro:bit Project. This project will show you how to use that signals to control a neuroprosthetic hand. Neuroprosthetics are assistive devices, which are used to help people who have suffered from neurological illness or physical injury. They can also be used to create new and exciting control systems to enhance human ability!
Here you will create your very own Cyborg Hand which you will then control with the electrical systems in your nervous system. But, don't stop there! These same principals can be applied to countless other projects. This is the exact way many very advanced neuroprosthetics work today!
Build Instructions
Begin by assembling your materials at your work station. Plug in your hot glue gun to get it warming up, but it will be a few minutes before you need to use it.
1. Cut the Straws
Pick out your favorite colored straws and cut them with your scissors until you have at least 25 short segments (approx the width of a fingernail). For our example, we are using two colors to identify the fingers stimulated by the Ulnar and Median nerves. If you would also like to include this anatomical element in your model, pick out two colors and cut at least 10 of one color (for the pinky and ring finger pulleys), and 15 of the other color (for thumb, index, and middle finger pulleys)
2. Prepare for Hot Gluing
Ready your short straw segments, your hand, and your hotglue gun. Let your glue gun heat up.
3. Glue Straws on Fingers
Begin to apply dabs of hot glue to your digits (don't cover the holes)!
With every dab of hot glue, stick on one of your colored straw segments. As you can see in our picture, we are using the yellow straws on the pinky and ring finger, and red straws for the thumb, pointer, and middle fingers. You can do this too, or, if your creativity is speaking to you, pattern the colors however you'd like (Infinity Gauntlet Colors are also approved.)
4. Glue the Hand Together
Continue until you have straws glued to the digits of every finger (pulleys), and straws glue to the base of the hand (tendon sheath). Once the glue dries, pick off any of the hot glue "spiderwebs" and make sure that all the finger joints still bend and the fist can close.
5. Cut the Thread
Take your long string and fold it in half. Then, like in the shape of an S sandwiched flat, fold it in thirds. Then, with three cuts, one at each bend in the thread, you can cut the entire length of thread into 6 equally long pieces.
6. Thread the First Finger
Thread one of the lengths of string from the bottom of the hand up through the finger pulleys. Once you have pulled the thread out the tip of the finger, use your hotglue gun to fill ONLY that final straw segment with glue - locking the thread in place. Give the glue a minute to dry, then give a tug on the string from the bottom of the hand. The finger should curl in!
7. Finish threading the Hand
Follow the above step for the rest of the fingers on your hand. You should have 1 length of thread left over at the end.
8. Prepare for Servo Motor
Set aside your hand a moment to let the glue dry. Take your servo motor out of its plastic baggy, and find the longest of the white plastic arms.
This step is important for the Orientation of the motor: with the wires of the servo motor coming in towards you, press the lever arm into place on the servo motor's gear so that the action arm makes a 90 degree angle (or close to it) with the rectangular body of the servo motor.
If you have a small screwdriver, you can screw it into place, but the friction fit should be good enough too (especially once we get a bit of hot glue on it!)
9. Measure Wood Cuts
We need to measure a slot on our sheet of balsa wood to fit the servo motor. With the included pencil, measure and mark from the bottom right hand corner of the balsa wood up as far as the long side of the servo motor with it oriented as you see in the picture.
Similarly, mark the width of the servo motor. As you see, we are measuring out a slot in the bottom corner of the balsa wood to glue our servo motor in to.
10. Cut the Balsa Wood
Balsa wood is soft, so you should be able to use your scissors to cut out this small chunk of the wood. Make the long cut first, the short cut will be a little harder. If you can't cut all the way through, weaken it with your scissors, then bend and break off this small piece with your hands.
11. Orient the Servo Motor
Note: this step is important for the Orientation of the motor: Glue the servo motor into this slot, and make sure the wires coming out of the servo motor come out the tail end.
12. Glue a Pencil
Glue the pencil on to the servo motor's action arm by applying a line of glue dow the servo motor's arm, then pressing your pencil into place. Careful not to let globs of glue get under the arm into the gears of the servo motor!
13. Glue the Hand
Apply glue to the top side of the balsa wood. This is where we will be gluing the hand you created earlier.
Press the hand down into the glue. We recommend that the base of the fingers extend just past the end of the balsa wood.
14. Trim the Strings
Trim the loose threads hanging from the hand, leaving plenty dangling, but evening out the lengths.
We keep at least half the length of the thread, as you measure from the base of the balsa wood to the base of the foam hand.
15. Tie a Knot
Use your last thread to tie a knot around the dangling threads.
16. Adjust the Tension
Pull the knot tight. You can adjust the tension of the individual fingers by pulling on the thread past the knot until the fingers seem "taut".
17. Finish it up!
Wrap the thread you used to make the knot around the pencil close to the tip of the pencil and hotglue the thread into place. Once that glue dries, you are done! Plug the hand into the Muscle SpikerShield, plug in two batteries.
Code
Time to bring that prosthetic hand to life with your coding skills! We'll show you how to connect the servo and EMG to your microbit, making it a robotic sidekick that moves with your muscles. You can view the sample code bellow in blocks and in Python!
First up, let's set a threshold. Each of us has unique muscle signals, so we'll plot the EMG data to see your flex values on the y-axis. This way, your microbit can understand your muscular lingo. You’ll see the inputs are set to P8 for the servo and P0 for your EMG.
Once you've found the perfect threshold, get ready to control that prosthetic hand! With a little coding magic, you'll make it mimic your movements flawlessly.
- Block Code
- Python
Check out the code blocks below and let’s get experimenting! 🚀
val = 0
threshold = 300 # set your EMG threshold here
pins.servo_write_pin(AnalogPin.P8, 0)
while True:
val = pins.analog_read_pin(AnalogPin.P0)
serial.write_value("EMG", val) # read your EMG signal
# if your EMG > your threshold the servo will move 90 degrees
if int(val) >= int(threshold):
pins.servo_write_pin(AnalogPin.P8, 90)
else:
pins.servo_write_pin(AnalogPin.P8, 0)
Operating Instructions
Plug in your orange cable, and connect your electrodes to your arm and turn on the Spiker:bit.
After a few seconds, you can control the DIY Hand Neuroprosthetic by flexing your own muscles! It should change the resting state of the hand from open to closed!
If, when you plug it in, the servo motor and pencil immediately move the hand to the "closed" position, you pop the pencil off and reset it to the 90 degree position it was originally set to.