Webotricks
Published

Make 4-in-1 smart robot car using Arduino Nano board

In this project, we will learn how to make a 4-in-1 smart robot car using an Arduino Nano board

BeginnerProtip2 hours97
Make 4-in-1 smart robot car using Arduino Nano board

Things used in this project

Hardware components

Arduino Nano board
×1
HC-05 Bluetooth module
×1
IC base
×1
5mm LED
×2
Barrel jack socket
×1
5V Passive Buzzer
×1
Gear motor
×2
65mm Robot wheel
×2
Caster wheel
×1
Lithium Battery (3.7V)
×2
Lithium Battery Holder
×2
Ultrasonic Sensor
×1
Servo Motor (SG90)
×1
Jumper Wires
×1

Story

Read more

Code

Code

Arduino
/*Bluetooth control and Obstacle avoidance car with Arduino Nano
   Home Page
*/
#include <Servo.h>
Servo servo;
int Spoint = 75; //servo center point
int Lvalue;
int Rvalue;
int dis;
int count = 0;

long duration;
int obstacleCount = 0; 

#define ENA 5
#define ENB 6

#define IN1 7
#define IN2 8
#define IN3 9
#define IN4 10

#define LED1 11
#define LED2 12
#define Buzzer 13

#define trig A1
#define echo A0

#define Speed 180

void setup() {
  Serial.begin(9600);
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(Buzzer, OUTPUT);
  pinMode(trig, OUTPUT);
  pinMode(echo, INPUT);
  servo.attach(3);//define servo pin
  servo.write(Spoint);//servo motor start point
  delay(2000);
  start();
  
}

void loop() {
//obstacle ();
//bluetoothControl();
}

//ultrasonic sensor readings
int distance () {
  digitalWrite(trig, LOW);
  delayMicroseconds(4);
  digitalWrite(trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig, LOW);

  int t = pulseIn(echo, HIGH);//input pulse and save it veriable
  int cm = t / 29 / 2; //time convert distance
  return cm;

}

void obstacle () {
  dis = distance ();
  if (dis <= 9) {
    Stop();
    Backward();
    delay(50);
    Stop();
    Lvalue = leftsee();
    Serial.println(Lvalue);
    Rvalue = rightsee();
    Serial.println(Rvalue);
    if (Lvalue < Rvalue) {
      Right();
      delay(300);
      Stop();
    } else if (Lvalue > Rvalue) {
      Left();
      delay(300);
      Stop();
    }
  } else {
    Forward();
  }

}

void bluetoothControl(){
    if (Serial.available() > 0) {
    char value = Serial.read();
    Serial.println(value);

    if (value == 'U') {
      Forward();
    } else if (value == 'D') {
      Backward();
    } else if (value == 'S') {
      Stop();
    } else if (value == 'L') {
      Left();
    } else if (value == 'R') {
      Right();
    } else if (value == '1') {
      digitalWrite(LED1, HIGH);
      digitalWrite(LED2, HIGH);
    } else if (value == '2') {
      digitalWrite(LED1, LOW);
      digitalWrite(LED2, LOW);
    } else if(value == '3'){
      digitalWrite(Buzzer, HIGH);
    } else if(value == '4'){
      digitalWrite(Buzzer, LOW);
    }
  }
}

void Forward() {
  analogWrite(ENA, Speed);
  analogWrite(ENB, Speed);
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, HIGH);
  digitalWrite(IN4, LOW);
}
void Backward() {
  analogWrite(ENA, Speed);
  analogWrite(ENB, Speed);
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, HIGH);
}
void Stop() {
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, LOW);
}
void Left() {
  analogWrite(ENA, Speed);
  analogWrite(ENB, Speed);
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, HIGH);
}
void Right() {
  analogWrite(ENA, Speed);
  analogWrite(ENB, Speed);
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);
  digitalWrite(IN3, HIGH);
  digitalWrite(IN4, LOW);
}

void start() {
  servo.write(0);
  delay(500);
  servo.write(180);
  delay(500);
  for (byte a = 0; a < 5; a++) {
    servo.write(50);
    delay(100);
    servo.write(110);
    delay(100);
  }
  servo.write(Spoint);
}

int leftsee() {
  servo.write(150);
  dis = distance ();
  delay(1000);
  return dis;

}
int rightsee() {
  servo.write(30);
  dis = distance ();
  delay(1000);
  servo.write(Spoint);
  return dis;
}

Credits

Webotricks
24 projects • 9 followers
Contact

Comments

Please log in or sign up to comment.