ELG project presentation final

Preview:

Citation preview

Animatronic Robotic Hand

Project Block Diagram

6 Volts Battery Pack

Toggle Switch

Servo Motor

470 Ohm Resistor

100 µF Electrolyte Capacitor(Decoupling Capacitors)

Red LED

Servo Motors Circuit Diagram

Flex Sensor

10KOhm Resistor

Flex Sensor Circuit Diagram

Operating Voltage Range : 4.8V TO 6.0VWeight: 45.5g (1.6oz)Dimensions: 40.6 x 19.8 x 36.6mm (1.59 x 0.77 x 1.44in)Stall Torque: 3.3 kg.cm (45.82 oz.in)Operating Speed : 0.21sec/60 deg AT NO LOADOperating Angle : 180 degControl System: Pulse width control

HSS-422 Servo Motor Specifications

Life Cycle: >1 million

Thickness: 0.43mm (0.017")

Flat Resistance: 10K Ohms ±30%Bend Resistance: minimum 2 times greater than the flat resistance at 180° pinch bendPower Rating : 0.5 Watts continuous; 1 WattPeak

Temperature Range: -35°C to +80°C

Flex Sensor Specifications

#include <Servo.h>

Servo Servo_1;Servo Servo_2;Servo Servo_3;Servo Servo_4;Servo Servo_5;

int Voltmeter= 13;int flexPin1= 1;int flexPin2= 2;int flexPin3= 3;int flexPin4= 4;int flexPin5= 5;

int flexVal1;int flexVal2;int flexVal3;int flexVal4;int flexVal5;

int angle1;int angle2;int angle3;int angle4;int angle5;int voltReading;

void setup(){ Servo_1.attach(5); Servo_2.attach(6); Servo_3.attach(9); Servo_4.attach(10); Servo_5.attach(11);

pinMode(Voltmeter, OUTPUT); Serial.begin(9600);}

Import servo library

Variable declaration

Associating the servos to specific Arduino PMW pins

Initializing digital pin 13 as an Output

Initializing the serial port

Arduino Code Explained

Serial.print(", angle: "); Serial.print(angle1);

Servo_1.write(angle1); Servo_2.write(angle2); Servo_3.write(angle3); Servo_4.write(angle4); Servo_5.write(angle5); if(voltReading >650) { digitalWrite(Voltmeter, HIGH); } else if (voltReading < 650) { digitalWrite(Voltmeter, LOW); } }

void loop()

{ voltReading=analogRead(0); flexVal1=analogRead(flexPin1); flexVal2=analogRead(flexPin2); flexVal3=analogRead(flexPin3); flexVal4=analogRead(flexPin4); flexVal5=analogRead(flexPin5); Serial.print("\nFLEX_Val: "); Serial.print(flexVal1);

angle1 = map(flexVal1, 390,455, 180, 0); angle2 = map(flexVal2, 113,130, 180, 0); angle3 = map(flexVal3, 300,340, 180, 0); angle4 = map(flexVal4, 350,415, 180, 0); angle5 = map(flexVal5, 325,390, 180, 0);

Arduino Code Explained

Apply Analog input values to variables

Displays the analog voltage of flexVal1 on the serial monitor

Mapping flex sensorvalues to angle Variables (10 bit values)

Displays angle of rotation forservo 1 on the serial monitor

Rotates servo motors according to the given value of each “angle” variables

If the voltage reading isabove 3.2V the LED is turned on

If the voltage reading isbelow 3.2V the LED is turned off

Thank You!