DIY Edge Avoider Robot
Table Edge Avoidance Robot
Components and supplies
4
Maker Essentials - Micro-motors & Grippy Wheels
2
18650 battery
1
Battery Holder, 18650 x 2
2
IR Transceiver (Generic)
1
Arduino UNO
4
DC Motor, 12 V
1
Android device
1
L293D motor shield
1
HC-05 Bluetooth Module
Tools and machines
1
Hot glue gun (generic)
Apps and platforms
1
Arduino IDE
Project description
Code
Code
arduino
1// https://www.youtube.com/channel/UCaXI2PcsTlH5g0et67kdD6g // 2// Edge Avoider Robot // 3// By MOHD SOHAIL // 4 5#include <AFMotor.h> 6 7#define IR1 A2 8#define IR2 A1 9 10 11AF_DCMotor motor1(1, MOTOR12_1KHZ); 12AF_DCMotor motor2(2, MOTOR12_1KHZ); 13AF_DCMotor motor3(3, MOTOR34_1KHZ); 14AF_DCMotor motor4(4, MOTOR34_1KHZ); 15 16 17char command; 18 19void setup() 20{ 21 Serial.begin(9600); //Set the baud rate to your Bluetooth module. 22 pinMode(IR1, INPUT); 23 pinMode(IR2, INPUT); 24 25} 26 27void loop(){ 28 29 if(Serial.available() > 0){ 30 command = Serial.read(); 31 Stop(); 32 33 Serial.println(command); 34 35 36 switch(command){ 37 case 'F': 38 forward(); 39 break; 40 case 'B': 41 back(); 42 break; 43 case 'L': 44 left(); 45 break; 46 case 'R': 47 right(); 48 break; 49 case 'S': 50 Stop(); 51 break; 52 } 53 54 55 56 int Right = digitalRead(IR1); 57 int Left = digitalRead(IR2); 58 59 if(Right == 1 || Left == 1 ) { 60 motor1.setSpeed(255); 61 motor1.run(BACKWARD); 62 motor2.setSpeed(255); 63 motor2.run(BACKWARD); 64 motor3.setSpeed(255); 65 motor3.run(BACKWARD); 66 motor4.setSpeed(255); 67 motor4.run(BACKWARD); 68 69 }else if(Right == 0 || Left == 0) { 70 command = Serial.read(); 71 } 72 } 73} 74 75void forward() 76{ 77 motor1.setSpeed(150); //Define maximum Speed 78 motor1.run(FORWARD); //rotate the motor clockwise 79 motor2.setSpeed(150); //Define maximum Speed 80 motor2.run(FORWARD); //rotate the motor clockwise 81 motor3.setSpeed(150);//Define maximum Speed 82 motor3.run(FORWARD); //rotate the motor clockwise 83 motor4.setSpeed(150);//Define maximum Speed 84 motor4.run(FORWARD); //rotate the motor clockwise 85} 86 87void back() 88{ 89 motor1.setSpeed(150); //Define maximum Speed 90 motor1.run(BACKWARD); //rotate the motor anti-clockwise 91 motor2.setSpeed(150); //Define maximum Speed 92 motor2.run(BACKWARD); //rotate the motor anti-clockwise 93 motor3.setSpeed(150); //Define maximum Speed 94 motor3.run(BACKWARD); //rotate the motor anti-clockwise 95 motor4.setSpeed(150); //Define maximum Speed 96 motor4.run(BACKWARD); //rotate the motor anti-clockwise 97} 98 99void left() 100{ 101 motor1.setSpeed(200); //Define maximum Speed 102 motor1.run(BACKWARD); //rotate the motor anti-clockwise 103 motor2.setSpeed(200); //Define maximum Speed 104 motor2.run(BACKWARD); //rotate the motor anti-clockwise 105 motor3.setSpeed(200); //Define maximum Speed 106 motor3.run(FORWARD); //rotate the motor clockwise 107 motor4.setSpeed(200); //Define maximum Speed 108 motor4.run(FORWARD); //rotate the motor clockwise 109} 110 111void right() 112{ 113 motor1.setSpeed(200); //Define maximum Speed 114 motor1.run(FORWARD); //rotate the motor clockwise 115 motor2.setSpeed(200); //Define maximum Speed 116 motor2.run(FORWARD); //rotate the motor clockwise 117 motor3.setSpeed(200); //Define maximum Speed 118 motor3.run(BACKWARD); //rotate the motor anti-clockwise 119 motor4.setSpeed(200); //Define maximum Speed 120 motor4.run(BACKWARD); //rotate the motor anti-clockwise 121} 122 123void Stop() 124{ 125 motor1.setSpeed(0); //Define minimum Speed 126 motor1.run(RELEASE); //stop the motor when release the button 127 motor2.setSpeed(0); //Define minimum Speed 128 motor2.run(RELEASE); //rotate the motor clockwise 129 motor3.setSpeed(0); //Define minimum Speed 130 motor3.run(RELEASE); //stop the motor when release the button 131 motor4.setSpeed(0); //Define minimum Speed 132 motor4.run(RELEASE); //stop the motor when release the button 133} 134
Code
arduino
1// https://www.youtube.com/channel/UCaXI2PcsTlH5g0et67kdD6g // 2// 3 Edge Avoider Robot // 4// By MOHD SOHAIL // 5 6#include <AFMotor.h> 7 8#define 9 IR1 A2 10#define IR2 A1 11 12 13AF_DCMotor motor1(1, MOTOR12_1KHZ); 14AF_DCMotor 15 motor2(2, MOTOR12_1KHZ); 16AF_DCMotor motor3(3, MOTOR34_1KHZ); 17AF_DCMotor motor4(4, 18 MOTOR34_1KHZ); 19 20 21char command; 22 23void setup() 24{ 25 Serial.begin(9600); 26 //Set the baud rate to your Bluetooth module. 27 pinMode(IR1, INPUT); 28 pinMode(IR2, 29 INPUT); 30 31} 32 33void loop(){ 34 35 if(Serial.available() > 0){ 36 37 command = Serial.read(); 38 Stop(); 39 40 Serial.println(command); 41 42 43 44 switch(command){ 45 case 'F': 46 forward(); 47 48 break; 49 case 'B': 50 back(); 51 break; 52 case 'L': 53 54 left(); 55 break; 56 case 'R': 57 right(); 58 break; 59 60 case 'S': 61 Stop(); 62 break; 63 } 64 65 66 67 68 int Right = digitalRead(IR1); 69 int Left = digitalRead(IR2); 70 71 72 if(Right == 1 || Left == 1 ) { 73 motor1.setSpeed(255); 74 motor1.run(BACKWARD); 75 76 motor2.setSpeed(255); 77 motor2.run(BACKWARD); 78 motor3.setSpeed(255); 79 80 motor3.run(BACKWARD); 81 motor4.setSpeed(255); 82 motor4.run(BACKWARD); 83 84 85 }else if(Right == 0 || Left == 0) { 86 command = Serial.read(); 87 88 } 89 } 90} 91 92void forward() 93{ 94 motor1.setSpeed(150); //Define 95 maximum Speed 96 motor1.run(FORWARD); //rotate the motor clockwise 97 motor2.setSpeed(150); 98 //Define maximum Speed 99 motor2.run(FORWARD); //rotate the motor clockwise 100 101 motor3.setSpeed(150);//Define maximum Speed 102 motor3.run(FORWARD); //rotate 103 the motor clockwise 104 motor4.setSpeed(150);//Define maximum Speed 105 motor4.run(FORWARD); 106 //rotate the motor clockwise 107} 108 109void back() 110{ 111 motor1.setSpeed(150); 112 //Define maximum Speed 113 motor1.run(BACKWARD); //rotate the motor anti-clockwise 114 115 motor2.setSpeed(150); //Define maximum Speed 116 motor2.run(BACKWARD); //rotate 117 the motor anti-clockwise 118 motor3.setSpeed(150); //Define maximum Speed 119 motor3.run(BACKWARD); 120 //rotate the motor anti-clockwise 121 motor4.setSpeed(150); //Define maximum Speed 122 123 motor4.run(BACKWARD); //rotate the motor anti-clockwise 124} 125 126void left() 127{ 128 129 motor1.setSpeed(200); //Define maximum Speed 130 motor1.run(BACKWARD); //rotate 131 the motor anti-clockwise 132 motor2.setSpeed(200); //Define maximum Speed 133 motor2.run(BACKWARD); 134 //rotate the motor anti-clockwise 135 motor3.setSpeed(200); //Define maximum Speed 136 137 motor3.run(FORWARD); //rotate the motor clockwise 138 motor4.setSpeed(200); 139 //Define maximum Speed 140 motor4.run(FORWARD); //rotate the motor clockwise 141} 142 143void 144 right() 145{ 146 motor1.setSpeed(200); //Define maximum Speed 147 motor1.run(FORWARD); 148 //rotate the motor clockwise 149 motor2.setSpeed(200); //Define maximum Speed 150 151 motor2.run(FORWARD); //rotate the motor clockwise 152 motor3.setSpeed(200); //Define 153 maximum Speed 154 motor3.run(BACKWARD); //rotate the motor anti-clockwise 155 motor4.setSpeed(200); 156 //Define maximum Speed 157 motor4.run(BACKWARD); //rotate the motor anti-clockwise 158} 159 160 161void Stop() 162{ 163 motor1.setSpeed(0); //Define minimum Speed 164 motor1.run(RELEASE); 165 //stop the motor when release the button 166 motor2.setSpeed(0); //Define minimum 167 Speed 168 motor2.run(RELEASE); //rotate the motor clockwise 169 motor3.setSpeed(0); 170 //Define minimum Speed 171 motor3.run(RELEASE); //stop the motor when release the 172 button 173 motor4.setSpeed(0); //Define minimum Speed 174 motor4.run(RELEASE); 175 //stop the motor when release the button 176} 177
Downloadable files
Circuit Diagram
Circuit Diagram

Comments
Only logged in users can leave comments