WiFi Controlled Robot using Arduino
WiFi Controlled Robot using
Arduino
There
are many types of Robots, from the simple ones like a Toy car to the advanced
ones like industrial Robots. We
have already covered many types of Robots using different technologies, have a
look at them:
And
now we are adding one more Robot in our ‘Robotics
Projects’ section,
this time we are going to make a Wi-Fi controlled Robot using Arduino and Blynk App. This Arduino based Robot can be controlled
wirelessly using any Wi-Fi enabled Android smart
phone.
For
demonstration of Wi-Fi Controlled Robot, we have used an Android Mobile App named “Blynk”. Blynk is a very compatible app with Arduino, to
make IoT based
project.
This App can be downloaded
from the Google Play Store, and can be easily configured.
Steps for configuring Blynk App:
1. First download it from Google Play Store and
install it in Android mobile phone.
2. After this, it is required to create an account. You may use your current Gmail account.
3. Now select Arduino Board and give a name for your
project.
4. Note down the Auth Token Code or simply mail it to
your Email Account and then copy and paste in Arduino sketch (Program Code).
5. Enter this Auth Token Code in Arduino sketch.
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut
icon).
char
auth[]
= "caa17a11c0124d4083d0eaa995f45917";
6. Then click on create button in Blynk app.
7. Now Select the Joystick Widget, Click on
Joystick, Configure the Joystick (see
the Video at the end) and hit the back button.
8. After it press Play button at the right top of
screen.
All
this process, of using the Blynk App, has been clearly explained in
Video, given in the end.
Required Components:
·
Arduino UNO
·
ESP8266 Wi-Fi Module
·
USB Cable
·
Connecting wires
·
L293D
·
DC Motors
·
Batteries
·
10K POT (optional)
·
Robot chassis plus wheel
·
Roller caster
·
Android Mobile phone
·
Blynk App
Circuit Explanation:
Circuit
Diagram of Wi-Fi controlled robot is given below. We
mainly need a Arduino and ESP8266 Wi-Fi module. ESP8266’s Vcc
and GND pins are directly connected to 3.3V and GND of Arduino and CH_PD is also connected with 3.3V. Tx and
Rx pins of ESP8266 are directly connected to pin 2 and 3 of Arduino. Software Serial Library is used to allow serial
communication on pin 2 and 3 of Arduino. We have already covered the Interfacing
of ESP8266 Wi-Fi
module to Arduino in detail.
A L293D
Motor Driver IC is used for driving DC motors. Input pins of motor driver IC is directly
connected to pin 8, 9, 10 and 11 of Arduino. And DC motors are connected at its output pins. Here we have used 9 Volt battery for driving the
Circuit and DC motors.
Working Explanation:
Working
of the Wi-Fi controlled Robot is very easy, we just need
to Drag or Slide the Joystick in the direction, where we want
to move the Robot.
Like if we want to move the
Robot in Forward direction then we need to Drag the Joystick ‘circle’ in
Forward direction.
Likewise we can move the
Robot in Left, Right and Backward direction by Dragging the joystick in
respective direction. Now as soon as we release the
Joystick, it will come back to centre and Robot stops.
Blynk
App sends values from Two Axis Joystick to Arduino, through Wi-Fi medium. Arduino receive the values, compare them with predefined values
and move the Robot accordingly in that direction.
Programming Explanation:
Program
is almost readymade available in Arduino IDE. We just need to download Blynk Library for Arduino. And after making some modifications, user can make
own Wi-Fi controlled robot.
First
we have included all the needed libraries to run this code in Arduino IDE, and
then entered Auth Token, from the Blynk app, in the auth string. Here we are connecting Wi-Fi serial pin with Software Serial of Arduino. Selected pin 2 as RX and 3 as TX.
#define
BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include
<ESP8266_SoftSer.h>
#include
<BlynkSimpleShieldEsp8266_SoftSer.h>
// Set ESP8266 Serial object
#include
<SoftwareSerial.h>
SoftwareSerial
EspSerial(2, 3); // RX, TX
ESP8266
wifi(EspSerial);
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char
auth[]
= "caa17a11c0124d4083d0eaa995f45917";
Then
we defined output pins(8,9,10,11) for motors and wrote some direction functions to
move the Robot in particular direction: void forward(), void backward(),void right() and void left()
After
this, in setup function we initialise all the required
devices, like giving direction to motor pins, begin serial communication,
providing Wi-Fi username and password.
void
setup()
{
// Set
console baud rate
Serial.begin(9600);
delay(10);
// Set
ESP8266 baud rate
// 9600 is
recommended for Software Serial
EspSerial.begin(9600);
delay(10);
Blynk.begin(auth, wifi, "username", "password"); // wifi username and
password
pinMode(m11,
OUTPUT);
pinMode(m12,
OUTPUT);
pinMode(m21,
OUTPUT);
pinMode(m22,
OUTPUT);
}
Now we
have checked some conditions for controlling the robot. Here we have selected virtual pin 1 (V1) for taking input from Blynk App to control the robot. As we have used marge option in app so we will get
x and y axis values at same pin.
BLYNK_WRITE(V1)
{
int x = param[0].asInt();
int y = param[1].asInt();
if(y>220)
forward();
else if(y<35)
backward();
else if(x>220)
right();
else if(x<35)
left();
else
Stop();
}
At
last we need to run blynk function in loop, to run the system.
void
loop()
{
Blynk.run();
}
Demo & Code
WiFi Controlled Robot using Arduino
Reviewed by XXX
on
สิงหาคม 27, 2560
Rating:
ไม่มีความคิดเห็น