Obstacle Avoiding Robot

by jairawat in Circuits > Arduino

737 Views, 0 Favorites, 0 Comments

Obstacle Avoiding Robot

Screenshot 2021-12-12 at 4.25.50 PM.png
back.jpeg
top.jpeg

In my previous instructables I made a virtual obstacle avoiding circuit using tinkercad, in this instructables I will tell you how to make this obstacle avoiding robot.

Supplies

jumper wires male to male.jpeg
jumper wires.jpeg
motor driver.jpeg
motor.jpeg
arduino.jpeg
battery holder.jpeg
nickel-alloy-nuts.jpeg
castor.jpeg

Supplies-

-Jumper wires (male to male)

-Jumper wires (male to female)

-Motor Driver

- Hobby motor and wheels

-Arduino with cable

-Castor wheel

-AA battery holder

-Nuts and Bolts

Assembling the Body of the Robot

chasis.jpeg
chasis back.jpeg

Attach the chasis as shown in the picture above. You can make your own using cardboard, wood, mdf board or you can buy the sparklebox obstacle avoider robot kit to get the readymade cutouts and assemble them.

link to buy sparklebox obstacle avoider robot kit- https://mysparklebox.com/educational-toys/robotics/obstacle-avoiding-robot-ideal-for-age-9-years-and-above

Attach the Legs to Chasis

motor1

Attach the legs of our robot i.e. motors to the chasis by nuts and bolts and attach the wheels to the motor.

Attach the Castor Wheel to the Chasis

castor

To give support to the wheels add a castor wheel using 4 screws and 2 hex spacers

Giving Brain to the Robot

arduino

Think of a human without a brain, impossible huh it is the same case for robots as well all robots need a brain to tell all the components what to do by coding the brain in this project we will use arduino as the brain. Use 2 set of nuts and bolts connecting them diagonally to attach the brain to the robot

Attaching Motor Driver to Chasis

motor driver

Now we will attach a motor driver behind the arduino using 2 nuts and bolts by connecting them diagonally as we did in the case of arduino.

Giving the Robot Its Power Source

battery holder

We will use a 4 batteries AA battery holder to be used as the power source of our robot which would be connected to the robot by a double sided tape.

Making Connections

Making connections
Screenshot 2021-12-11 at 1.54.13 PM.png

Connecting wires is the most important step to make a robot because if your wiring are incorrect it could also lead to damage of your components I have attached the virtual circuit and also a dedicated video to wiring please refer to them, we will also attach the eyes of the robot i.e. ultrasonic distance sensor and fix it in the holes for the eyes.

Programming

programming

Code for obstacle avoiding robot to be copied in arduino IDE-

#define trigPin 6      

#define echoPin 7      

#define MLa 8        //left motor 1st pin

#define MLb 9         //left motor 2nd pin

#define MRa 10        //right motor 1st pin

#define MRb 11        //right motor 2nd pin

long duration, distance;


void setup() {

 Serial.begin(9600);

 pinMode(MLa, OUTPUT);   

 pinMode(MLb, OUTPUT);

 pinMode(MRa, OUTPUT);

 pinMode(MRb, OUTPUT);

 pinMode(trigPin, OUTPUT);    

 pinMode(echoPin, INPUT);     

}

void loop() 

{

 Serial.begin(9600);

 digitalWrite(trigPin, LOW);

 delayMicroseconds(2);  

 digitalWrite(trigPin, HIGH);    

 delayMicroseconds(10);

 duration = pulseIn(echoPin, HIGH);     

 distance = duration / 58.2;            // Get Distance

 Serial.println(distance);

 delay(10);

 if (distance > 15)        // Condition when obstacle is not near than 10cm

 {

  digitalWrite(MRa, HIGH);    // Move Forward

  digitalWrite(MRb, LOW);

  digitalWrite(MLa, HIGH);                 

  digitalWrite(MLb, LOW);                            

 }

 else if ((distance < 10)&&(distance > 0))      // Condition when obstacle is near than 10cm 

 {

  digitalWrite(MRb, LOW);   //Stop         

  digitalWrite(MRa, LOW);

  digitalWrite(MLb, LOW);                 

  digitalWrite(MLa, LOW);

  delay(100);

  digitalWrite(MRa, LOW);   // Move Backward       

  digitalWrite(MRb, HIGH);

  digitalWrite(MLa, LOW);                 

  digitalWrite(MLb, HIGH);

  delay(500);

  digitalWrite(MRb, LOW);    //Stop         

  digitalWrite(MRa, LOW);

  digitalWrite(MLb, LOW);                 

  digitalWrite(MLa, LOW);  

  delay(100);  

  digitalWrite(MLa, LOW);   // Move RIGHT  

  digitalWrite(MLb, HIGH);  

  digitalWrite(MRa, HIGH);                 

  digitalWrite(MRb, LOW);  

  delay(500);

 }


}

JUST HAVE FUN

checking

OBSTACLE AVOIDING ROBOT rules!