SlideShare a Scribd company logo
1 of 4
Download to read offline
IOSR Journal of Computer Engineering (IOSR-JCE)
e-ISSN: 2278-0661,p-ISSN: 2278-8727, Volume 17, Issue 5, Ver. III (Sep. – Oct. 2015), PP 41-44
www.iosrjournals.org
DOI: 10.9790/0661-17534144 www.iosrjournals.org 41 | Page
Gesture mimicking two Wheeler differential drive Arduino based
robot and iRobot Create
Subhankar Chattoraj, Arnab Pal
ESL, Dumdum Lab, Salt Lake City, Kolkata
Abstract: The project discussed here is a gesture controlled robot having two wheels on either side just like a
car. The key features described in the project are i) controlling the movement of the wheels using an embedded
system ii) using the concept of image processing hand gestures are analyzed and according to the gestures the
robot moves. The embedded system used here is an Arduino Uno board. It is a microcontroller (Atmega328)
based board having 14 digital pins (out of which some are PWM pins) and 6 analog pins. The Arduino have
been programmed using JAVA. Two driving motors have been connected with each of the wheels and hence a
motor driving circuit (IC no.-L293D) has been used. The gesture detection part has been done using PYTHON
programming. The concept of image processing has been used for the detection. The PYTHON program and the
Arduino program have been merged using serial import interface. The project is such that, first it will detect an
object blue, green or red in colour and will bound it by a rectangle. By moving the detected object up, down,
right or left, the robot will move forward, backward, right or left accordingly.
Keywords: Arduino, L293D, JAVA programming, Image Processing, PYTHON programming, Open CV module.
I. Introduction:
We have often seen children playing with remote controlled cars or computer games, in which buttons
are pressed to control the movement of objects. So here we have tried to depict the movement of objects or in
this case the wheels of the robot, using hand gestures. To construct the preliminary structure of the robot, we
needed two motors to drive the wheels. We have used two 12v 100 rpm motors, one for each wheel. We have
made the frame using a metal chassis and fitted a free wheel in the front to give it the required support and
balance. We have welded two rectangular metal pieces with a hole in the middle, at the back of the chassis.
After that each wheel and the respective motors are joined together via that hole. The weight of the metal
chassis was too heavy for the wheels and the motors to bear so the whole welding process of the two rectangular
metal pieces was executed. The Arduino Uno board and the motor driver circuit (IC no.- L293D) board were
fitted on the top of the metal chassis. After the construction of the robot two programs were written. The
program to control the motion of the wheels was written in Arduino software which is freely available and that
particular program was in JAVA language which was then uploaded to the Arduino Uno board. The second
program to implement gesture tracking was written in PYTHON language and the two programs were merged
together using the concept of serial import interface. During demonstration only the PYTHON program was
executed which detects the respective colors- Blue, Green or Red according to the program. The wheels move
according to the movement of the detected object.
II. Methodology:
This project mainly comprises of two parts: The Embedded Systems part and the Image Processing
part. The first part is used for the purpose of motion control of the robot and the second part is for the detection
of colored objects and accordingly gesture control.
Embedded Systems part: This part comprises of the Arduino Uno board, the driver circuit board and the two
motors.
1. Description of connection:
Internal connections among the two boards and the motors are done via jumpers. Now the Arduino
board consists of 14 digital pins and 6 analog pins, and on the other hand the driver circuit board consists of 16
pins. First of all connections are made between the digital pins of the Arduino board and the driver circuit board.
The first connection is established between first input pin or i1 pin of the driver circuit and the digital pin no.6
of the Arduino board. Similarly the second connection is made between input pin no.2 or i2 of the driver circuit
and the 7th
digital pin of the Arduino board. Lastly the 3rd
and the 4th
input pins or the i3 and i4 pins of the driver
circuit are connected to the 8th
and 9th
digital pins of the Arduino board respectively. After that any PWM pin of
the Arduino board is connected with the enable pin of the driver circuit board. The remaining connection that
was to be established now was among the driver circuit board and the two motors. Each motor consists of 2
wires and each of these wires was connected to the respective output pins of the driver circuit board. That is two
Gesture mimicking two Wheeler differential drive Arduino based robot and iRobot Create
DOI: 10.9790/0661-17534144 www.iosrjournals.org 42 | Page
wires from the first motor are connected to the 1st
and the 2nd
output pins or o1 and o2 pins of the driver circuit
board respectively. Wires from the second motor are connected to the 3rd
and 4th
or the o3 and o4 output pins of
the driver circuit. With this the entire connection of the Embedded Systems part of the robot is completed.
Connection of the power supply and Ground is done in the end. The allover connection part is checked
once again to detect whether any faults are present and are rectified. Now we proceed towards the programming
part.
Figure-1. Connection between the Arduino board, the driver circuit and the motors
Figure-2. The wheeled robot that we had built.
2. Algorithm of the Arduino program:
The program that is executed in the Arduino software is directly uploaded to the Arduino Uno board. In
the beginning of the program all the input pins are taken into account or is basically listed. Within the setup part
of the programming format the pinModes of i1, i2, i3 and i4 are set as OUTPUT. After setting of the pinModes,
the Serial.begin(9600) step signifies the setting up of a serial channel between the Arduino board and the
computer. Under the void pause() format input pins i1, i2, i3, and i4 are set to LOW using digitalWrite
command. This particular part stops the wheels of the robot from moving. The next step is the if statement step.
Statement is written as if(Serial.available>0) which implies that this statement is valid if an input is available in
the serial window. Now if this statement is valid then a character will be read say c. In order to read the input in
the serial window the statement Char c=Serial.read() is written within the loop part of the program. Invalidity of
the if statement leads to the immediate termination of program. Now we move on the control of the direction of
the movement of the wheels. If character c== β€˜f’ that means both the wheels of the robot will move forward. So
within this if statement we set the pins i1 and i3 to HIGH and pins i2 and i4 to LOW respectively. The
Delay(100) step implies the time taken to receive the next signal. Again the pause() function will work after that
Gesture mimicking two Wheeler differential drive Arduino based robot and iRobot Create
DOI: 10.9790/0661-17534144 www.iosrjournals.org 43 | Page
in order to determine the required interval before the execution of the upcoming command. In the upcoming part
of the program if the character c==’d’ , the signal to be given to the pins are adjusted in such a way so that both
the wheels of the robot will move backwards. Input pins i1 and i4 are set to HIGH and the pins i2 and i3 are set
to LOW to control the previously mentioned backward movement. After this in the same way as done during the
forward movement, the Delay(100) and the pause() statement will depict the interval before the onset of the next
signal given to the robot. Similarly required adjustments are done to control the movement of the robot towards
left and right. When we are supposed to move the robot towards right , in the if statement part we take the
character c as β€˜r’ and if this statement is valid then the pins i1 and i4 are set to HIGH and pins i2 and i3 are set to
LOW. This part will allow the right wheel to move forward and the left wheel to move backward. After this
again the Delay(100) and pause() statements are repeated. To control the movement of the robot toward left we
assume the character c as β€˜l’ and the pins i2 and i3 are set to HIGH and the pins i1 and i4 are set to LOW. This
allows the left wheel to move forward and the right wheel to move in the opposite direction. The program
finally completed after the Delay(100) and the pause() statements and we close the braces to signify the
conclusion of the program. The program is now fully set or ready to be uploaded to the Arduino Uno board after
compilation.
Figure-3. Flowchart of the Arduino program
Image Processing part: This is the part of the project in which gesture controlling have been done. PYTHON
language has been used to code this part. A module known as OpenCV has been used. This OpenCV or Open
Source Computer Vision is a collection of different programming functions assigned to do certain things.
OpenCV has many applications such as face recognition, gesture tracking, motion tracking, 2D- 3D features,
etc. Since here we have used the concept of gesture tracking, we have imported the OpenCV module/library.
OpenCV is also considered as image processing software, hence OpenCV is the base of the project.
Algorithm of the code: i) First the openCV module is imported so as to import the functions for image
processing and gesture controlling. ii) sleep module is imported so that the sleep() function can be used in the
program. This sleep function is used so that the webcam is accessed a few seconds after the execution of the
program. This prevents the program from hanging or crashing. iii) The serial module is then imported. Without
this module the arduino board and this image processing part cannot be interfaced. After this the serial function
is used to access the port to which the arduino board is connected. serial.Serial(β€˜COM4’) is the actual PYTHON
command which accesses port number 4, to which the arduino board is connected. iv) The webcam is accessed
and hence the video is obtained. v) The video will be accessed 2 seconds after the execution of the program.
This is done using the sleep function. vi) A trackbar is created in the range 20 to 255. This trackbar will
adjust the threshold of the video so as to reduce noise and detect the largest red object else the result will not be
accurate. vii) While a video is accessed. It is flipped and stored in a variable. This is done because the video
obtained by the webcam is a mirror image one hence it was flipped to obtain the actual video. viii) The red
channel is extracted from the video. The flipped video is converted to grayscale. After this the red channel is
subtracted from the grayscaled image so that the red channel appears as white and the other two channels (blue
and green) , appears as black ix) The video is then binarized using the threshold set by the trackbar. x) Erosion
is done so that the red objects if placed in front of the webcam will be detected as white blobs. xi) Information is
gathered about the white blobs nd the largest white blob is taken into account by adjusting the threshold value
using the trackbar and it is bounded by a red rectangle. xii) The entire video area is divided into x-y axes. This is
done to track the movement of the detected red object. xiii) If the red object is moved, then the different
between the four coordinates of the last position of the bounded rectangle and the moved position of the
bounded rectangle is obtained. xiv) It is then checked that which difference is more, the difference in the x-axis
coordinates of the bounded rectangle or that of the y-axis coordinates. If the difference is more in the x-axes
Gesture mimicking two Wheeler differential drive Arduino based robot and iRobot Create
DOI: 10.9790/0661-17534144 www.iosrjournals.org 44 | Page
coordinates then the movement is along x-axis (right or left) else it is along y-axis (up or down). xv) If the
movement is along x-axis, it is then checked if it is > 20. If it is found to be >20 then the movement is towards
the right side and the robot is made to turn right by using the command ser.write(β€˜r’). Else the movement is
towards the left side and the robot is made to turn left by using the command ser.left(β€˜l’). xvi) Now I the
difference in the y-axis coordinates is more, then it is checked if it is >20 or <-20. If it is >20 then the movement
is considered to be in the up direction and the robot is made to move forward by using the command
ser.write(β€˜f’). Else the movement is considered to be in the downward direction and the robot is moved
backward by using the command ser.write(β€˜d’). xvii) The program continues that is the video is accessed and the
red objects are detected until the escape key it hit. Hence the program stops when the escape key is pressed.
Hence this completes our project
Figure-4. The flowchart of the PYTHON program
iRobot Create Part:The same logic of the gesture controlled robot is applied to the control of the iRobot
Create. iRobot Create is a multipurpose educational robot and many application Bluetooth Adapter Module to
make the iRobot Create wireless. Rest of the logic for moving the robot according to the gesture is similar to the
algorithm for moving the Arduino based differential drive robot.
III. Results and discussion
After the PYTHON program is executed, the webcam will be accessed and the red colored objects will
be shown as white blobs and will be bounded by a rectangle. The robot will move according to the movement
of the red object.
Figure-5. The screenshot of the program execution. As we can see the red object is detected as a white blob and
simultaneously is bounded by a rectangle and the movement is printed in the PYTHON shell.
IV. Conclusion
The project gave us a lot of firsthand experience of using the combined concept of both image
processing and embedded systems. This is just the basic part, this project can be further improved by making
use of a Bluetooth module and hence making the entire project wireless. Considering the image processing part,
here we have detected a red object, similarly blue and green objects can also be detected by slight modification.
The more advanced concept can be used in the gesture controlling part such as instead of detecting any colored
object the program will detect the movement of the human eyeball.

