Introduction: Robotic Arm Controlled by Human Arm

About: A brief description of my experience in Automation, Control and Robotics I have spent the last 20 years working in the areas of DCS (Distributed Control Systems), ESD (Emergency Shutdown Systems), and PLC (Pr…

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)

Step 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.

Step 2: 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

Step 3: 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

Step 4: 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); } }