Tekko BDSimSimulatorProjects

বাধা এড়িয়ে চলা রোবটObstacle Avoiding Robot using Arduino

HC-SR04 প্রতি ১০০ ms এ সামনের দূরত্ব মাপে। ২০ cm এর বেশি হলে দুই চাকা সামনে চলে; কাছে কিছু এলে রোবট থামে, ০.৪ সেকেন্ড পিছায়, তারপর ডানে ঘোরে। Simulator এ distance slider টেনে সামনে দেয়াল বসাও।

The HC-SR04 measures the distance ahead every 100 ms. Above 20 cm both wheels drive forward; closer than that the robot stops, reverses for 0.4 s and turns right. Drag the distance slider in the simulator to put a wall in front of it.

▶ ফ্রি চালিয়ে দেখো / Run it free Parts অর্ডার করো (WhatsApp)

সার্কিট ডায়াগ্রাম · Circuit diagram

Obstacle Avoiding Robot using Arduino circuit diagram — Arduino Uno, Ultrasonic distance sensor (HC-SR04), Motor driver L298N, Gear motor (yellow TT), 9 V battery, Jumper wires

যা যা লাগবে · Parts you need

সব part একসাথে · All parts in one box: obstacle avoiding robot kit complete

তার লাগানো · Wiring

Ultrasonic distance sensor (HC-SR04) VCC→Arduino Uno 5V
Ultrasonic distance sensor (HC-SR04) GND→Arduino Uno GND
Ultrasonic distance sensor (HC-SR04) TRIG→Arduino Uno D6
Ultrasonic distance sensor (HC-SR04) ECHO→Arduino Uno D7
Motor driver L298N IN1→Arduino Uno D8
Motor driver L298N IN2→Arduino Uno D9
Motor driver L298N IN3→Arduino Uno D10
Motor driver L298N IN4→Arduino Uno D11
9 V battery +→Motor driver L298N 12V
Motor driver L298N GND→9 V battery -
Motor driver L298N GND→Arduino Uno GND.3
Motor driver L298N OUT1→Gear motor (yellow TT) +
Motor driver L298N OUT2→Gear motor (yellow TT) -
Motor driver L298N OUT3→Gear motor (yellow TT) +
Motor driver L298N OUT4→Gear motor (yellow TT) -

Code (Arduino C++)

// Obstacle avoiding robot: drive forward; if something is closer than 20 cm,
// stop, back up a little, turn right, then carry on.
const int trig = 6, echo = 7;
const int IN1 = 8, IN2 = 9, IN3 = 10, IN4 = 11;

void drive(int a1, int a2, int b1, int b2) {
  digitalWrite(IN1, a1); digitalWrite(IN2, a2);
  digitalWrite(IN3, b1); digitalWrite(IN4, b2);
}
void forward()   { drive(HIGH, LOW, HIGH, LOW); }
void backward()  { drive(LOW, HIGH, LOW, HIGH); }
void turnRight() { drive(HIGH, LOW, LOW, HIGH); }
void stopAll()   { drive(LOW, LOW, LOW, LOW); }

long distanceCm() {
  digitalWrite(trig, LOW);  delayMicroseconds(2);
  digitalWrite(trig, HIGH); delayMicroseconds(10);
  digitalWrite(trig, LOW);
  return pulseIn(echo, HIGH) / 58;
}

void setup() {
  pinMode(trig, OUTPUT);
  pinMode(echo, INPUT);
  pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  long d = distanceCm();
  Serial.print("Distance: "); Serial.print(d); Serial.println(" cm");
  if (d < 20) {
    stopAll();   delay(200);
    backward();  delay(400);
    turnRight(); delay(400);
  } else {
    forward();
  }
  delay(100);
}

আরো project · More projects