More Related Content

What's hot

Floor cleaning robot report vatsal shah_ec_7th sem
Floor cleaning robot report vatsal shah_ec_7th semFloor cleaning robot report vatsal shah_ec_7th sem
Floor cleaning robot report vatsal shah_ec_7th semVatsal N Shah
Β 
Floor cleaning robot(autonomus mannual) vatsal shah-ec_4th year
Floor cleaning robot(autonomus mannual)  vatsal shah-ec_4th yearFloor cleaning robot(autonomus mannual)  vatsal shah-ec_4th year
Floor cleaning robot(autonomus mannual) vatsal shah-ec_4th yearVatsal N Shah
Β 
Flexible robotic hand
Flexible robotic hand Flexible robotic hand
Flexible robotic hand NΓ’hΓ­d Alam
Β 
Obstacle detection Robot using Ultrasonic Sensor and Arduino UNO
Obstacle detection Robot using Ultrasonic Sensor and Arduino UNOObstacle detection Robot using Ultrasonic Sensor and Arduino UNO
Obstacle detection Robot using Ultrasonic Sensor and Arduino UNOSanjay Kumar
Β 
Three axis auto stabilizing video camera platform
Three axis auto stabilizing video camera platformThree axis auto stabilizing video camera platform
Three axis auto stabilizing video camera platformEklavya Sharma
Β 
Arduino Based Collision Prevention Warning System
Arduino Based Collision Prevention Warning SystemArduino Based Collision Prevention Warning System
Arduino Based Collision Prevention Warning SystemMadhav Reddy Chintapalli
Β 
Design Analysis Automatic Garage Door Opener
Design Analysis Automatic Garage Door OpenerDesign Analysis Automatic Garage Door Opener
Design Analysis Automatic Garage Door Openerijtsrd
Β 
Microcontroller Based Robotic Arm Control
Microcontroller Based Robotic Arm ControlMicrocontroller Based Robotic Arm Control
Microcontroller Based Robotic Arm ControlNazmul Hossain Rakib
Β 
Jim Stertz: Automation and Robotic Arm: Maximizing Throughput and Capacity
Jim Stertz: Automation and Robotic Arm: Maximizing Throughput and CapacityJim Stertz: Automation and Robotic Arm: Maximizing Throughput and Capacity
Jim Stertz: Automation and Robotic Arm: Maximizing Throughput and Capacity360mnbsu
Β 
Auto Metro Train to Shuttle Between Stations
Auto Metro Train to Shuttle Between StationsAuto Metro Train to Shuttle Between Stations
Auto Metro Train to Shuttle Between StationsMadhav Reddy Chintapalli
Β 
Gesture control robot using by Ardiuno
Gesture control robot using by ArdiunoGesture control robot using by Ardiuno
Gesture control robot using by ArdiunoSudhir Kumar
Β 
Arduino Based Collision Prevention Warning System
Arduino Based Collision Prevention Warning SystemArduino Based Collision Prevention Warning System
Arduino Based Collision Prevention Warning SystemMadhav Reddy Chintapalli
Β 
Arduino obstacle avoidance robot
Arduino obstacle avoidance robotArduino obstacle avoidance robot
Arduino obstacle avoidance robotSteven Radigan
Β 
Autonomous Robotic Cleaner (ARC)
Autonomous Robotic Cleaner (ARC)Autonomous Robotic Cleaner (ARC)
Autonomous Robotic Cleaner (ARC)Hanna Diaz
Β 
Digitization of Speedometer Incorporating Arduino and Tracing of Location Usi...
Digitization of Speedometer Incorporating Arduino and Tracing of Location Usi...Digitization of Speedometer Incorporating Arduino and Tracing of Location Usi...
Digitization of Speedometer Incorporating Arduino and Tracing of Location Usi...IJERA Editor
Β 
Arts final project(MOBILE BRIDGE PLATFORM)
Arts final project(MOBILE BRIDGE PLATFORM)Arts final project(MOBILE BRIDGE PLATFORM)
Arts final project(MOBILE BRIDGE PLATFORM)Thanku Anna Baiju
Β 
IRJET- Automatic Metro Train to Shuttle Between Two Stations
IRJET- Automatic Metro Train to Shuttle Between Two Stations   IRJET- Automatic Metro Train to Shuttle Between Two Stations
IRJET- Automatic Metro Train to Shuttle Between Two Stations IRJET Journal
Β 
IRJET- Driverless Metro Train
IRJET- Driverless Metro TrainIRJET- Driverless Metro Train
IRJET- Driverless Metro TrainIRJET Journal
Β 

