How to make a hand following robot using Arduino | Human following robot
Hello, welcome back. In this project, we will learn how to make a Hand following robot using an Arduino. Two IR sensors are mainly used for this project. Also, this project is based on the Arduino UNO board and the L293D motor driver shield. This tutorial shows you step by step how to build a robot car with pictures. So you can easily do this.
The process of this hand following robot
When the robot car is activated, both IR sensors are also activated and begin receiving inputs. If you move your hand near the sensor on the left side, the robot car will turn left as it receives a signal from that sensor. Conversely, if you move your hand near the sensor on the right side, the robot car will turn right. Additionally, if you move your hand near both sensors simultaneously, the robot car will move forward, as it receives signals from both sensors.
OK, let’s do this project step by step. The required components are given below.
- Arduino UNO board x 1 — Our Store / Amazon
- IR sensor x 2 — Our Store / Amazon
- L293D motor driver x 1 — Our Store / Amazon
- Gear motor x 4 — Our Store / Amazon
- Robot wheel x 4 — Our Store / Amazon
- Li-battery holder x 1 — Our Store / Amazon
- Li-battery x 2 — Amazon
- Jumper wires — Our Store / Amazon
- Dot board(12cm x 18cm) — Amazon
Disclosure: These Amazon links are Affiliate links. As an Amazon Associate, I earn from qualifying purchases.
Step 1
Firstly, identify these components.
Step 2
Secondly, glue the gear motors as follows.
Step 3
Thirdly, connect the L293D motor shield to the Arduino UNO board. Then, glue the top of the dot board.
Step 4
Now, connect the gear motors to the motor driver shield. To do this, use the circuit diagram below.
Step 5
Now, install the two IR sensors on a piece of foam board or cardboard.
Step 6
Then, connect these sensors to the Arduino board. After, glue it to the dot board.
Step 7
Next, install the li-ion battery holder on the dot board and connect it to the Arduino board.
Step 8
Now, connect this robot car to the computer using a USB cable.
Step 9
OK, let’s create the program for this project.
/*Human following robot with Arduino.
created by the SriTu Hobby team.
Read the code below and use it for any of your creations.
*/
#include <AFMotor.h>
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);
int Speed = 200;
#define sensor1 A0
#define sensor2 A1
void setup() {
Serial.begin(9600);
motor1.setSpeed(Speed);
motor2.setSpeed(Speed);
motor3.setSpeed(Speed);
motor4.setSpeed(Speed);
pinMode(sensor1, INPUT);
pinMode(sensor2, INPUT);
}
void loop() {
bool value1 = digitalRead(sensor1);
bool value2 = digitalRead(sensor2);
Serial.println(value2);
Serial.println(value1);
if (value1 == 0 && value2 == 0 ) {
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
} else if (value1 == 1 && value2 == 1) {
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
} else if (value1 == 0 && value2 == 1) {
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
} else if (value1 == 1 && value2 == 0) {
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
}
}
Code explanation
First, the AF Motor Library is included. Then, objects are created for the motor drive shield terminals.
#include <AFMotor.h>
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);
Secondly, sensor pins are defined.
#define sensor1 A0
#define sensor2 A1
In the setup function,
void setup() {
//The serial monitor is begin
Serial.begin(9600);
//These codes set the motor speed
motor1.setSpeed(Speed);
motor2.setSpeed(Speed);
motor3.setSpeed(Speed);
motor4.setSpeed(Speed);
//The sensor pins are set as INPUT pins
pinMode(sensor1, INPUT);
pinMode(sensor2, INPUT);
}
In the loop function,
void loop() {
//Gets the sensor values
bool value1 = digitalRead(sensor1);
bool value2 = digitalRead(sensor2);
//These values are printed on the serial monitor
Serial.println(value2);
Serial.println(value1);
//These values are checked using the IF condition. If the value of both sensors is 0, the robot car move forward.
if (value1 == 0 && value2 == 0 ) {
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
//If the values of both sensors is 1, the robot car is stopped
} else if (value1 == 1 && value2 == 1) {
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
//If the left sensor value is 0, the robot car turns left
} else if (value1 == 0 && value2 == 1) {
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
//If the right sensor value is 0, the robot car turns right
} else if (value1 == 1 && value2 == 0) {
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
}
}
Step 10
Then, select the board and port. After, upload this code to the Arduino board.
Step 11
Lastly, attach the robot wheels and put the batteries into the battery holder.
OK, enjoy this project. The full video guide is given below. So, we will meet in the next tutorial.
How to make a hand following robot using Arduino | Human following robot
Can I use breadboard instead of the dot board? And will the code work if I just replace? Thankyou