Robotic hand
Build your own robotic hand controller

Components
1 Arduino nano
1 Power Supply
Supplies
Wires
Wire Striper Tool
5 Elastrolink Vein
USB Cable
Cutting Pliers
1 Gatonic robotic hand ROBO 142/3
Bakelite circuit board
Soldering Iron Station
Step 1 : Sensor Test

Connect the DATA wire (yellow) to A0, the red to 5V and the black one to GND
void setup() {
Serial.begin(9600);
}
Vois loop (){
Serial.println(analogRead(A0));
}
This sketch will allow you to check if your vein is working correctly.
When you’re not touching the vein it should print around 1024.
After that you can pinch the end of the vein and store the result then do the same thing with the beginning. Like that you will know the limit of your sensor.
Step 2 : 1 Elastrolink 1 servo
First we have got to try to control one servos motor with one Elastrolink
We are going to connect the motor to the pin 12 and the sensor to the pin A0
Program
#include <Servo.h>
Servo forefinger;
int bp1 = A0;
void setup()
{
Serial.begin(9600);
forefinger.attach(12);
forefinger.write(140);
pinMode(bp1,INPUT);
}
void loop()
{
/* —- forefinger — */
if (analogRead(bp2) < 10 ){ forefinger.write(140); }
if (analogRead(bp2) > 10 && analogRead(bp2) < 12 ){ forefinger.write(130); }
if (analogRead(bp2) > 12 && analogRead(bp2) < 14 ){ forefinger.write(120); }
if (analogRead(bp2) > 14 && analogRead(bp2) < 16 ){ forefinger.write(110); }
if (analogRead(bp2) > 16 && analogRead(bp2) < 18 ){ forefinger.write(100); }
if (analogRead(bp2) > 18 && analogRead(bp2) < 20 ){ forefinger.write(90); }
if (analogRead(bp2) > 20 && analogRead(bp2) < 22 ){ forefinger.write(80); }
if (analogRead(bp2) > 22 && analogRead(bp2) < 24 ){ forefinger.write(70); }
if (analogRead(bp2) > 24 && analogRead(bp2) < 26 ){ forefinger.write(60); }
if (analogRead(bp2) > 26 ){ forefinger.write(50); }
}
Result
When the sensor is released the finger is up

When the sensor is half bend, the finger is also half bend

Finally when the sensor is completely bend the finger is closed