What's hot (20)

Floor cleaning robot report vatsal shah_ec_7th sem
Floor cleaning robot report vatsal shah_ec_7th semFloor cleaning robot report vatsal shah_ec_7th sem
Floor cleaning robot report vatsal shah_ec_7th sem
Β 
Floor cleaning robot(autonomus mannual) vatsal shah-ec_4th year
Floor cleaning robot(autonomus mannual)  vatsal shah-ec_4th yearFloor cleaning robot(autonomus mannual)  vatsal shah-ec_4th year
Floor cleaning robot(autonomus mannual) vatsal shah-ec_4th year
Β 
Flexible robotic hand
Flexible robotic hand Flexible robotic hand
Flexible robotic hand
Β 
Obstacle detection Robot using Ultrasonic Sensor and Arduino UNO
Obstacle detection Robot using Ultrasonic Sensor and Arduino UNOObstacle detection Robot using Ultrasonic Sensor and Arduino UNO
Obstacle detection Robot using Ultrasonic Sensor and Arduino UNO
Β 
Three axis auto stabilizing video camera platform
Three axis auto stabilizing video camera platformThree axis auto stabilizing video camera platform
Three axis auto stabilizing video camera platform
Β 
Arduino Based Collision Prevention Warning System
Arduino Based Collision Prevention Warning SystemArduino Based Collision Prevention Warning System
Arduino Based Collision Prevention Warning System
Β 
Design Analysis Automatic Garage Door Opener
Design Analysis Automatic Garage Door OpenerDesign Analysis Automatic Garage Door Opener
Design Analysis Automatic Garage Door Opener
Β 
Microcontroller Based Robotic Arm Control
Microcontroller Based Robotic Arm ControlMicrocontroller Based Robotic Arm Control
Microcontroller Based Robotic Arm Control
Β 
Jim Stertz: Automation and Robotic Arm: Maximizing Throughput and Capacity
Jim Stertz: Automation and Robotic Arm: Maximizing Throughput and CapacityJim Stertz: Automation and Robotic Arm: Maximizing Throughput and Capacity
Jim Stertz: Automation and Robotic Arm: Maximizing Throughput and Capacity
Β 
Auto Metro Train to Shuttle Between Stations
Auto Metro Train to Shuttle Between StationsAuto Metro Train to Shuttle Between Stations
Auto Metro Train to Shuttle Between Stations
Β 
Gesture control robot using by Ardiuno
Gesture control robot using by ArdiunoGesture control robot using by Ardiuno
Gesture control robot using by Ardiuno
Β 
Robotic hand
Robotic handRobotic hand
Robotic hand
Β 
Arduino Based Collision Prevention Warning System
Arduino Based Collision Prevention Warning SystemArduino Based Collision Prevention Warning System
Arduino Based Collision Prevention Warning System
Β 
Arduino obstacle avoidance robot
Arduino obstacle avoidance robotArduino obstacle avoidance robot
Arduino obstacle avoidance robot
Β 
Autonomous Robotic Cleaner (ARC)
Autonomous Robotic Cleaner (ARC)Autonomous Robotic Cleaner (ARC)
Autonomous Robotic Cleaner (ARC)
Β 
Digitization of Speedometer Incorporating Arduino and Tracing of Location Usi...
Digitization of Speedometer Incorporating Arduino and Tracing of Location Usi...Digitization of Speedometer Incorporating Arduino and Tracing of Location Usi...
Digitization of Speedometer Incorporating Arduino and Tracing of Location Usi...
Β 
Arts final project(MOBILE BRIDGE PLATFORM)
Arts final project(MOBILE BRIDGE PLATFORM)Arts final project(MOBILE BRIDGE PLATFORM)
Arts final project(MOBILE BRIDGE PLATFORM)
Β 
Major
MajorMajor
Major
Β 
IRJET- Automatic Metro Train to Shuttle Between Two Stations
IRJET- Automatic Metro Train to Shuttle Between Two Stations   IRJET- Automatic Metro Train to Shuttle Between Two Stations
IRJET- Automatic Metro Train to Shuttle Between Two Stations
Β 
IRJET- Driverless Metro Train
IRJET- Driverless Metro TrainIRJET- Driverless Metro Train
IRJET- Driverless Metro Train
Β 

