Shopping Cart

    close

    No products in the cart.

    Return to shop

      Shopping Cart

      close

      No products in the cart.

      Return to shop
        Sale!

        Obstacle Avoiding Robot Kit

        1,799.00 ৳ 1,999.00 ৳ 

        Clear

        Obstacle Avoiding Robot Kit

        This kit is for Obstacle Avoiding Robot, you have to assambel them and progrem them (optonal) and your Robot will be ready to run.
        The robot will avoid all type of obstacle or objects in front of it except thick obstacle, It will make its own road & carry on moving.

        Schematic of Obstacle avoiding Robot using Arduino.
        For the obstacle avoiding robot we are making, we use a 4WD robot car chassis whose wheels are controlled by the motor shield. A servo motor mounted with an ultrasonic sensor is also included where the servo motor is for rotating the ultrasonic sensor from one end to another in order to sense any obstacle in range.

        Obstacle Avoiding Robot using Arduino

        Components
        1 x Arduino Uno,
        1 x 4 wheel robot car kit,
        1 x sg90 servo motor,
        1 x L293D motor control shield,
        1 x Ultrasonic Sensor Holder,
        1 x ultrasonic sensor hc-sr04,
        3 x Female to Female jumper Wires,
        1 x 18650 Battery Holder – 2 Cell ,
        2 x 18650 Battery Cell 3.7V
        1 x on/off switch

         

        Obstacle avoiding robot using arduino and l293d w1rtkgrrac

         

        Code

        Before writing any code make sure you have the AFMotor.h library included in your Arduino IDE. This library is for controlling the Adafruit motor shield used in this setup.

        Other important libraries for this project are the NewPing.h and Servo.h libraries for controlling the ultrasonic sensor and servo motor respectively.

        #include <AFMotor.h>
        #include <NewPing.h>
        #include <Servo.h>

        #define TRIG_PIN A5
        #define ECHO_PIN A4
        #define MAX_DISTANCE 200
        #define MAX_SPEED 190 // sets speed of DC motors
        #define MAX_SPEED_OFFSET 20

        NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

        AF_DCMotor motor1(1, MOTOR12_1KHZ);
        AF_DCMotor motor2(2, MOTOR12_1KHZ);
        AF_DCMotor motor3(3, MOTOR34_1KHZ);
        AF_DCMotor motor4(4, MOTOR34_1KHZ);
        Servo myservo;

        boolean goesForward=false;
        int distance = 100;
        int speedSet = 0;

        void setup() {

        myservo.attach(10);
        myservo.write(115);
        delay(2000);
        distance = readPing();
        delay(100);
        distance = readPing();
        delay(100);
        distance = readPing();
        delay(100);
        distance = readPing();
        delay(100);
        }

        void loop() {
        int distanceR = 0;
        int distanceL = 0;
        delay(40);

        if(distance<=15)
        {
        moveStop();
        delay(100);
        moveBackward();
        delay(300);
        moveStop();
        delay(200);
        distanceR = lookRight();
        delay(200);
        distanceL = lookLeft();
        delay(200);

        if(distanceR>=distanceL)
        {
        turnRight();
        moveStop();
        }else
        {
        turnLeft();
        moveStop();
        }
        }else
        {
        moveForward();
        }
        distance = readPing();
        }

        int lookRight()
        {
        myservo.write(50);
        delay(500);
        int distance = readPing();
        delay(100);
        myservo.write(115);
        return distance;
        }

        int lookLeft()
        {
        myservo.write(170);
        delay(500);
        int distance = readPing();
        delay(100);
        myservo.write(115);
        return distance;
        delay(100);
        }

        int readPing() {
        delay(70);
        int cm = sonar.ping_cm();
        if(cm==0)
        {
        cm = 250;
        }
        return cm;
        }

        void moveStop() {
        motor1.run(RELEASE);
        motor2.run(RELEASE);
        motor3.run(RELEASE);
        motor4.run(RELEASE);
        }

        void moveForward() {

        if(!goesForward)
        {
        goesForward=true;
        motor1.run(FORWARD);
        motor2.run(FORWARD);
        motor3.run(FORWARD);
        motor4.run(FORWARD);
        for (speedSet = 0;
        speedSet < MAX_SPEED; speedSet +=2) // slowly bring the speed up to avoid loading down the batteries too quickly
        {
        motor1.setSpeed(speedSet);
        motor2.setSpeed(speedSet);
        motor3.setSpeed(speedSet);
        motor4.setSpeed(speedSet);
        delay(5);
        }
        }
        }

        void moveBackward() {
        goesForward=false;
        motor1.run(BACKWARD);
        motor2.run(BACKWARD);
        motor3.run(BACKWARD);
        motor4.run(BACKWARD);
        for (speedSet = 0; speedSet < MAX_SPEED; speedSet +=2) // slowly bring the speed up to avoid loading down the batteries too quickly
        {
        motor1.setSpeed(speedSet);
        motor2.setSpeed(speedSet);
        motor3.setSpeed(speedSet);
        motor4.setSpeed(speedSet);
        delay(5);
        }
        }

        void turnRight() {
        motor1.run(FORWARD);
        motor2.run(FORWARD);
        motor3.run(BACKWARD);
        motor4.run(BACKWARD);
        delay(500);
        motor1.run(FORWARD);
        motor2.run(FORWARD);
        motor3.run(FORWARD);
        motor4.run(FORWARD);
        }

        void turnLeft() {
        motor1.run(BACKWARD);
        motor2.run(BACKWARD);
        motor3.run(FORWARD);
        motor4.run(FORWARD);
        delay(500);
        motor1.run(FORWARD);
        motor2.run(FORWARD);
        motor3.run(FORWARD);
        motor4.run(FORWARD);
        }

         

         

         

         

        Variant

        Only Kit, KIt with Code, Rady to Ran

        SKU: N/A Categories: ,
        Sale!