How to make a multi-function Arduino robot

**Build Your Own Arduino Robot** Create a versatile robot with an Arduino board as its brain. Connect motors, sensors (like ultrasonic, line-following, or IR), and a power source. Program the Arduino to control the robot's movements and responses to sensor inputs. **Key Features:** * **Obstacle Avoidance:** Detect and avoid obstacles using sensors. * **Line Following:** Follow a predefined path. * **Remote Control:** Control the robot wirelessly. * **Voice Control:** Command the robot with voice commands. Start with basic functions and gradually add complexity. The world of robotics is vast, and your creativity is the limit!

1/15/20242 মিনিট পড়ুন

OK, let’s do this project step by step. The required components are given below.

  • Arduino UNO board x 1

  • L293D motor driver x 1

  • Ultrasonic sensor x 1

  • Bluetooth module x 1

  • Servo motor x 1

  • Gear motor x 4

  • Robot wheel x 4

  • Li-ion battery holder x 1

  • Li-ion battery x 2

  • Jumper wires

  • Foam board

  • Cardboard

  • AF motor library — Download

  • The complete program of this project – Download

    ......................ARDUINO CODE.................

    /*obstacle avoiding, Bluetooth control, voice control robot car. Home Page /

    #include <Servo.h> #include <AFMotor.h> #define Echo A0 #define Trig A1 #define motor 10 #define Speed 170 #define spoint 103 char value; int distance; int Left; int Right; int L = 0; int R = 0; int L1 = 0; int R1 = 0; Servo servo; AF_DCMotor M1(1); AF_DCMotor M2(2); AF_DCMotor M3(3); AF_DCMotor M4(4); void setup() { Serial.begin(9600); pinMode(Trig, OUTPUT); pinMode(Echo, INPUT); servo.attach(motor); M1.setSpeed(Speed); M2.setSpeed(Speed); M3.setSpeed(Speed); M4.setSpeed(Speed); } void loop() { //Obstacle(); //Bluetoothcontrol(); //voicecontrol(); } void Bluetoothcontrol() { if (Serial.available() > 0) { value = Serial.read(); Serial.println(value); } if (value == 'F') { forward(); } else if (value == 'B') { backward(); } else if (value == 'L') { left(); } else if (value == 'R') { right(); } else if (value == 'S') { Stop(); } } void Obstacle() { distance = ultrasonic(); if (distance <= 12) { Stop(); backward(); delay(100); Stop(); L = leftsee(); servo.write(spoint); delay(800); R = rightsee(); servo.write(spoint); if (L < R) { right(); delay(500); Stop(); delay(200); } else if (L > R) { left(); delay(500); Stop(); delay(200); } } else { forward(); } } void voicecontrol() { if (Serial.available() > 0) { value = Serial.read(); Serial.println(value); if (value == '^') { forward(); } else if (value == '-') { backward(); } else if (value == '<') { L = leftsee(); servo.write(spoint); if (L >= 10 ) { left(); delay(500); Stop(); } else if (L < 10) { Stop(); } } else if (value == '>') { R = rightsee(); servo.write(spoint); if (R >= 10 ) { right(); delay(500); Stop(); } else if (R < 10) { Stop(); } } else if (value == '') { Stop(); } } } // Ultrasonic sensor distance reading function int ultrasonic() { digitalWrite(Trig, LOW); delayMicroseconds(4); digitalWrite(Trig, HIGH); delayMicroseconds(10); digitalWrite(Trig, LOW); long t = pulseIn(Echo, HIGH); long cm = t / 29 / 2; //time convert distance return cm; } void forward() { M1.run(FORWARD); M2.run(FORWARD); M3.run(FORWARD); M4.run(FORWARD); } void backward() { M1.run(BACKWARD); M2.run(BACKWARD); M3.run(BACKWARD); M4.run(BACKWARD); } void right() { M1.run(BACKWARD); M2.run(BACKWARD); M3.run(FORWARD); M4.run(FORWARD); } void left() { M1.run(FORWARD); M2.run(FORWARD); M3.run(BACKWARD); M4.run(BACKWARD); } void Stop() { M1.run(RELEASE); M2.run(RELEASE); M3.run(RELEASE); M4.run(RELEASE); } int rightsee() { servo.write(20); delay(800); Left = ultrasonic(); return Left; } int leftsee() { servo.write(180); delay(800); Right = ultrasonic(); return Right; }