Viewers also liked

RAPD Analysis Of Rapidly Multiplied In Vitro Plantlets of Anthurium Andreanum...
RAPD Analysis Of Rapidly Multiplied In Vitro Plantlets of Anthurium Andreanum...RAPD Analysis Of Rapidly Multiplied In Vitro Plantlets of Anthurium Andreanum...
RAPD Analysis Of Rapidly Multiplied In Vitro Plantlets of Anthurium Andreanum...IOSR Journals
Β 
Numerical Solution for the Design of a Traditional Aerospike Nozzle using Met...
Numerical Solution for the Design of a Traditional Aerospike Nozzle using Met...Numerical Solution for the Design of a Traditional Aerospike Nozzle using Met...
Numerical Solution for the Design of a Traditional Aerospike Nozzle using Met...IOSR Journals
Β 
Design, Construction and Operation of a 4-Bit Counting Circuit
Design, Construction and Operation of a 4-Bit Counting CircuitDesign, Construction and Operation of a 4-Bit Counting Circuit
Design, Construction and Operation of a 4-Bit Counting CircuitIOSR Journals
Β 
Practical Investigation of the Environmental Hazards of Idle Time and Speed o...
Practical Investigation of the Environmental Hazards of Idle Time and Speed o...Practical Investigation of the Environmental Hazards of Idle Time and Speed o...
Practical Investigation of the Environmental Hazards of Idle Time and Speed o...IOSR Journals
Β 

Viewers also liked (20)

