The Android phone that stays in your hand most of the time is useful in many other applications apart from Whatsapp, Facebook; appliances; and monitoring your health parameters. What if it could control a Robot to assist in your daily work? Yes, it’s possible! With this project you can make a robot that can be controlled by an Android phone, over Bluetooth communication.
Fig. 1: Prototype of Mobile operated Arduino Robot
The robot is built around Arduino interfaced with a Bluetooth receiver to receive commands from Android Phone.
The basic Block diagram of the system is as follows:
Fig. 2: Block Diagram of Mobile operated Arduino Robot
Bluetooth Communication
Bluetooth is a wireless technology standard for exchanging data over short distances (using short-wavelength UHF radio waves in the ISM band from 2.4 to 2.485 GHz) from fixed and mobile devices, and building personal area networks (PANs). Invented by telecom vendor Ericsson in 1994, it was originally conceived as a wireless alternative to RS-232 data cables. It can connect several devices, overcoming problems of synchronization.
HC-05 module is an easy to use Bluetooth SPP (Serial Port Protocol) module, designed for transparent wireless serial connection setup. HC-05 is 6-pin Module. The module has 6 pins labelled on the back, but most modules only have 4 of those populated with pogo pins. KEY & STATE seem to be not required, as KEY is used for flashing the device and STATE simply indicates if the device is awake or not. So that leaves only GND, VCC, TXD, RXD.
Fig. 3: Image of HC-05 Bluetooth Module
For connecting The Module with Arduino, we need to use the Serial (Tx and Rx) pins provided on the board.
Connections with HC-04
Making Connections with HC-05:
Connect RXD pin of module to TXD of Arduino (Digital Pin 1), through the voltage divider configuration shown below:
Fig. 4: Circuit Diagram of Arduino and HC-05 Bluetooth Module Interfacing
Now connect TXD of module to RXD of Arduino (Digital Pin 0).
Android Application to Control Robot
Fig. 5:
Screenshot of Android App showing Bluetooth Connection with the Robot
Fig. 6: Screenshot of Android App showing messages sent to the Arduino Robot
Motor Interfacing & Robot Assembly
Fig. 7: Pin Diagram of L293D Motor Driver IC
Robot assembly can be as shown below:
Fig. 8: Image showing mechanical design of Arduino Robot
Android mobile App to control the robot is available for free on the play store..
The motor driver inputs are connected to Arduino pins 5; 6; 7 and 8 respectively.
Fig. 9: Image showing chassis and body of the Arduino Robot
Fig. 10: Image of Arduino Robot controlled by Android Phone
You may also like:
Project Source Code
### // Android Phone Controlled Robot // Successfully Tested on Android App --> 'Arduino Bluetooth // Terminal'; it is available free on the Google Play Store int state; int flag=0; void stp(); void fwd(); void left(); void right(); void back(); void setup() { pinMode(7,OUTPUT); pinMode(8,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); Serial.begin(9600); // Baud rate set to 9600bps } void loop() { if(Serial.available() > 0) // Ckeck for command Recieved { state = Serial.read(); Serial.println(state); flag=0; } if (state == '1') // Checking Command from User { stp(); if(flag == 0){ Serial.println("Stop"); flag=1; } } else if (state == '2') { fwd(); if(flag == 0) { Serial.println("Forward"); flag=1; } } else if (state == '3') { back(); if(flag == 0) { Serial.println("Backward"); flag=1; } } else if (state == '4') { left(); if(flag == 0) { Serial.println("Left"); flag=1; } } else if (state == '5') { right(); if(flag == 0) { Serial.println("Right"); flag=1; } } } //loop() ends here void fwd() // Forward { digitalWrite(7,HIGH); digitalWrite(5,HIGH); digitalWrite(6,LOW); digitalWrite(8,LOW); } void back() // Backward { digitalWrite(8,HIGH); digitalWrite(6,HIGH); digitalWrite(7,LOW); digitalWrite(5,LOW); } void left() //LEFT { digitalWrite(7,HIGH); digitalWrite(5,LOW); digitalWrite(8,LOW); digitalWrite(6,LOW); } void right() // Right { digitalWrite(7,LOW); digitalWrite(5,HIGH); digitalWrite(8,LOW); digitalWrite(6,LOW); } void stp() // Robot STops { digitalWrite(7,LOW); digitalWrite(8,LOW); digitalWrite(5,LOW); digitalWrite(6,LOW); } ###
Circuit Diagrams
Circuit-Diagram-L293D-Based-Motor-Driver-Arduino-Robot | ![]() |
Circuit-Diagram-Controller-Circuitry-Arduino-Robot | ![]() |
Filed Under: Electronic Projects
Questions related to this article?
👉Ask and discuss on Electro-Tech-Online.com and EDAboard.com forums.
Tell Us What You Think!!
You must be logged in to post a comment.