TABLE OF CONTENT Content
Page number
ACNOWLEDGEMENT DECLARATION BY THE SCHOLAR
IV
SUPERVISOR’S CERTIFICATE
V
LIST OF FIGURES
Vi
LIST OF TABLES
Vii
CHAPTER-1 INTRODUCTION
01
1.1 INTRODUCTION
01
1.2 ROBOTIC ARM
01
1.3 LITERATURE REVIEW
03
1.4 PROJECT OVERVIEW
03
CHAPTER 2 HARDWARE DESCRIPTION
04
2.1 ARDUINO
04
2.1.1 HISTRORY OF ARDUINO
04
2.1.2 FEATURES
06
2.2 SERVOMOTORS
09
2.3 TYPES OF SERVOMOTOR
10
2.3.1 DC SERVO MOTOR
11
2.3.2 AC SERVO MOTOR
12
2.3.3 POSITIONAL ROTATION SERVO MOTOR
14
2.3.4 CONTINUOUS ROTATION SERVO MOTOR
14
2.3.5 LINEAR SERVO MOTOR
14
2.4 APPLICATIONS OF SERVO MOTORS
16
i
CHAPTER 3 PROJECT CONSTRUCTION
17
3.1 HC-05
17
3.2 ELECTRONIC CIRCUIT
19
3.3 ROBOTIC ARM
20
CHAPTER 4 PROJECT CODE & APP PROGRAMMING
24
CHAPTER 5 CONCLUSION AND FUTURE SCOPES
30
5.1 CONCLUTION
30
5.2 FUTURE SCOPE
30
REFERENCES
31
ii
ACKNOWLEDGEMENT We would love to extend our sincere acknowledgement to those who have supported and encouraged us during this tough journey. Our first and foremost thanks to ‘The Almighty’ for bestowing his blessings on us in every field of life. It is our pleasure and privilege to express our deep sense of gratitude and profound personal regards to our supervisor Asst. Prof. NEHA SHARMA , Asst.Professor Electronics and Communication, without whom this project could have not been possible. We are thankful for his constant inspiration, guidance, invaluable advice, unceasing encouragement and vigilant supervision during the entire period of this project development. His guidance has been of immense satisfaction in doing a meaningful and constructive investigation. We have tried to pay due acknowledgement to all but we also apologize for any involuntary omission.
Vishal Guleria (14UEC007) Rishav Kumar (14UEC010) Vipul Kashyap (14UEC004)
iii
DECLARATION BY THE SCHOLAR We hereby declare that the project in B.Tech entitled
“6-AXIS
ROBOTIC ARM
USING SERVO MOTORS” submitted at Baddi University of Emerging Sciences and Technology, Baddi, (H.P.) India , is an authentic record of our work carried out under the supervision of our guide Asst. Prof. NEHA SHARMA.
Vishal Guleria (14UEC007) Rishav Kumar (14UEC010) Vipul Kashyap (14UEC004)
Department of Electronics and Communication Engineering Baddi University of Emerging Sciences Sciences and Technology, Technology, Baddi, (H.P.) India DATE: - 21/12/2017
iv
SUPERVISOR’S CERTIFICATE This is to certify that the project reported in B. Tech entitled “6-AXIS ROBOTIC ARM
USING SERVO MOTORS” submitted by Vishal Guleria (14UEC007), Rishav Kumar (14UEC010), Vipul Kashyap (14UEC004) at Baddi University of Emerging Sciences
and Technology, Baddi (H.P.), India is a bonafide record of their original work car ried out under my supervision. This work has not been submitted elsewhere f or any other degree or diploma.
Asst. Prof. NEHA SHARMA
Asst. Professor (ECE) BUEST
v
LIST OF FIGURES Figure no.
Caption
Page No.
1.1
Block Diagram of Robotic arm system
02
2.1
Arduino UNO Board
05
2.2
Arduino Features
06
2.3
Servo Motor
09
2.4
DC Servo Motor
10
2.5
Internal Assembly of DC Servo Motor
11
2.6
Block diagram of DC Servo Motor
12
2.7
AC Servo Motor
13
2.8
AC Servo Motor Working
13
2.9
Linear Servo Motor
14
3.1
Block diagram of project
16
3.2
HC-05
17
3.3
Circuit Diagram
18
3.4
Circuit
19
3.5
Robotic arm
20
3.6
Robotic arm Prototype
20
3.7
PWM Signal
21
3.8
Angle Movement
21
3.9
Servo Motor Rotation using PMW
22
vi
LIST OF TABLES TABLE NO .
2.1
Caption
Arduino Features
vii
PAGE NO.
06
CHAPTER 1 INTRODUCTION 1.1 INTRODUCTION Nowadays, robots are increasingly being integrated into working tasks to replace humans especially to perform the repetitive task. In general, robotics can be divided into two areas, industrial and service robotics. International Federation of Robotics (IFR) defines a service robot as a robot which operates semi- or fully autonomously to perform services useful to the wellbeing of humans and equipment, excluding manufacturing operations. These robots are currently used in many fields of applications including office, military tasks, hospital operations, dangerous environment and agriculture. Besides, it might be difficult or dangerous for humans to do some specific tasks like picking up explosive chemicals, defusing bombs or in worst case scenario to pick and place the bomb somewhere for containment and for repeated pick and place action in industries. Therefore a robot can be replaced human human to do work. The word robot was derived from Czech word robota which means “a forced laborer” then later a well known Russian science fiction writer Isaac Asimov coined the word robotics. From there on various different developments are being successfully done till date in the field of robotics in the form of teleported as the trend of the industry is moving from the current state of automation to robotization. Thus the robot technology is advancing rapidly. Now a days days the most commonly used robots in industry is a robotic manipulator or a robotic arm .Robotic arm is basically an open closed kinematics chain of rigid links interconnected by movable joints. The end of the arm is connected to the end-effectors. The end-effect or may be a tool and its fixture or a gripper or any an y other device to do the work. The end-effectors is similar to the human hand with or without fingers.
1.2 ROBOTIC ARM A robotic arm is a robot manipulator, usually programmable, with similar functions to a human arm. The links of such a manipulator are connected by joints allowing either rotational motion(such as in an articulated robot) or translational (linear) displacement. The links of the manipulator can be considered to form a kinematic chain. The business end of the kinematic chain of the manipulator is called the end effectors and it is analogous to the human hand. The end effectors can be designed to perform any desired task such as welding, gripping, spinning etc., depending on the application. The robot arms can be autonomous or controlled manuall y and can 1
be used to perform perform a variety of tasks with great accuracy. The robotic arm can be fixed or mobile (i.e. wheeled) and can be designed for industrial or home applications. [1][2] This report deals with a robotic arm whose objective is to imitate the movements of a human arm using accelerometers as sensors for the data acquisition of the natural arm movements. This method of control allows greater flexibility in controlling the robotic arm rather than using a controller where each actuator is controlled separately. The processing unit takes care of each actuator’s actuat or’s control signal according to the in puts from accelerometer, in order to replicate the movements of the human arm. Figure 1 shows the block diagram representation of the system to be designed and implemented.
1.3 LITERATURE REVIEW There are various ways in which a robotic arm ma y be controlled. In the past there have been many researchers working to control robotic arm through computer terminals, Joysticks, even interfacing them with the internet so they can be controlled from anywhere in the world. [1][2] Usually most of the robotic arms are controlled by a central controller which makes uses of value taken in from the terminal that are entered by the user at the terminal to move the arm to a particular coordinates in space. This makes the control very difficult as the control values of the motors are very difficult to predict to achieve a particular movement. This is easily achieved by our project. HC-05 Processing Unit Microcontroller (Servo Motor Controller)
1.4 PROJECT OVERVIEW In this Project, the hardware and software function are combined to make the system reliable. The ATmega328 and Arduino will be interfacing the robot with the sensor i.e. servo motors which will control the movement of the robot respectively. The chapter that follows describe the hardware (Chapter 2), which is followed by the description of the software being used (Chapter 3) Chapter 4 describes the implementation of the project and Chapter 5 concludes the discussion followed by the future scope of the project. 2
CHAPTER 2 HARDWARE DICRIPTION 2.1 ARDUINO Arduino refers to an open-source electronics platform or board and the software used to program it. Arduino is designed to make electronics more accessible to artists, designers, hobbyists and anyone interested in creating interactive objects or environments. Arduino is a prototype platform (open-source) based on an easy-to-use hardware and software. It consists of a circuit board, which can be programmed (referred to as a microcontroller) and a ready-made software called Arduino IDE (Integrated Development Environment), which is used to write and upload the computer code to the physical board. The key features are −
Arduino boards are able to read analog or digital input signals from different sensors and turn it into an output such as activating a motor, turning LED on/off, connect to the cloud and many other actions.
You can control your board functions by sending a set of instructions to the microcontroller on the board via Arduino IDE (referred to as uploading software).
Unlike most previous programmable circuit boards, Arduino does not need an extra piece of hardware (called a programmer) in order to load a new code onto onto the board. You can simply use a USB cable.
Additionally, the Arduino IDE uses a simplified version of C++, making it easier to learn to program.
Finally, Arduino provides a standard form factor that breaks the functions of the micro-controller into a more accessible package.
2.1.1 HISTORY HISTORY OF ARDUINO:
In 2005, in Ivrea, Italy, a project was initiated to make a device for controlling student built interactive design projects that was less expensive than other prototyping systems available at the time. One of the cofounders, Massimo Banzi, named this piece of hardware Arduino in honor of Bar di Re Arduino (In 1002, King Arduin became the ruler of the Italy. Today, the Bar di Re Arduino, a pub on a cobblestoned street in town, honors his memory), and began producing boards in a small factory located in the same region as the computer company Olivetti [3]. 3
The Arduino project is a fork of the open source Wiring platform and is programmed using a Wiring-based language (syntax and libraries), similar to C++ with some slight simplifications and modifications, and a Processing-based integrated development environment (IDE). Arduino was built around the Wiring project of Hernando Barragan. Wiring was Hernando's thesis project at the Interaction Design Institute Ivrea. It was intended to be an electronic version of Processing that used our programming environment and was patterned after the Processing syntax. Arduino would not exist without Wiring and Wiring would not exist without Processing. Currently, there are more than 200 distributors of Arduino products around the world. About 80 percent of people who buy this product are from the United States and Europe. The interest in this product is rising in the China, India, and South America markets. Over the years, new designs of the Arduino have been created. The original design is called the Arduino Uno. Some of the Arduino designs are the Arduino Mega, Arduino Nano, LilyPad Arduino, and Arduino Ethernet. This past year, the Arduino gained publicity by partnering with Google. Google released the Android ADK, or Accessory Development Kit, which is based on the Anduino. A person can build an Android app that uses the Phone’s camera, motion sensors, touch screen, and internet connectivity. It looks as though the Arduino is creating a new, cheaper way of programming. It does not seem to be going away any time soon; it is only getting more popular. The Arduino Uno is a microcontroller board based on the ATmega328. It has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz ceramic resonator, a USB connection, a power jack, an ICSP header, and a reset button.
Figure 2.1: Arduino Uno board [4].
4
2.1.2 FEATURES
Table 2.1: Arduino Features [4].
Microcontroller
ATmega 328
Operating Voltage
5V
Input voltage (recommended)
7-12V
Input voltage(limits)
6-20V
Digital I/O pins
14(of which 6 provide PMW output)
Analog Inputs pins
6
DC Current per I/O pin
40Ma
Flash memory
32 KB
SRAM
2 KB
EEPROM
1 KB
Clock Speed
16 MHz
The Arduino UNO board because it is the most popular board in the Arduino board family. In addition, it is the best board to get started with electronics and coding. Some boards look a bit different from the one given below, but most Arduinos have majority of these components in common.
Fig 2.2: Arduino Features [4]. 5
Digital Pins
In addition to the specific functions listed below, the digital pins on an Arduino board can be used
for
general
purpose
input
and
output
via
the pinMode(), digitalRead(), pinMode(), digitalRead(),
and digitalWrite() digitalWrite() commands. Each pin has an internal pull-up resistor which can be turned t urned on and off using digitalWrite() (w/ a value of HIGH or LOW, respectively) when the pin is configured as an input. The maximum current per pin is 40 mA.
Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL serial data.
On the Arduino Diecimila, these pins are connected to the corresponding pins of the FTDI USB-to-TTL Serial chip. On the Arduino BT, they are connected to the corresponding pins
of
the WT11 Bluetooth
module. On
the
Arduino
Mini
and LilyPad Arduino, they are intended for use with an external TTL serial module (e.g. the Mini-USB Adapter).
External Interrupts: 2 and 3. These pins can be configured to trigger an interrupt on a
low value, a rising or falling edge, or a change in value. See the attach Interrupt () function for details.
PWM: 3,5,6,9,10, and 11. Provide 8-bit PWM output with the analog the analog Write () function.
On boards with an ATmega8, PWM output is available only on pins 9, 10, and 11.
BT Reset: 7. (Arduino BT-only) Connected to the reset line of the Bluetooth module.
SPI: 10(SS),11(MOSI),12(MISO),13 (SCK). These pins support SPI communication,
which, although provided by the underlying hardware, is not currently included in the Arduino language.
LED: 13. On the Diecimila and LilyPad, Lil yPad, there is a built-in LED connected connected to digital pin
13. When the pin is HIGH value, the LED is on, when the pin is LOW, it's off. Analog Pins
In addition to the specific functions listed below, the analog input pins support 10-bit analogto-digital conversion (ADC) using the analog the analog Read () function. Most of the analog inputs can also be used as digital pins: analog input 0 as digital pin 14 through analog input 5 as digital pin 19. Analog inputs 6 and 7 (present on the Mini and BT) cannot be used as digital pins.
I2C: 4 (SDA) and 5 (SCL). Support I2C (TWI) communication using the Wire the Wire library (documentation on the Wiring website).
6
Power Pins
VIN (sometimes labelled la belled "9V"). The input voltage to the Arduino board when it's using
an external power source (as opposed to 5 volts from the USB connection or other regulated power source). You can supply voltage through this pin, or, if supplying voltage via the power jack, access it through this pin. Note that different boards accept different input voltages ranges, please see the documentation the documentation for your board. Also board. Also note that the LilyPad has no VIN pin and accepts only a regulated input.
5V. The regulated power supply used to power the microcontroller and other
components on the board. This can come either from VIN via an on-board regulator, or be supplied by USB or another regulated 5V supply.
3V3. (Diecimila-only) A 3.3-volt supply generated by the on-board FTDI chip.
GND. Ground pins.
Power USB- Arduino board can be powered by using the USB cable from your computer. All
you need to do is connect the USB cable to the USB connection (1). Power (Barrel Jack) Arduino boards can be powered directly from the AC mains power supply
by connecting it to the Barrel Jack (2). Voltage Regulator-The function of the voltage regulator is to control the voltage given to the
Arduino board and stabilize the DC voltages used by the processor and other elements. Crystal Oscillator- The crystal oscillator helps Arduino in dealing with time issues. How does
Arduino calculate time? The answer is, by using the crystal oscillator. The number printed on top of the Arduino crystal is 16.000H9H. It tells us that the frequency is 16,000,000 Hertz or 16 MHz Arduino Reset- You can reset your Arduino board, i.e., start your program from the beginning.
You can reset the UNO board in two ways. First, by using the reset button (17) on the board. Second, you can connect an external reset button to the Arduino pin labelled RESET (5).
7
ICSP pin- Mostly, ICSP (12) is an AVR, a tiny ti ny programming header for the Arduino consisting
of MOSI, MISO, SCK, RESET, VCC, and GND. It is often referred to as an SPI (Serial Peripheral Interface), which could be considered as an "expansion" of the output. Actually, you are slaving the output device to the master of t he SPI bus. Power LED indicator- This LED should light up when you plug your Arduino into a power
source to indicate that your board is powered up correctly. If this light does not turn on, then there is something wrong with the connection. TX and RX LEDs - On your board, you will find two labels: TX (transmit) and RX (receive).
They appear in two places on the Arduino UNO board. First, at the digital pins 0 and 1, to indicate the pins responsible for serial communication. Second, the TX and RX led (13). The TX led flashes with different speed while sending the serial data . The speed of flashing depends on the baud rate used by the board. RX flashes during the receiving process. AREF- AREF stands for Analog Reference. It is sometimes, used to set an external reference
voltage (between 0 and 5 Volts) as the upper limit for the analog input pins.
2.2 SERVOMOTOR A servomotor is a rotary a rotary actuator or linear linear actuator that allows for precise control of angular or linear position, velocity and acceleration. It consists of a suitable motor coupled to a sensor for position feedback. feedback. It also requires a relatively sophisticated controller, often a dedicated module module designed specifically for use with servomotors. Servomotors are not a specific class of motor although the term servomotor is is often used to refer to a motor suitable for use in a closed-loop control system. A servo motor is one of the widely used variable speed drives in industrial production and process automation and building technology worldwide. Although Although servo motors are not a specific class of motor, they are intended and designed to use in motion control applications which require high accuracy positioning, quick reversing and exceptional performance.
8
Fig 2.3: Servo Motor
A servo motor is a linear or rotary actuator that provides fast precision position control for closed-loop position control applications. Unlike large industrial motors, a servo motor is not used for continuous energy conversion. Servo motors have a high-speed response due to low inertia and are designed with small diameter and long rotor length. Then how do servo motors work? Servo motors work on servo mechanism that uses position feedback to control the speed and final position of the motor. Internally, a servo motor combines a motor, feedback circuit, controller and other electronic circuit. It uses encoder or speed sensor to provide speed feedback and position. This feedback signal is compared with desired position of the motor corresponding to a load, and produces the error signal (if there exist a difference differe nce between them). The error signal available at the output of error detector is not enough to drive the motor. So, the error detector followed by a servo amplifier raises the voltage and power level of the error signal and then turns the shaft of the motor to desi red position.
2.3 TYPES OF SERVO MOTORS Servo motors are classified into different types based on their application, such as AC servo motor, DC servo motor, brushless DC servo motor, positional rotation, continuous rotation and linear servo motor etc. Typical servo motors comprise of three wires namel y, power control and ground. The shape and size of these motors depend d epend on their applications. RC servo motor is the most common type of servo motor used in hobby applications, robotics due to their simplicity, affordability and reliability of control by microprocessors. These are best suited for smaller applications. With the advancement of microprocessor and power transistor, AC servo motors are used more often due to their high accurac y control.
9
2.3.1 DC SERVO SERVO MOTOR
A DC servo motor consists of a small s mall DC motor, feedback potentiometer, gearbox, motor drive electronic circuit and electronic feedback control loop. It is more or less similar to the normal DC motor. The stator of the motor consists of a cylindrical frame and the magnet is attached to the inside of the frame.
Fig 2.4: DC Servo Motor
The rotor consists of brush and shaft. A commutator and a rotor metal supporting frame are attached to the outside of the shaft and the armature winding is coiled in the rotor metal supporting frame. A brush is built with an armature coil that supplies the current to the commutator. At the back of the shaft, a detector is built into the rotor in order to detect the rotation speed. With this construction, it is simple to design a controller using simple circuitry because the torque is proportional to the amount amount of current flow through the armature. And also, the instantaneous polarity of the control voltage decides the direction of torque developed by the motor. Types of DC servo motors include series motors, shunt control motor, split series motor, and permanent magnet shunt motor. Working Principle of DC Servo Motor
A DC servo motor is an assembly of four major components, namely a DC motor, a positi on sensing device, a gear assembly, and a control cir cuit. The below figure shows the parts that consisting in RC servo motors in which small DC motor is employed for driving the loads at precise speed and position.
10
of DC Servo Motor Fig 2.5: Internal assembly of DC
A DC reference voltage is set to the value corresponding to the desired output. This voltage can be applied by using another potentiometer, control control pulse width to voltage voltage converter, or through through timers depending on the control circuitry. The dial on the potentiometer produces a corresponding voltage which is then applied as one of the inputs to error amplifier. In some circuits, a control pulse is used to produce DC reference voltage corresponding to desired position or speed of the motor and it i t is applied to a pulse width to voltage converter. In this converter, the capacitor starts charging at a constant rate when the pulse high. Then the charge on the capacitor is fed to the buffer amplifier when the pulse is low and this charge is further applied to the error amplifier. So, the length of the pulse decides the voltage applied at the error amplifier as a desired voltage to produce the desired speed or position. In digital control, microprocessor or microcontroller are used for generating the PWM pluses in terms of duty cycles to produce more accurate control signals.
11
AMPLIFIER COMPARATOR
MOTOR
LOAD
F I E R
PULSE WIDTH TO VOLTAGE CONTROL
CONTROL SIGNAL
POSITION
GEAR
SENSOR
BOX
Fig 2.6: Block diagram of DC Servo Motor
The feedback signal corresponding to the present position of the load is obtained by using a position sensor. This sensor is normally a potentiometer that produces the voltage corresponding to the absolute angle of the motor shaft through gear mechanism. Then the feedback voltage value is applied at the input of error amplifier (comparator). The error amplifier is a negative feedback amplifier and it reduces the difference between its inputs. It compares the voltage related to current position of the motor (obtained by potentiometer) with desired voltage related to desired position of the motor (obtained by pulse width to voltage converter), and produces the error either a positive or negative voltage. This error voltage is applied to the armature armatu re of the motor. If the error is more, the more output is applied to the motor armature. As long as error exists, the amplifier amplifies the error voltage and correspondingly powers the armature. The motor rotates t ill the error becomes zzero. ero. If the error is negative, the armature voltage reverses and hence the armature rotates in the opposite direction. 2.3.2 AC SERVO SERVO MOTOR
AC servo motors are basically two-phase squirrel cage induction motors and are used for low power applications. Nowadays, three phase phase squirrel cage induction motors have been modified such that they can be used in high power servo systems. The main difference between a st andard split-phase induction motor and AC motor is that the squirrel cage rotor of a servo motor has made with thinner conducting bars, so that the motor resistance is higher.
12
Fig 2.7: AC Servo Motor
Working Principle of AC Servo Motor
The schematic diagram of servo system for AC two-phase induction motor is shown in the figure below. In this, the reference input at which the motor shaft has to maintain at a certain position is given to the rotor of synchro generator as mechanical input theta. This rotor is connected to the electrical input at rated voltage at a fixed frequency.
Fig 2.8: AC Servo Motor Working
The three stator terminals of a synchro generator are connected correspondingly to the terminals of control transformer. The angular position of the two-phase motor is transmitted to the rotor of control transformer through gear train arrangement and it represents the control condition alpha. Initially, there exist a difference between the syn generator shaft position and control transformer shaft position. This error is reflected as the voltage across the control
13
transformer. This error voltage is applied to the servo amplifier and then to the control phase of the motor. With the control voltage, the rotor of the motor rotates i n required direction till the error er ror becomes zero. This is how the desired shaft position is ensured in AC servo motors. Alternatively, modern AC servo drives are embedded controllers like PLCs, microprocessors and microcontrollers to achieve variable frequency and variable voltage in order to drive the motor. Mostly, pulse width modulation and Proportional-Integral-Derivative (PID) techniques are used to control the desired frequency and voltage. The block diagram of AC servo motor system using programmable logic controllers, position and servo controllers is given below. 2.3.3 POSITIONAL POSITIONAL ROTATION SERVO SERVO MOTOR
Positional rotation servo motor is a most common type of servo motor. The shaft’s o/p rotates in about 180o. It includes physical stops located in the gear mechanism to stop turning outside these limits to guard the rotation sensor. These common servos involve in radio controlled water, radio controlled cars, aircraft, robots, toys and many other applications. 2.3.4 CONTINUOUS CONTINUOUS ROTATION SERVO SERVO MOTOR
Continuous rotation servo motor is quite related to the common positional rotation ser vo motor, but it can go in any direction indefinitely. The control signal, rather than set the static position of the servo, is understood as the speed and direction of rotation. The range of potential commands sources the servo to rotate clockwise or anticlockwise as preferred, at changing speed, depending on the command signal. This type of motor is used in a radar dish if you are riding one on a robot or you can use one as a drive motor on a mobile robot. 2.3.5 LINEAR SERVO SERVO MOTOR
Linear servo motor is also similar simil ar the positional rotation servo motor is discussed above, but with some extra gears to alter the o/p from fr om circular to back-and-forth. These servo motors are not simple to find, but sometimes you can find them at hobby stores where they are used as actuators in higher model airplanes.
Fig 2.9: Linear Servo Motor
14
2.4 APPLICATION OF SERVO MOTOR The servo motor is small and efficient, but serious to use in some applications like precise position control. This motor is controlled by a pulse width modulator signal. The applications of servo motors mainly involve in computers, robotics, toys, CD/DVD players, etc. These motors are extensively used in those applications where a particular task is to be done frequently in an exact manner. Servo Motor in Packaging Machine
The servo motor is used is used in robotics to activate movements, giving the arm to its precise angle.
The Servo motor is used to start, move and stop conveyor belts carr ying the product along with many stages. For instance, product labeling, bottling and packaging.
The servo motor is built into the camera to correct a lens of the camera c amera to improve out of focus images.
The servo motor is used in robotic vehicle to control the robot wheels, producing plenty torque to move, start and stop the vehicle and control its speed.
The Servo motor is used in Textiles to control spinning and weaving machines, knitting machines and looms
The Servo motor is used in automatic door openers to control the door in public places like supermarkets, hospitals and theatres
These are widely used in robotics, radar systems, s ystems, automated manufacturing systems, machine tools, computers, CNC machines, tracking systems, etc.
15
CHAPTER3 PROJECT CONSTRUCTION 1. Programmability, implying computational or symbolic manipulative capabilities that a designer can combine as desired (a robot is a computer) 2. Mechanical capability, enabling it to act on its environment rather than merely function as a data processing or a computational device (a robot is a machine). 3. Flexibility in that it can operate using a range of programs and manipulates and transport materials in a variety of ways. We have 3 major parts for this project. 1.
HC-05.
2.
Electronics circuit.
3.
Robotic arm.
Fig 3.1: Block diagram of project
3.1 HC-05 Bluetooth to serial port module Communication device:-over project is based on wireless communication between micro controller and mobile phone. But alone micro controller is not able to communicate directly to the android mobile phone. Bluetooth Serial module’s operation doesn’t need drive, and can communicate with the other Bluetooth device that device that has the serial. But communication between two Bluetooth modules requires at Least two conditions: (1) The communication must be between master and slave. (2) The password must be correct. 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). Feature). It has the Foot print as small as 12.7mmx27mm. 16
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 Bluetooth Wireless networks for short range communications have a wide spread usage of Bluetooth radio transmissions between 2400 – 2480 2480 MHz Modern mobile devices embed small, low-powered and cheap integrated chips functioning as short-range radio transcei vers for Bluetooth radio communications. Device pairing, authentication, encryption and authorization techniques have given recognition to Bluetooth technology due to its vital security mechanisms. Different types of Bluetooth applications can be developed using Android platform architecture using the Bluetooth profiles. The device manufacturers provide the services using the support of these profiles in their devices to maintain compatibility for the Bluetooth technology. The Bluetooth module HC-05 is used to receive & transmit data between Bluetooth device and MCU. It requires power supply from 3.3V to 5V.
Pairing: After connect the Bluetooth module, scan for new devices from the Android phone and you will find the module with the device name “HC“HC -05”, after that, click to connect, if some message appears asking about “Pairing code” just put “1234” as default code. BLUE LED = ACTIVE (Blinking 500ms period inactive connection, change 1seg with active connection)
Figure 3.2: Pin-out of HC-05
17
3.2 ELECTRONIC CIRCUIT In this project we use an Arduino board, PCB board, 4Servo motor, and potentiometer, power supply.
Fig 3.3: Circuit Diagram
Circuit connections are done exactly exactl y done in above diagram. Potentiometers are shown as Potx and servo motors shown as Servo x. A simple dc motor is also connected. All the Potx are connected to the analog port on Arduino. On this port we have ADC (Analog to Digital Convertor) circuit. All values received from s ensors is fed into the ADC and it help to controller to determine the rise and fall in values of sensors. ADC automatically converts the max voltage (5v dc) to 1023 and min voltage (0v dc) to 0. So, each sensor has range from 0 to 1023 which is read by controller. There i s flexibility available to make changes in this range according to the user requirements. These values also can be seen s een on serial monitor of Arduino ide when hardware is connected with pc throw usb cable. On output side of circuit, it connected with servo motors. Servo motors are connected to the 5v dc and 0v ground. Signal pin or control pin of each servo is connected with PWM pins of Arduino board. Servo motor is controlled by applying the PWM signal of different
18
length. Basically, 15ms to 20ms is used to control the angles from 0 to 180 0. There are only 6 PWM pins are available on Arduino board. [5] For controlling the dc motor, it is connected with power supply and a switch is used to control its action.
Fig 3.4: Circuit
3.3 ROBOTIC ARM A robotic arm is a robotic manipulator, usually programmable, with similar functions to a human arm. Servo motor is used for joint rotation. It has about same number of degree of freedom as in human arm. Humans pick things up without thinking about the steps involved. In order for a robot or a robotic arm to pick up or move something, someone has to tell it to perform several actions in a particular order — order — from from moving the arm, to rotating the “wrist” to opening and closing the “hand” or “fingers.”. So, we can control each joint through computer interface. Some advanced robot arms make use of sensors like motion and pressure sensors in order for it to detect foreign obstacles and avoid breaking or dropping what it is carrying. Robot arm also vary with the type of end effecter that they are using. The kind of end effecter that a particular robot arm is using is very much dependent on the kind of task the robot is designed for: 19
1. Blowtorches for auto assembly lines robots. 2. Drills for metal application robots. 3. Spray paints for decoration oriented robots. 4. For welding purpose. 5. For pick and place applications.
Fig 3.5: Robotic arm
Fig 3.6: Robotic arm Prototype 20
Pulse Width Modulation or PWM is a common technique used to var y the width of the pulses in a pulse-train. PWM has many applications such as controlling servos and speed controllers, limiting the effective power of motors and LEDs. Basic Principle of PWM
Pulse width modulation is basically, a square wave with a varying high and low time. A basic PWM signal is shown in the following figure.
Fig 3.7: PWM Signal
Fig 3.8: Angle Movement
There are various terms associated with PWM −
On-Time − Duration of time signal is high.
Off-Time − Duration of time signal is low.
Period − It is represented as the sum of on-time on -time and off-time of PWM signal.
Duty Cycle − It is represented as the percentage of time signal that remains on during
the period of the PWM signal.
21
Period
As shown in the figure, T on denotes the on-time and T off denotes denotes the off-time of signal. Period is the sum of both on and of f of f times and is calculated as shown in the following equation − Ttotal=Ton+ToffTtotal=Ton+Toff
Fig 3.9: Servo Motor Rotation using PMW
Duty Cycle
Duty cycle is calculated as a s the on-time of the period of time. ti me. Using the period calculated above, duty cycle is calculated as − D=TonTon+Toff=TonTtotal
22
CHAPTER 4 ARDUINO PROGRAMMING #include Servo sm1, sm2, sm3, sm4; int i=90,j=90,x=105,y,p=105,q,t=90,v; i=90,j=90,x=105,y,p=105,q,t=90,v; void basemot1(); void basemot2(); void shoulder1(); void shoulder2(); void elbowa1(); void elbowa2(); void elbowb1(); void elbowb2(); void setup() { sm1.attach(11); sm2.attach(10); sm3.attach(9); sm4.attach(6); Serial.begin(9600); } void loop() { char z; if (Serial.available() > 0) { z=Serial.read(); if(z=='A') {sm1.attach(11); basemot1(); } if(z=='G') 23
{ sm1.attach(11); basemot2(); } if(z=='B') { shoulder1(); } if(z=='H') { shoulder2(); } if(z=='C') { elbowa1(); } if(z=='I') { elbowa2(); } if(z=='D') { elbowb1(); } if(z=='J') { elbowb2(); } } } void basemot1() {
24
sm1.write(105); /* Serial.println(i); i=i+5; j=i; if(i >120) { i=90; }*/ delay(2000); sm1.detach(); } void basemot2() { sm1.write(90); /*Serial.println(j); j=j-5; i=j; if(j < 75) { j=90; }*/ delay(2000); sm1.detach(); }
void shoulder1() { sm2.write(x); Serial.println(x); x=x+15; y=x; if(x >180) 25
{ x=180; } } void shoulder2() { sm2.write(y); Serial.println(y); y=y-15; x=y; if(y < 0) { y=0; } } void elbowa1() { sm3.write(p); Serial.println(p); p=p+15; q=p; if(p >180) { p=165; } } void elbowa2() { sm3.write(q); Serial.println(q); q=q-15; p=q;
26
if(q < 0) { q=0; } } void elbowb1() { sm4.write(t); Serial.println(t); t=t+15; v=t; if(t >180) { t=165; } } void elbowb2() { sm4.write(v); Serial.println(v); v=v-15; t=v; if(v < 0) { v=0; } }
27
APP PROGRAMMING
28
29
CHAPTER 5 CONCLUSION AND FUTURE SCOPE 5.1 CONCLUSION The objectives of this project has been achieved which was developing the hardware and Software for a Potentiometer controlled robotic arm. From observation that has been made, it clearly shows that its movement is precise, precise , accurate, and is easy eas y to control and user friendly to use. The robotic arm has been developed successfull y as the movement of the robot can be controlled precisely. This robotic arm control method is expected to overcome the problem such as placing or picking object that away awa y from the user, pick and place hazardous object in a very ver y fast and easy manner.
5.2 FUTURE SCOPE The project is built on a wired model. It could further be developed to work on wireless communication, thus allowing the user to move in an even easier unrestricted manner. A clamper can be connected on the motor M6 which will allow the movements of the palm and allow picking and placing of objects. The microprocessor could take the input from the potentiometer and smoothen it and then generate generate the corresponding PWM signal signal itself to actuate the servo motors.
30
REFERENCES [1] Mohd Ashiq Kamaril Yusoffa, Reza Ezuan Saminb, Babul Salam Kader Ibrahimc, “Wireless Mobile Robotic Arm”, International Symposium on Robotics and Intelligent Sensors 2012(IRIS 2012), July 2012 [2] Wan Muhamad Hanif Wan Kadir, Reza Ezuan Samin, Babul Salam Kader Ibrahim, “Internet Controller Robotic Arm”. International Symposium on Robotics and Intelligent Sensors 2012(IRIS 2012), July 2012. [3] Arduino History Histor y and introduction-https://www.arduino.cc/en/Guide/Introduction [4]Arduinohttp://fab.cba.mit.edu/classes/863.11/people/theodora.vardouli/06_embeddedProgr am ming/06.html [5]Avinash, “Using ADC on ARDUINO”, http://extremeelectronics.co.in/avr -tutorials/using-tutorials/usingtheanalog-to-digital-converter/, September 2008
31