A very simple obstacle avoiding robot using arduino , this robot uses very simple code and can accomplish the task with ease, check out the video for how the robot is working, its really simple to make not much complicated circuit. It uses HC SR-04 sensor which senses distance between the robot and object. If the distance is maximum and robot can move without colliding , the robot moves in forward direction, if the robot senses object near to it, it takes diversion and moves to the safe place and avoiding colliding to any objects around the robot,
Components Used:
HC SR- 04 (ultrasonic sensor)
L293D Motor driver
2x Gear Motor
2x wheels
1x chasis
1x castor wheel
connecting wires
battery
Arduino Uno
Circuit Diagram:
--------------------------------------------------------------------------------------------------------------------------
Arduino Program:
/*
HC-SR04 Ping distance sensor:
VCC to arduino 5v
GND to arduino GND
Echo to Arduino pin 8
Trig to Arduino pin 9*/
#define echopin 8 // echo pin
#define trigpin 9 // Trigger pin
int maximumRange = 30;
long duration, distance;
void setup() {
Serial.begin (9600);
pinMode (trigpin, OUTPUT);
pinMode (echopin, INPUT );
pinMode (4, OUTPUT);
pinMode (5, OUTPUT);
pinMode (13, OUTPUT);
pinMode (6, OUTPUT);
pinMode (7, OUTPUT);
}
void loop ()
{
{
digitalWrite(trigpin,LOW);
delayMicroseconds(2);
digitalWrite(trigpin,HIGH);
delayMicroseconds(10);
duration=pulseIn (echopin,HIGH);
distance= duration/58.2;
delay (50);
Serial.println(distance);
}
if (distance >= 30 ){
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
delay (200);
}
else if (distance >=15 && distance <= 25) {
digitalWrite (4,HIGH);
digitalWrite (5,LOW);
digitalWrite (6,LOW);
digitalWrite (7,LOW);
delay (1000);
}
else if (distance < 15){
digitalWrite (4, LOW);
digitalWrite (5, LOW);
digitalWrite (6,HIGH);
digitalWrite (7,HIGH);
delay (1000);
digitalWrite (4,LOW);
digitalWrite (5,HIGH);
digitalWrite (6,LOW);
digitalWrite (7, LOW);
delay (1000);
}
}
--------------------------------------------------------------------------------------------------------------------------
For assembling the robot please check http://learnhowtomakerobot.blogspot.in/2014/11/a-simple-line-following-robot-without.html
AWESOME! Can't wait to try this. Just want to make certain I am looking at the schematic correctly. Did you jumper the power from one positive to the negative side of the board making it a positive? Also, what size resistors did you use along the motor drive?
ReplyDeleteAWESOME! Can't wait to try this. Just want to make certain I am looking at the schematic correctly. Did you jumper the power from one positive to the negative side of the board making it a positive? Also, what size resistors did you use along the motor drive?
ReplyDeleteArduino: 1.6.3 (Windows 7), Board: "Arduino Uno"
ReplyDeletesketch_may18a.ino: In function 'void setup()':
sketch_may18a.ino:3:12: error: 'trigpin' was not declared in this scope
sketch_may18a.ino:4:12: error: 'echopin' was not declared in this scope
sketch_may18a.ino: In function 'void loop()':
sketch_may18a.ino:16:18: error: 'trigpin' was not declared in this scope
sketch_may18a.ino:22:5: error: 'duration' was not declared in this scope
sketch_may18a.ino:22:23: error: 'echopin' was not declared in this scope
sketch_may18a.ino:24:5: error: 'distance' was not declared in this scope
sketch_may18a.ino:29:7: error: 'distance' was not declared in this scope
Error compiling.
This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
Getting this error code
Arduino: 1.6.3 (Windows 7), Board: "Arduino Uno"
ReplyDeletesketch_may18a.ino: In function 'void setup()':
sketch_may18a.ino:3:12: error: 'trigpin' was not declared in this scope
sketch_may18a.ino:4:12: error: 'echopin' was not declared in this scope
sketch_may18a.ino: In function 'void loop()':
sketch_may18a.ino:16:18: error: 'trigpin' was not declared in this scope
sketch_may18a.ino:22:5: error: 'duration' was not declared in this scope
sketch_may18a.ino:22:23: error: 'echopin' was not declared in this scope
sketch_may18a.ino:24:5: error: 'distance' was not declared in this scope
sketch_may18a.ino:29:7: error: 'distance' was not declared in this scope
Error compiling.
This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
Getting this error code
Hello, I have a question on the robot above. Is there a direct power souce going into the arduino, becuase when I follow the circit Diagram above my arduino looks like it is turned off. If you could get back to me that would be great!
ReplyDeleteThanks, Jacob
yo
ReplyDeleteI am thinking of puting second hc-sr04 sensor.. :P can you help me ?
ReplyDeletegoodf servise
ReplyDeleteour bot was just rapidly turning. any suggestions.. we clearly follwed the circuit diagram
ReplyDeleteFor me its not working pls help im did everything but its just wiggling around when something is really close to him
ReplyDeleteexplain me about distance calculation formula
ReplyDeletewhy these errors while uploading the program to arduino board !! ?
ReplyDeleteit can not be uploaded !! plz help
Arduino: 1.6.0 (Windows 8), Board: "Arduino Uno"
Sketch uses 3,996 bytes (12%) of program storage space. Maximum is 32,256 bytes.
Global variables use 190 bytes (9%) of dynamic memory, leaving 1,858 bytes for local variables. Maximum is 2,048 bytes.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x01
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x01
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x01
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x01
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x01
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x01
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x01
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x01
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x01
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x01
Problem uploading to board.
nice
ReplyDeletehey, i have built an avoider robot with this schematic, when all steps done, the DC motors arent working, so why?? and whats the problem?
ReplyDeleteplaese add new post about voice control obstacle avoiing robot
ReplyDeletedoes this circuit work
ReplyDeletesir i have to only enter this code or something else also after making schematic
ReplyDeletejg
ReplyDeleteola\
ReplyDelete