O1304039196
O1304039196O1304039196
O1304039196
Β 
H1303014650
H1303014650H1303014650
H1303014650
Β 
N010617783
N010617783N010617783
N010617783
Β 
M012628386
M012628386M012628386
M012628386
Β 
C012630913
C012630913C012630913
C012630913
Β 
J013156065
J013156065J013156065
J013156065
Β 
B012511421
B012511421B012511421
B012511421
Β 
E1803012329
E1803012329E1803012329
E1803012329
Β 
F0333040
F0333040F0333040
F0333040
Β 
RAPD Analysis Of Rapidly Multiplied In Vitro Plantlets of Anthurium Andreanum...
RAPD Analysis Of Rapidly Multiplied In Vitro Plantlets of Anthurium Andreanum...RAPD Analysis Of Rapidly Multiplied In Vitro Plantlets of Anthurium Andreanum...
RAPD Analysis Of Rapidly Multiplied In Vitro Plantlets of Anthurium Andreanum...
Β 
B010340611
B010340611B010340611
B010340611
Β 
C010631015
C010631015C010631015
C010631015
Β 
L010416873
L010416873L010416873
L010416873
Β 
E1303041923
E1303041923E1303041923
E1303041923
Β 
B012620814
B012620814B012620814
B012620814
Β 
F010133036
F010133036F010133036
F010133036
Β 
F0552935
F0552935F0552935
F0552935
Β 
Numerical Solution for the Design of a Traditional Aerospike Nozzle using Met...
Numerical Solution for the Design of a Traditional Aerospike Nozzle using Met...Numerical Solution for the Design of a Traditional Aerospike Nozzle using Met...
Numerical Solution for the Design of a Traditional Aerospike Nozzle using Met...
Β 
Design, Construction and Operation of a 4-Bit Counting Circuit
Design, Construction and Operation of a 4-Bit Counting CircuitDesign, Construction and Operation of a 4-Bit Counting Circuit
Design, Construction and Operation of a 4-Bit Counting Circuit
Β 
Practical Investigation of the Environmental Hazards of Idle Time and Speed o...
Practical Investigation of the Environmental Hazards of Idle Time and Speed o...Practical Investigation of the Environmental Hazards of Idle Time and Speed o...
Practical Investigation of the Environmental Hazards of Idle Time and Speed o...
Β 

Similar to G017534144

Me 405 final report
Me 405 final reportMe 405 final report
Me 405 final reportDarya Darvish
Β 
Robotics Report final.compressed (1)
Robotics Report final.compressed (1)Robotics Report final.compressed (1)
Robotics Report final.compressed (1)Kael Kristjanson
Β 
Arduino Based Voice Generator Text to Speech Robot
Arduino Based Voice Generator Text to Speech RobotArduino Based Voice Generator Text to Speech Robot
Arduino Based Voice Generator Text to Speech Robotijtsrd
Β 
Three-Axis Auto Stabilizing Video Camera Platform
Three-Axis Auto Stabilizing Video Camera PlatformThree-Axis Auto Stabilizing Video Camera Platform
Three-Axis Auto Stabilizing Video Camera PlatformEklavya Sharma
Β 
pdf-obstacle-avoiding-robot.docx
pdf-obstacle-avoiding-robot.docxpdf-obstacle-avoiding-robot.docx
pdf-obstacle-avoiding-robot.docxmaheshwaran79
Β 
MOBILE ROBOTIC ARM WITH APP INTERFACE USING MICROCONTROLLERS
MOBILE ROBOTIC ARM WITH APP INTERFACE USING MICROCONTROLLERSMOBILE ROBOTIC ARM WITH APP INTERFACE USING MICROCONTROLLERS
MOBILE ROBOTIC ARM WITH APP INTERFACE USING MICROCONTROLLERSIRJET Journal
Β 
A SMART VOICE CONTROLLED PICK AND PLACE ROBOT.pdf
A SMART VOICE CONTROLLED PICK AND PLACE ROBOT.pdfA SMART VOICE CONTROLLED PICK AND PLACE ROBOT.pdf
A SMART VOICE CONTROLLED PICK AND PLACE ROBOT.pdfAakash Sheelvant
Β 
A SMART VOICE CONTROLLED PICK AND PLACE ROBOT
A SMART VOICE CONTROLLED PICK AND PLACE ROBOTA SMART VOICE CONTROLLED PICK AND PLACE ROBOT
A SMART VOICE CONTROLLED PICK AND PLACE ROBOTIRJET Journal
Β 
Automatic railway gate control using arduino uno
Automatic railway gate control using arduino unoAutomatic railway gate control using arduino uno
Automatic railway gate control using arduino unoselvalakshmi24
Β 
Design and Mechanism ofControlling a Robotic ArmIntroduction.docx
Design and Mechanism ofControlling a Robotic ArmIntroduction.docxDesign and Mechanism ofControlling a Robotic ArmIntroduction.docx
Design and Mechanism ofControlling a Robotic ArmIntroduction.docxcarolinef5
Β 
Mini CNC Plotter and Laser Engraver
Mini CNC Plotter and Laser EngraverMini CNC Plotter and Laser Engraver
Mini CNC Plotter and Laser Engraverijtsrd
Β 
Report - Line Following Robot
Report - Line Following RobotReport - Line Following Robot
Report - Line Following RobotDivay Khatri
Β 
Animatronic hand controller
Animatronic hand controllerAnimatronic hand controller
Animatronic hand controllerSabrina Chowdhury
Β 
IRJET - Mobile Application Base Voice Command Wireless CNC Writing Machine
IRJET - Mobile Application Base Voice Command Wireless CNC Writing MachineIRJET - Mobile Application Base Voice Command Wireless CNC Writing Machine
IRJET - Mobile Application Base Voice Command Wireless CNC Writing MachineIRJET Journal
Β 
Automatic railway gate control using arduino uno
Automatic railway gate control using arduino unoAutomatic railway gate control using arduino uno
Automatic railway gate control using arduino unoselvalakshmi24
Β 
VIP - Wheelchair Project Final Report
VIP - Wheelchair Project Final ReportVIP - Wheelchair Project Final Report
VIP - Wheelchair Project Final ReportKarvin Dassanayake
Β 
IRJET-Gesture Recognition Robot using Digital Image Processing
IRJET-Gesture Recognition Robot using Digital Image ProcessingIRJET-Gesture Recognition Robot using Digital Image Processing
IRJET-Gesture Recognition Robot using Digital Image ProcessingIRJET Journal
Β 

Similar to G017534144 (20)

