Arduino Robot Arm

by Lego_den in Circuits > Arduino

20 Views, 0 Favorites, 0 Comments

Arduino Robot Arm

robot arm.jpg

A handmade 4-servo robotic arm, handcrafted from wood and controlled via Bluetooth

Ideal for playing and learning arduino.


https://www.instagram.com/kirill_den5/


Supplies

thin wood.jpg
4 servo.jpg
nano.jpg
hc-06.jpg
wires.jpg
  1. Arduino nano
  2. 4 Servo motors
  3. bluetooth module HC-06
  4. A lot of wires
  5. Card board or wood (wood is better)

Connect Everything

Servo1 - D3

Servo2 - D5

Servo3- D6

Sevo4 - D9

(Connect ground to the ground of the source and VCC to the power source)

HC-06

RX - TX

TX - RX

(Connect ground to the ground of the source and VCC to the power source)



Code

#include <Servo.h>


Servo servo1, servo2, servo3, servo4;


int pos1 = 90;

int pos2 = 90;

int pos3 = 90;

int pos4 = 90;


// флаги направления

int dir1 = 0;

int dir2 = 0;

int dir3 = 0;

int dir4 = 0;


void setup() {

Serial.begin(9600);

servo1.attach(3);

servo2.attach(5);

servo3.attach(6);

servo4.attach(9); // Новый серво на пине 9


servo1.write(pos1);

servo2.write(pos2);

servo3.write(pos3);

servo4.write(pos4);

}


void loop() {

if (Serial.available()) {

char command = Serial.read();


switch (command) {

case 'a': dir1 = 1; break;

case 'b': dir1 = -1; break;

case 's': dir1 = 0; break;


case 'c': dir2 = 1; break;

case 'd': dir2 = -1; break;

case 't': dir2 = 0; break;


case 'e': dir3 = 1; break;

case 'f': dir3 = -1; break;

case 'u': dir3 = 0; break;


case 'g': dir4 = 1; break; // Новый мотор вперёд

case 'h': dir4 = -1; break; // Новый мотор назад

case 'v': dir4 = 0; break; // Новый мотор стоп

}

}


// servo1 движение

if (dir1 == 1 && pos1 < 180) {

pos1++;

servo1.write(pos1);

delay(5);

} else if (dir1 == -1 && pos1 > 0) {

pos1--;

servo1.write(pos1);

delay(5);

}


// servo2 движение

if (dir2 == 1 && pos2 < 180) {

pos2++;

servo2.write(pos2);

delay(5);

} else if (dir2 == -1 && pos2 > 0) {

pos2--;

servo2.write(pos2);

delay(5);

}


// servo3 движение

if (dir3 == 1 && pos3 < 180) {

pos3++;

servo3.write(pos3);

delay(5);

} else if (dir3 == -1 && pos3 > 0) {

pos3--;

servo3.write(pos3);

delay(5);

}


// servo4 движение

if (dir4 == 1 && pos4 < 180) {

pos4++;

servo4.write(pos4);

delay(5);

} else if (dir4 == -1 && pos4 > 0) {

pos4--;

servo4.write(pos4);

delay(5);

}

}

Download Bluetooth App

Download the app for controlling the arm (I use Bluetooth Electronics)

a - forward b - backward s- stop ( 1 servo )

c - forward d- backward t - stop ( 2 servo )

e - forward f - backward u - stop ( 3 servo )

g - forward h - backward v - stop ( 4 servo )


Build the Body

1robot arm test.jpg
robot arm test.jpg
robot arm.jpg

Sorry but I didn't make enough photos for you :(