loading

This is a project I did for my Google Science Fair Entry. If you like this please check it out and vote for me when it becomes available.

This is a video of the hand being controlled by the brain opening and closing:



More videos will be on as soon as I get them uploaded

Today, millions are suffering due to the lack of a functional arm preventing them from doing things we take for granted. Until about five years ago, the idea that these people could have a prosthetic arm that wouldn’t just serve for aesthetic reasons, but instead would act as a way for them to regain functionality with natural control via the brain seemed highly far-fetched. Recently, groundbreaking ways to do just that have been successfully developed. These systems, still in development, either connect to existing neurons or to electrodes implanted into the brain to decode the signals from the brain and use them to control a robotic arm. Although they are a great way to help the disabled, these new systems are very costly to develop. The surgery required is very complicated and costly. The robotic arms that these systems use are also extremely pricey. The whole system requires hundreds of thousands to millions of dollars to develop. I wondered If I could develop a system that is affordable to most of those who need it. After doing research, I discovered alternative ways to achieve the task which employs different technologies and components for a fraction of the cost. This robotic arm based on the Inmoov project costs less than $200 dollars for its construction and the brain interface uses a $300 headset from Emotiv. Overall this $500 price tag is almost nothing compared to the hundreds of thousands to millions of dollars required for the current technology. This will successfully enable many more people in need to be able to utilize the available technologies to its fullest potential and restore not only their limbs, but also their lives.

Step 1: Materials

Robotic arm:

All the parts required to build the Inmoov arm which can be found at Inmoov.fr
The robotic arm I made is partly different from this but it can be made without them. For cost efficiency, I do although use different servos which I explain in the next step



Control system:
Emotiv EEG Headset+software

Step 2: Contruction of Inmoov Robotic Arm

In the beginning, I had plans to design and build my own robotic arm that would have every function of a regular human one. Because I would be using my public library’s 3d printer and I didn’t have one of my own, I would have been  unable to prototype regularly make changes through testing. When I came across Inmoov, an open source 3d printed humanoid project, I had decided the best path would be to make and use an iteration of its arm. The arm part of Inmoov acts very similar to a human’s and would be very helpful. I used its design as a base making changes to have it fit my function. I had also used different parts in the case of some servo motors where I could find ones very similar from different sources for about half the price. I coded each degree of motion to correspond with two buttons on the keyboard, one for each direction. When one of these buttons is pressed, the arm moves in that direction for however long it is held.

I will not go into much detail here on how to build the robotic arm due to the fact that it is covered well on Inmoov.fr

You can get the files for the 3d printed pieces here: 
http://www.thingiverse.com/thing:17773
http://www.thingiverse.com/thing:65274
http://www.thingiverse.com/thing:30654
http://www.thingiverse.com/thing:40040

Instead of the HB802 servos use these: http://hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=21821
they are much cheaper but just as good


Step 3: Powering Arm

I used a 5000 mah 7.2v 2s Li-po battery which I bought off of Hobbyking which I duct taped onto my project enclosure. I also used a 20a sbec to bring the voltage down to the 6v that the motors can use. To control the whole arm, I used an Arduino Mega although a Uno will do just fine.

Step 4: Coding for Robotic Arm

For this code, the thumb-pinky is attached to pin 2-6 respectively
the writs is connected to 6, bicep piston to 7, bicep rotational to 8, shoulder piston to 9 and shoulder rotational to 10;
To move the pinky in use q and to move it out use a. The two letters to its right (w and s) control the ring finger and so on so forth until the t and the g which control the thumb. C closes every finger and v opens every finger. Y and H control the wrist, U and J the Bicep up and down. I and K control the bicep rotation. O and L control the shoulder up and down. P and ;(semi colon) contorl the shoulder roation.

The Code I used is attached


Step 5: Mind Control Interface

This is the most important part of the system which makes it interesting.

Looking a the available choices, the EEG headset and the EKG sensors seemed to be the only methods of control which allowed for a low budget and didn’t require surgery. Of these two, I saw the EEG headset as the clear preferable method. The EKG sensors require muscle contractions the area above the prosthetic. First of all, this restricts it to people who still can control that muscle which rules out anyone who is disabled due paralysis or something similar rather than amputation. It also means that without nerve rerouting, not all of the arm can be controlled. Of the EEG headsets, the one that stood out to me was the 300 dollar Emotiv EPOC headset due to its 14 sensors that can pick up cognitive thought compared to the cheaper ones that only sensed concentration levels.
To control the robotic arm with this device, I had the program track my brainwaves as I imagined the possible positions of my arm. To train it with my mind, I gave it many sets of information of my brainwaves. This way, when it sees those patterns again, it know which position I was imagining. Originally I had imagined the movement itself but this proved to be difficult to recognize because it was a set of thoughts rather than one continuous thought. After it was able to detect each though, I had programmed it to type a letter for that thought that corresponds with the one programmed into the the arm. This letter would then be entered into a communication port which went to the robotic arm.