Step 3 : Multiple the sensor and fingers
Now we are going to add the other sensors and fingers
#include <Servo.h>
Servo forefinger;
Servo thumb;
Servo majeur;
Servo annulaire;
Servo auriculaire;
int bp1 = A4;
int bp2 = A3;
int bp3 = A2;
int bp4 = A1;
int bp5 = A0;
void setup()
{
Serial.begin(9600);
thumb.attach(8);
forefinger.attach(12);
majeur.attach(11);
annulaire.attach(10);
auriculaire.attach(9);
thumb.write(160);
forefinger.write(140);
majeur.write(150);
annulaire.write(130);
auriculaire.write(150);
pinMode(bp1,INPUT);
pinMode(bp2,INPUT);
pinMode(bp3,INPUT);
pinMode(bp4,INPUT);
pinMode(bp5,INPUT);
}
void loop()
{
/* —- thumb — */
if (analogRead(bp1) < 10 ){ thumb.write(140); }
if (analogRead(bp1) > 10 && analogRead(bp1) < 12 ){ thumb.write(130); }
if (analogRead(bp1) > 12 && analogRead(bp1) < 14 ){ thumb.write(120); }
if (analogRead(bp1) > 14 && analogRead(bp1) < 16 ){ thumb.write(110); }
if (analogRead(bp1) > 16 && analogRead(bp1) < 18 ){ thumb.write(100); }
if (analogRead(bp1) > 18 && analogRead(bp1) < 20 ){ thumb.write(90); }
if (analogRead(bp1) > 20 && analogRead(bp1) < 22 ){ thumb.write(80); }
if (analogRead(bp1) > 22 && analogRead(bp1) < 24 ){ thumb.write(70); }
if (analogRead(bp1) > 24 && analogRead(bp1) < 26 ){ thumb.write(60); }
if (analogRead(bp1) > 26 ){ thumb.write(50); }
/* —- forefinger — */
if (analogRead(bp2) < 10 ){ forefinger.write(140); }
if (analogRead(bp2) > 10 && analogRead(bp2) < 12 ){ forefinger.write(130); }
if (analogRead(bp2) > 12 && analogRead(bp2) < 14 ){ forefinger.write(120); }
if (analogRead(bp2) > 14 && analogRead(bp2) < 16 ){ forefinger.write(110); }
if (analogRead(bp2) > 16 && analogRead(bp2) < 18 ){ forefinger.write(100); }
if (analogRead(bp2) > 18 && analogRead(bp2) < 20 ){ forefinger.write(90); }
if (analogRead(bp2) > 20 && analogRead(bp2) < 22 ){ forefinger.write(80); }
if (analogRead(bp2) > 22 && analogRead(bp2) < 24 ){ forefinger.write(70); }
if (analogRead(bp2) > 24 && analogRead(bp2) < 26 ){ forefinger.write(60); }
if (analogRead(bp2) > 26 ){ forefinger.write(50); }
/* — MAJEUR — */
if (analogRead(bp3) < 10 ){ majeur.write(150); }
if (analogRead(bp3) > 10 && analogRead(bp3) < 40 ){ majeur.write(136); }
if (analogRead(bp3) > 40 && analogRead(bp3) < 70 ){ majeur.write(122); }
if (analogRead(bp3) > 70 && analogRead(bp3) < 100 ){ majeur.write(108); }
if (analogRead(bp3) > 100 && analogRead(bp3) < 130 ){ majeur.write(94); }
if (analogRead(bp3) > 130 && analogRead(bp3) < 160 ){ majeur.write(80); }
if (analogRead(bp3) > 160 && analogRead(bp3) < 190 ){ majeur.write(66); }
if (analogRead(bp3) > 200 ){ majeur.write(52); }
/* — ANNULAIRE — */
if (analogRead(bp4) < 10 ){ annulaire.write(130); }
if (analogRead(bp4) > 10 && analogRead(bp4) < 15 ){ annulaire.write(121); }
if (analogRead(bp4) > 15 && analogRead(bp4) < 20 ){ annulaire.write(112); }
if (analogRead(bp4) > 20 && analogRead(bp4) < 25 ){ annulaire.write(103); }
if (analogRead(bp4) > 25 && analogRead(bp4) < 30 ){ annulaire.write(94); }
if (analogRead(bp4) > 30 && analogRead(bp4) < 35 ){ annulaire.write(85); }
if (analogRead(bp4) > 35 && analogRead(bp4) < 40 ){ annulaire.write(76); }
if (analogRead(bp4) > 40 && analogRead(bp4) < 45 ){ annulaire.write(67); }
if (analogRead(bp4) > 45 && analogRead(bp4) < 50 ){ annulaire.write(58); }
if (analogRead(bp4) > 50 ){ annulaire.write(49); }
/* — AURICUALIRE — */
if (analogRead(bp5) < 10 ){ auriculaire.write(140); }
if (analogRead(bp5) > 10 && analogRead(bp5) < 14 ){ auriculaire.write(130); }
if (analogRead(bp5) > 14 && analogRead(bp5) < 16 ){ auriculaire.write(120); }
if (analogRead(bp5) > 16 && analogRead(bp5) < 18 ){ auriculaire.write(110); }
if (analogRead(bp5) > 18 && analogRead(bp5) < 20 ){ auriculaire.write(100); }
if (analogRead(bp5) > 20 && analogRead(bp5) < 22 ){ auriculaire.write(90); }
if (analogRead(bp5) > 22 && analogRead(bp5) < 24 ){ auriculaire.write(80); }
if (analogRead(bp5) > 24 && analogRead(bp5) < 26 ){ auriculaire.write(70); }
if (analogRead(bp5) > 26 && analogRead(bp5) < 28 ){ auriculaire.write(60); }
if (analogRead(bp5) > 28 ){ auriculaire.write(50); }
Serial.print(analogRead(bp1));
Serial.print(“\t”);
Serial.print(analogRead(bp2));
Serial.print(“\t”);
Serial.print(analogRead(bp3));
Serial.print(“\t”);
Serial.print(analogRead(bp4));
Serial.print(“\t”);
Serial.print(analogRead(bp5));
Serial.println();
}