Me 405 final report
Me 405 final reportMe 405 final report
Me 405 final report
Β 
Robotics Report final.compressed (1)
Robotics Report final.compressed (1)Robotics Report final.compressed (1)
Robotics Report final.compressed (1)
Β 
Arduino Based Voice Generator Text to Speech Robot
Arduino Based Voice Generator Text to Speech RobotArduino Based Voice Generator Text to Speech Robot
Arduino Based Voice Generator Text to Speech Robot
Β 
Three-Axis Auto Stabilizing Video Camera Platform
Three-Axis Auto Stabilizing Video Camera PlatformThree-Axis Auto Stabilizing Video Camera Platform
Three-Axis Auto Stabilizing Video Camera Platform
Β 
pdf-obstacle-avoiding-robot.docx
pdf-obstacle-avoiding-robot.docxpdf-obstacle-avoiding-robot.docx
pdf-obstacle-avoiding-robot.docx
Β 
MOBILE ROBOTIC ARM WITH APP INTERFACE USING MICROCONTROLLERS
MOBILE ROBOTIC ARM WITH APP INTERFACE USING MICROCONTROLLERSMOBILE ROBOTIC ARM WITH APP INTERFACE USING MICROCONTROLLERS
MOBILE ROBOTIC ARM WITH APP INTERFACE USING MICROCONTROLLERS
Β 
371275588.pptx
371275588.pptx371275588.pptx
371275588.pptx
Β 
A SMART VOICE CONTROLLED PICK AND PLACE ROBOT.pdf
A SMART VOICE CONTROLLED PICK AND PLACE ROBOT.pdfA SMART VOICE CONTROLLED PICK AND PLACE ROBOT.pdf
A SMART VOICE CONTROLLED PICK AND PLACE ROBOT.pdf
Β 
A SMART VOICE CONTROLLED PICK AND PLACE ROBOT
A SMART VOICE CONTROLLED PICK AND PLACE ROBOTA SMART VOICE CONTROLLED PICK AND PLACE ROBOT
A SMART VOICE CONTROLLED PICK AND PLACE ROBOT
Β 
Automatic railway gate control using arduino uno
Automatic railway gate control using arduino unoAutomatic railway gate control using arduino uno
Automatic railway gate control using arduino uno
Β 
Ppt
PptPpt
Ppt
Β 
Design and Mechanism ofControlling a Robotic ArmIntroduction.docx
Design and Mechanism ofControlling a Robotic ArmIntroduction.docxDesign and Mechanism ofControlling a Robotic ArmIntroduction.docx
Design and Mechanism ofControlling a Robotic ArmIntroduction.docx
Β 
Mini CNC Plotter and Laser Engraver
Mini CNC Plotter and Laser EngraverMini CNC Plotter and Laser Engraver
Mini CNC Plotter and Laser Engraver
Β 
Report - Line Following Robot
Report - Line Following RobotReport - Line Following Robot
Report - Line Following Robot
Β 
Animatronic hand controller
Animatronic hand controllerAnimatronic hand controller
Animatronic hand controller
Β 
IRJET - Mobile Application Base Voice Command Wireless CNC Writing Machine
IRJET - Mobile Application Base Voice Command Wireless CNC Writing MachineIRJET - Mobile Application Base Voice Command Wireless CNC Writing Machine
IRJET - Mobile Application Base Voice Command Wireless CNC Writing Machine
Β 
Automatic railway gate control using arduino uno
Automatic railway gate control using arduino unoAutomatic railway gate control using arduino uno
Automatic railway gate control using arduino uno
Β 
VIP - Wheelchair Project Final Report
VIP - Wheelchair Project Final ReportVIP - Wheelchair Project Final Report
VIP - Wheelchair Project Final Report
Β 
Quadcopter
QuadcopterQuadcopter
Quadcopter
Β 
IRJET-Gesture Recognition Robot using Digital Image Processing
IRJET-Gesture Recognition Robot using Digital Image ProcessingIRJET-Gesture Recognition Robot using Digital Image Processing
IRJET-Gesture Recognition Robot using Digital Image Processing
Β 

More from IOSR Journals (20)

A011140104
A011140104A011140104
A011140104
Β 
M0111397100
M0111397100M0111397100
M0111397100
Β 
L011138596
L011138596L011138596
L011138596
Β 
K011138084
K011138084K011138084
K011138084
Β 
J011137479
J011137479J011137479
J011137479
Β 
I011136673
I011136673I011136673
I011136673
Β 
G011134454
G011134454G011134454
G011134454
Β 
H011135565
H011135565H011135565
H011135565
Β 
F011134043
F011134043F011134043
F011134043
Β 
E011133639
E011133639E011133639
E011133639
Β 
D011132635
D011132635D011132635
D011132635
Β 
C011131925
C011131925C011131925
C011131925
Β 
B011130918
B011130918B011130918
B011130918
Β 
A011130108
A011130108A011130108
A011130108
Β 
I011125160
I011125160I011125160
I011125160
Β 
H011124050
H011124050H011124050
H011124050
Β 
G011123539
G011123539G011123539
G011123539
Β 
F011123134
F011123134F011123134
F011123134
Β 
E011122530
E011122530E011122530
E011122530
Β 
D011121524
D011121524D011121524
D011121524
Β 

Recently uploaded

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
Β 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
Β 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
Β 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
Β 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
Β 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
Β 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
Β 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
Β 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
Β 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
Β 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
Β 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
Β 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
Β 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
Β 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
Β 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
Β 
FULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | DelhiFULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | Delhisoniya singh
Β 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
Β 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
Β 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
Β 

Recently uploaded (20)

04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
Β 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Β 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
Β 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
Β 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Β 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Β 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
Β 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Β 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
Β 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
Β 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Β 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Β 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Β 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Β 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Β 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
Β 
FULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | DelhiFULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY πŸ” 8264348440 πŸ” Call Girls in Diplomatic Enclave | Delhi
Β 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Β 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
Β 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
Β 

