Robotic Arm Controlled by Human Arm
by zezarandrade in Circuits > Arduino
1565 Views, 1 Favorites, 0 Comments
Robotic Arm Controlled by Human Arm
ABOUT THIS PROJECT
This project involves the realization of a prototype that mimics the movements of the human arm. The idea is to replicate the movement of our arm and that every move we make will be reflected in the robotic arm.
Supplies
⦁ DC Motor, 6 Volts (1)
⦁ Gearbox (1)
⦁ Base for Motor (1)
⦁ Motor Control which includes: 2 Relays, Resistors, Transistors and Diodes. See Schematics for detail
⦁ Potentiometers, 10K (2)
⦁ Arduino Uno, Rev 3 (1)
OPERATION
Consider the block diagram shown in Fig. 1, which represents the entire project:
You can see in this diagram, the robotic arm, at this time we will focus on the motors, these motors will be controlled by a device called Motor Control.
Additionally, we require sensors, these sensors are associated with the motors. The sensors will fed back the information to the control device.
We also have the position sensors, they are going to be placed in different places of the human arm, to provide information to the system related to the position of each of the parts of our arm.
Of course we need some one who directs the orchestra and is none other than Arduino UNO.
Arduino UNO is the brain that will control all the processes of the robotic arm. It is in charge of receiving the signals and generate the data to control the arm.
DESCRIPTION OF MATERIALS
1) DC Motor
In order to mobilize the different parts of the robotic arm, DC motors are used.
We could use DC motors, Servo motors or stepper motors. Depending on the accuracy with which we want to work, we´ll select any of these motors
2) Gearbox
We also need a gearbox to reduce the motor speed and increase the torque
3) Base for Motor
A base for the motor is required
4) Motor Control which includes: 2 Relays, Resistors, Transistors and Diodes.
Based in relays the motor control is in charge of managing the motors and establishing the direction of the displacement.
See Schematics for detail of connections and parts required
5) Potentiometers, 10K
To sense the position of the arm pots are used
6) Arduino Uno, Rev
The control and direction of everything is the responsibility of the arduino board
Circuit Diagram
This is an Arduino based circuit
In this diagram you can see the two pots, one associated to the human arm, and the other associated to the robotic arm.
Also you can see in the diagram the relays associated to the motor and all the associated system circuitry
NOTE:
For now let's consider just a single motor, then we can then replicate to other motors
Downloads
CODE
CODE:
int POT1 = A0; // select the input pin for the potentiometer 1
int POT2 = A1; // select the input pin for the potentiometer 2
int X = 0; // select the pin for the motor control (FORWARD)
int Y = 1; // select the pin for the motor control (REVERSE)
int sensorValue1 = 0; // variable to store the value coming from POT1
int sensorValue2 = 0; // variable to store the value coming from POT2
void setup() {
// declare X AND Y as an OUTPUT:
pinMode(X, OUTPUT);
pinMode(Y, OUTPUT); }
void loop() {
// read the values from the POTS:
sensorValue1 = analogRead(POT1);
sensorValue2 = analogRead(POT2);
// compare sensor values:
if (sensorValue1 <= sensorValue2 + 50 || sensorValue1 >= sensorValue2 - 50)
{ digitalWrite(X, LOW); digitalWrite(Y, LOW); }
if (sensorValue1 < sensorValue2 - 51)
{ digitalWrite(X, LOW); digitalWrite(Y, HIGH); }
if (sensorValue1 > sensorValue2 + 51)
{ digitalWrite(X, HIGH); digitalWrite(Y, LOW); } }