You are on page 1of 9

Lovely professional university

The project report on

Robotic Arm

Submitted by:

P.Bhanu prakash reddy(11707192)

M.Nalin kumar(11718699)

A.Rama Krishna raja(11607808)


Introduction:

Robotics is one of the fields that has impacted humans lives for many years. These days, we see
robotics used in several areas such as the medical sector, industrial, educational, and currently
we even see household robots. The robotic world has received mixed reactions from people
because some industries have been constantly replacing human workers with robotic
counterparts. A robot can be user-controlled, semi-autonomous, or completely autonomous.
Nowadays, with the evolution of technology, we have reached a point where the purchase of an
affordable hobby robotic arm edge is feasible. This enables robotic kits to be easily accessible
for schools to introduce to students. There have been several related academic journals to this; I
will specify some examples in relation to building a robotic arm from scratch, to then control the
movement of the robotic arm with the use of a desktop application and an Arduino, publication
by the Technological Educational Institute of Thessaly or wireless.

mobile communication with the use of an Arduino Mega publication by the UniversitiTun
Hussein Onn in Malaysia . In addition to these, there have been a couple of hobby projects that
helped me build various elements of my projects, LuckyLarry website and Mayoogh. A robotic
arm works as an imitation of a human arm and is able to carry out different duties similar to that
of its human counterpart. However, in robotics, we have something called degrees of freedom,
which are modes through which a mechanical device or system can move. The human arm has 7
Degrees of Freedom (DOF) and each task carried out by the arm uses a specific number of DOF.

Components :

 Arduino uno
 Bluetooth module
 joysticks
 Breadboard
 Male,female wires
 Five servo moters
 Android device
 Cuttedplankwood
 Bolts 5 inch
 MG996R servo moter-3
 SG90 servo moter-2
 Caster wheel-4
 L-clamps-2

Arduino:

Power supplyArduino is an open-source electronics platform based on easy-to-use hardware and


software. Arduino boards are able to read inputs - light on a sensor, a finger on a button, or a
Twitter message - and turn it into an output - activating a motor, turning on an LED, publishing
something online. You can tell your board what to do by sending a set of instructions to the
microcontroller on the board. To do so you use the Arduino programming language (based
on Wiring), and the Arduino Software (IDE), based on Processing.

Bluetooth module:

HC-05 module is an easy to use Bluetooth SPP (Serial Port Protocol) module, designed for
transparent wireless serial connection setup.

Serial port Bluetooth module is fully qualified Bluetooth V2.0+EDR (Enhanced Data Rate)
3Mbps Modulation with complete 2.4GHz radio transceiver and baseband. It uses CSR Blue core
04-External single chip Bluetooth system with CMOS technology and with AFH(Adaptive
Frequency Hopping Feature). It has the footprint as small as 12.7mmx27mm. Hope it will
simplify your overall design/development cycle.

Joysticks:

Micro servo motors for actuation and movement of the robotic arm. Joystick breakout is a
programmable analog joystick module which can give 2 axes data in negative and positive end.
These axes can be linked with different functions in your robot.
Mechanical design:

As said earlier, we are using the OWI Robotic Arm which has 5 DOF. The OWI Arm can lift an
object up to 100 grams (3.5 ounces), move it horizontally, and place it in the X-Y-Z axis area of
a space, changing the orientation of the object along two axes. It uses five motors with gearboxes
and it is capable of doing a 120-degree wrist movement, elbow movement of 300 degrees,
shoulder movement of 180 degrees, base movement of 270 degrees, and grabbing movement 0 -
1 ( grip open/close with grip width of 0 - 4.5 centimeters which is equivalent to 0 – 1.77 inches).

Electrical design:

The electrical aspect of the project is comprised of a circuit that makes use of H-Bridge chips,
the Bluetooth module, and an Arduino Uno. An Arduino is an open-source online platform based
on a combination of hardware and software. Using the HBridge chips we are able to move the
arm in several directions; e.g. frontwards and backwards, and each chip can control two motors.
The L293 type of H-Bridge is a chip that is designed to provide bi-directional drive voltages up
to 1 Ampere at voltages from 4.5 volts to 36 volts. The Arduino can then digitally control the H-
Bridge chip to enable or disable a motor and change its direction. To design the circuit I used a
software called Fritzing. Initially, I did the circuit on a breadboard, but later on remade it on a
perfboard (DOT PCB) to reduce the wiring cables needed and to make it more visually
appealing. For the previous reason, the PCB circuit has a slightly different positioning than that
of the Fritzing design. However, understanding this circuit makes it easier to understand the
placement of the components on the PCB. The battery used to power the original project is not a
9-volt one as shown in the image below in addition to the 5-volt power provided from the
Arduino. Each DC motor represents a motor existing on the robotic arm.

Program:

#include<Servo.h>

Servo myservo1;
Servo myservo2;

Servo myservo3;

Servo myservo4;

Servo myservo5;

int pos1=90;

int pos2=120;

int pos3=170;

int pos4=150;

int pos5=50;

int x1=A0;

int x2=A2;

int x3=A3;

int x4=A4;

int x5=12;

int x6=13;

void setup(){

Serial.begin(9600);
myservo1.attach(3);

myservo2.attach(5);

myservo3.attach(6);

myservo4.attach(10);

myservo5.attach(11);

pinMode(x1,INPUT);

pinMode(x2,INPUT);

pinMode(x3,INPUT);

pinMode(x4,INPUT);

pinMode(x5,INPUT);

pinMode(x6,INPUT) ;

digitalWrite(x5,HIGH);

digitalWrite(x6,HIGH);

void loop()

int a= analogRead(x1);

if(a<200 ) { pos2=pos2-1; if(pos2<0) {pos2=0;}


delay(20);}

if(a>700) { pos2=pos2+1; if(pos2>180) {pos2=180;}

delay(20);}

Serial.print(a);

int b= analogRead(x2);

if(b<200 ) { pos1=pos1-1; if(pos1<0) {pos1=0;}

delay(10);}

if(b>700) { pos1=pos1+1; if(pos1>180) {pos1=180;}

delay(10);}

Serial.print(" ");

Serial.print(b);

int c= analogRead(x3);

if(c<100 ) { pos3=pos3+1; if(pos3>180) {pos3=180;}

delay(10);}

if(c>700) { pos3=pos3-1; if(pos3<0) {pos3=0;}

delay(10);}
Serial.print(" ");

Serial.print(c);

int d= analogRead(x4);

if(d<100 ) { pos4=pos4+1; if(pos4>180) {pos4=180;}

delay(10);}

if(d>700) { pos4=pos4-1; if(pos4<0) {pos4=0;}

delay(10);}

Serial.print(" ");

Serial.print(d);

int e=digitalRead(x5);

int f=digitalRead(x6);

if(e==0&&f==1 )

{ pos5=pos5+1; if(pos5>90) {pos5=90;}

delay(10);}

if(e==1&&f==0) { pos5=pos5-1; if(pos5<25) {pos5=25;}

delay(10);}

Serial.print(" ");

Serial.print(e);

Serial.println(f);
myservo5.write(pos5);

myservo4.write(pos4);

myservo1.write(pos1);

myservo2.write(pos2);

myservo3.write(pos3);

myservo4.write(pos4);

myservo5.write(pos5);