G017534144

  • 1. IOSR Journal of Computer Engineering (IOSR-JCE) e-ISSN: 2278-0661,p-ISSN: 2278-8727, Volume 17, Issue 5, Ver. III (Sep. – Oct. 2015), PP 41-44 www.iosrjournals.org DOI: 10.9790/0661-17534144 www.iosrjournals.org 41 | Page Gesture mimicking two Wheeler differential drive Arduino based robot and iRobot Create Subhankar Chattoraj, Arnab Pal ESL, Dumdum Lab, Salt Lake City, Kolkata Abstract: The project discussed here is a gesture controlled robot having two wheels on either side just like a car. The key features described in the project are i) controlling the movement of the wheels using an embedded system ii) using the concept of image processing hand gestures are analyzed and according to the gestures the robot moves. The embedded system used here is an Arduino Uno board. It is a microcontroller (Atmega328) based board having 14 digital pins (out of which some are PWM pins) and 6 analog pins. The Arduino have been programmed using JAVA. Two driving motors have been connected with each of the wheels and hence a motor driving circuit (IC no.-L293D) has been used. The gesture detection part has been done using PYTHON programming. The concept of image processing has been used for the detection. The PYTHON program and the Arduino program have been merged using serial import interface. The project is such that, first it will detect an object blue, green or red in colour and will bound it by a rectangle. By moving the detected object up, down, right or left, the robot will move forward, backward, right or left accordingly. Keywords: Arduino, L293D, JAVA programming, Image Processing, PYTHON programming, Open CV module. I. Introduction: We have often seen children playing with remote controlled cars or computer games, in which buttons are pressed to control the movement of objects. So here we have tried to depict the movement of objects or in this case the wheels of the robot, using hand gestures. To construct the preliminary structure of the robot, we needed two motors to drive the wheels. We have used two 12v 100 rpm motors, one for each wheel. We have made the frame using a metal chassis and fitted a free wheel in the front to give it the required support and balance. We have welded two rectangular metal pieces with a hole in the middle, at the back of the chassis. After that each wheel and the respective motors are joined together via that hole. The weight of the metal chassis was too heavy for the wheels and the motors to bear so the whole welding process of the two rectangular metal pieces was executed. The Arduino Uno board and the motor driver circuit (IC no.- L293D) board were fitted on the top of the metal chassis. After the construction of the robot two programs were written. The program to control the motion of the wheels was written in Arduino software which is freely available and that particular program was in JAVA language which was then uploaded to the Arduino Uno board. The second program to implement gesture tracking was written in PYTHON language and the two programs were merged together using the concept of serial import interface. During demonstration only the PYTHON program was executed which detects the respective colors- Blue, Green or Red according to the program. The wheels move according to the movement of the detected object. II. Methodology: This project mainly comprises of two parts: The Embedded Systems part and the Image Processing part. The first part is used for the purpose of motion control of the robot and the second part is for the detection of colored objects and accordingly gesture control. Embedded Systems part: This part comprises of the Arduino Uno board, the driver circuit board and the two motors. 1. Description of connection: Internal connections among the two boards and the motors are done via jumpers. Now the Arduino board consists of 14 digital pins and 6 analog pins, and on the other hand the driver circuit board consists of 16 pins. First of all connections are made between the digital pins of the Arduino board and the driver circuit board. The first connection is established between first input pin or i1 pin of the driver circuit and the digital pin no.6 of the Arduino board. Similarly the second connection is made between input pin no.2 or i2 of the driver circuit and the 7th digital pin of the Arduino board. Lastly the 3rd and the 4th input pins or the i3 and i4 pins of the driver circuit are connected to the 8th and 9th digital pins of the Arduino board respectively. After that any PWM pin of the Arduino board is connected with the enable pin of the driver circuit board. The remaining connection that was to be established now was among the driver circuit board and the two motors. Each motor consists of 2 wires and each of these wires was connected to the respective output pins of the driver circuit board. That is two
  • 2. Gesture mimicking two Wheeler differential drive Arduino based robot and iRobot Create DOI: 10.9790/0661-17534144 www.iosrjournals.org 42 | Page wires from the first motor are connected to the 1st and the 2nd output pins or o1 and o2 pins of the driver circuit board respectively. Wires from the second motor are connected to the 3rd and 4th or the o3 and o4 output pins of the driver circuit. With this the entire connection of the Embedded Systems part of the robot is completed. Connection of the power supply and Ground is done in the end. The allover connection part is checked once again to detect whether any faults are present and are rectified. Now we proceed towards the programming part. Figure-1. Connection between the Arduino board, the driver circuit and the motors Figure-2. The wheeled robot that we had built. 2. Algorithm of the Arduino program: The program that is executed in the Arduino software is directly uploaded to the Arduino Uno board. In the beginning of the program all the input pins are taken into account or is basically listed. Within the setup part of the programming format the pinModes of i1, i2, i3 and i4 are set as OUTPUT. After setting of the pinModes, the Serial.begin(9600) step signifies the setting up of a serial channel between the Arduino board and the computer. Under the void pause() format input pins i1, i2, i3, and i4 are set to LOW using digitalWrite command. This particular part stops the wheels of the robot from moving. The next step is the if statement step. Statement is written as if(Serial.available>0) which implies that this statement is valid if an input is available in the serial window. Now if this statement is valid then a character will be read say c. In order to read the input in the serial window the statement Char c=Serial.read() is written within the loop part of the program. Invalidity of the if statement leads to the immediate termination of program. Now we move on the control of the direction of the movement of the wheels. If character c== β€˜f’ that means both the wheels of the robot will move forward. So within this if statement we set the pins i1 and i3 to HIGH and pins i2 and i4 to LOW respectively. The Delay(100) step implies the time taken to receive the next signal. Again the pause() function will work after that
  • 3. Gesture mimicking two Wheeler differential drive Arduino based robot and iRobot Create DOI: 10.9790/0661-17534144 www.iosrjournals.org 43 | Page in order to determine the required interval before the execution of the upcoming command. In the upcoming part of the program if the character c==’d’ , the signal to be given to the pins are adjusted in such a way so that both the wheels of the robot will move backwards. Input pins i1 and i4 are set to HIGH and the pins i2 and i3 are set to LOW to control the previously mentioned backward movement. After this in the same way as done during the forward movement, the Delay(100) and the pause() statement will depict the interval before the onset of the next signal given to the robot. Similarly required adjustments are done to control the movement of the robot towards left and right. When we are supposed to move the robot towards right , in the if statement part we take the character c as β€˜r’ and if this statement is valid then the pins i1 and i4 are set to HIGH and pins i2 and i3 are set to LOW. This part will allow the right wheel to move forward and the left wheel to move backward. After this again the Delay(100) and pause() statements are repeated. To control the movement of the robot toward left we assume the character c as β€˜l’ and the pins i2 and i3 are set to HIGH and the pins i1 and i4 are set to LOW. This allows the left wheel to move forward and the right wheel to move in the opposite direction. The program finally completed after the Delay(100) and the pause() statements and we close the braces to signify the conclusion of the program. The program is now fully set or ready to be uploaded to the Arduino Uno board after compilation. Figure-3. Flowchart of the Arduino program Image Processing part: This is the part of the project in which gesture controlling have been done. PYTHON language has been used to code this part. A module known as OpenCV has been used. This OpenCV or Open Source Computer Vision is a collection of different programming functions assigned to do certain things. OpenCV has many applications such as face recognition, gesture tracking, motion tracking, 2D- 3D features, etc. Since here we have used the concept of gesture tracking, we have imported the OpenCV module/library. OpenCV is also considered as image processing software, hence OpenCV is the base of the project. Algorithm of the code: i) First the openCV module is imported so as to import the functions for image processing and gesture controlling. ii) sleep module is imported so that the sleep() function can be used in the program. This sleep function is used so that the webcam is accessed a few seconds after the execution of the program. This prevents the program from hanging or crashing. iii) The serial module is then imported. Without this module the arduino board and this image processing part cannot be interfaced. After this the serial function is used to access the port to which the arduino board is connected. serial.Serial(β€˜COM4’) is the actual PYTHON command which accesses port number 4, to which the arduino board is connected. iv) The webcam is accessed and hence the video is obtained. v) The video will be accessed 2 seconds after the execution of the program. This is done using the sleep function. vi) A trackbar is created in the range 20 to 255. This trackbar will adjust the threshold of the video so as to reduce noise and detect the largest red object else the result will not be accurate. vii) While a video is accessed. It is flipped and stored in a variable. This is done because the video obtained by the webcam is a mirror image one hence it was flipped to obtain the actual video. viii) The red channel is extracted from the video. The flipped video is converted to grayscale. After this the red channel is subtracted from the grayscaled image so that the red channel appears as white and the other two channels (blue and green) , appears as black ix) The video is then binarized using the threshold set by the trackbar. x) Erosion is done so that the red objects if placed in front of the webcam will be detected as white blobs. xi) Information is gathered about the white blobs nd the largest white blob is taken into account by adjusting the threshold value using the trackbar and it is bounded by a red rectangle. xii) The entire video area is divided into x-y axes. This is done to track the movement of the detected red object. xiii) If the red object is moved, then the different between the four coordinates of the last position of the bounded rectangle and the moved position of the bounded rectangle is obtained. xiv) It is then checked that which difference is more, the difference in the x-axis coordinates of the bounded rectangle or that of the y-axis coordinates. If the difference is more in the x-axes
  • 4. Gesture mimicking two Wheeler differential drive Arduino based robot and iRobot Create DOI: 10.9790/0661-17534144 www.iosrjournals.org 44 | Page coordinates then the movement is along x-axis (right or left) else it is along y-axis (up or down). xv) If the movement is along x-axis, it is then checked if it is > 20. If it is found to be >20 then the movement is towards the right side and the robot is made to turn right by using the command ser.write(β€˜r’). Else the movement is towards the left side and the robot is made to turn left by using the command ser.left(β€˜l’). xvi) Now I the difference in the y-axis coordinates is more, then it is checked if it is >20 or <-20. If it is >20 then the movement is considered to be in the up direction and the robot is made to move forward by using the command ser.write(β€˜f’). Else the movement is considered to be in the downward direction and the robot is moved backward by using the command ser.write(β€˜d’). xvii) The program continues that is the video is accessed and the red objects are detected until the escape key it hit. Hence the program stops when the escape key is pressed. Hence this completes our project Figure-4. The flowchart of the PYTHON program iRobot Create Part:The same logic of the gesture controlled robot is applied to the control of the iRobot Create. iRobot Create is a multipurpose educational robot and many application Bluetooth Adapter Module to make the iRobot Create wireless. Rest of the logic for moving the robot according to the gesture is similar to the algorithm for moving the Arduino based differential drive robot. III. Results and discussion After the PYTHON program is executed, the webcam will be accessed and the red colored objects will be shown as white blobs and will be bounded by a rectangle. The robot will move according to the movement of the red object. Figure-5. The screenshot of the program execution. As we can see the red object is detected as a white blob and simultaneously is bounded by a rectangle and the movement is printed in the PYTHON shell. IV. Conclusion The project gave us a lot of firsthand experience of using the combined concept of both image processing and embedded systems. This is just the basic part, this project can be further improved by making use of a Bluetooth module and hence making the entire project wireless. Considering the image processing part, here we have detected a red object, similarly blue and green objects can also be detected by slight modification. The more advanced concept can be used in the gesture controlling part such as instead of detecting any colored object the program will detect the movement of the human eyeball.