Step 6: Training the Arm

To get the eeg headset to recognize the motions I tricked the Emotiv Control panel into thinking my thoughts of one of the actions as the preset  'bringing an onscreen cube forward" I set up a different preset function with a direction for each degree of motion. (Look at pictures to understand). After each motion is set up and you give enough data for it to consistently detect your thoughts, go into Emokey and set up rules. Each rule should have a condition as one of the cognitive thought motions that you trained and an output key that is held corresponding to the letter that is programmed for that motion. For mine, instead of training each finger, I trained the thoughts of close and open. 

Step 7: Make It Work

Launch a serial communication port at 9600 baud rate with the arduino via Putty. Put on the headset and turn Emokey on. Click into Putty so that any key entered by Emokey goes into the comunication port. Thats it! Imagine the thoughts you trained and see them at work coming to life. 
<p>I found the headset for $800, not $300 where did you get yours?</p>
<p>Hi, I love your project and would like to create one myself, and I'm just a little confused. Pls email me at diyajhamatt@icloud.com. ASAP if you can.</p>
<p>the pdf which you need premium account to download.</p><p>Is it the same copy of all the steps presented on the webpage or some extra details are given?</p>
<p>the pdf which you need premium account to download.</p><p>Is it the same copy of all the steps presented on the webpage or some extra details are given?</p>
And how you made this robot. Please can you explain me?
Sir what are the apparatus to make this robot??
<p>Awesome job! Is everything wireless, or is the EEG headset somehow connected to the robotic arm? </p>
<p>Great work! Could you please email me at joyce@emotiv.com? I'd like to discuss a potential collaboration with Emotiv. Thank you!</p>
<p>niiiiice</p>
<p>can someone help to make it with simply designs for my final year project.</p><p>mail me on rohitlahori93@gmail.com</p>
<p>These are the error messages it is giving me. </p><p>Arduino: 1.6.5 (Windows XP), Board: &quot;Arduino Uno&quot;</p><p>Robotic_Arm.ino: In function 'void setup()':</p><p>Robotic_Arm:34: error: 'birot' was not declared in this scope</p><p>Robotic_Arm:36: error: 'shorot' was not declared in this scope</p><p>Robotic_Arm:44: error: 'bipistion' was not declared in this scope</p><p>Robotic_Arm.ino: In function 'void loop()':</p><p>Robotic_Arm:129: error: 'birot' was not declared in this scope</p><p>Robotic_Arm:144: error: 'shorot' was not declared in this scope</p><p>Robotic_Arm:148: error: 'shorot' was not declared in this scope</p><p>'birot' was not declared in this scope</p><p> This report would have more information with</p><p> &quot;Show verbose output during compilation&quot;</p><p> enabled in File &gt; Preferences.</p>
<p>First of all I want to say great project. I did it myself and made a few changes to the arm but I used your sketch. I ran into a problem where it states 'birot' was not declared in this scope. Any idea how to fix this? Thanks</p>
<p>the plastic is very fragile----and --no-- I see it work- is show?</p>
<p>the plastic is very fragile----and --no-- I see it work-----</p>
<p>from where did you got the ekg and eeg sensor</p>
<p>from where did you got the ekg and eeg sensor</p>
<p>Do you have an update of this project? I wonder if it worked and how it worked, to see a video.</p><p>Thank you.</p>
<p>Which age category are you applying for because I made exactly the same thing for my google science fair project too!</p>
<p>are you able to control both the elbow joint as well as the shoulder joint with the EEG headset or is it just the hand? And if so is it possible to program the headset to control the other joints, and are you able to control each finger individually? </p>
<p>how to connect eeg control panel to arduino. i know it is serial communication but how to connect eeg control panel to atduino with serial monitor. </p>
<p>Impressive work.</p>
<p>very good job on this keep up the good work you are doing </p><p>thanks for sharing this</p>

About This Instructable

56,121views

160favorites

License:

More by LeelaKrishna:Mind Controlled Robotic Arm 
Add instructable to: