Asosiy mazmunga o‘tish
Constell Shop
Chiziq bo‘ylab yuruvchi robot 3D

Loyiha qo‘llanmalari

Chiziq bo‘ylab yuruvchi robot

Ikkita KY-033 sensori pol yuzasini ko‘radi: qora chiziq qaysi tomonga qochsa, robot o‘sha tomonga buriladi. Oq qog‘ozga qora izolenta yopishtiring — trassa tayyor.

Murakkablik
Oson
Vaqt
~120 min
Detallar
12 ta detal
Qadamma-qadam
4 qadam
  • Infraqizil aks ettirish sensori bilan ishlash
  • Oddiy boshqaruv algoritmi
  • Sensorni sozlash (potensiometr)

Detallar

Yana kerak bo‘ladi

  • — Kompyuter va Arduino IDE (arduino.cc dan bepul)
  • — UNO uchun USB kabel (UNO SMD ning «+ USB kabel» varianti)
  • — Kichik krestli otvertka
  • — Qora izolenta va oq qog‘oz yoki karton

Qadamma-qadam

  1. 01

    Mashinani yig‘ing

    Shassi, motorlar, L298N va quvvat — «Robot-mashina» qo‘llanmasidagi kabi.

  2. 02

    Sensorlarni o‘rnating

    Ikkala KY-033 ni old qismga, poldan 5–10 mm balandlikda, bir-biridan chiziq kengligidan biroz kengroq (2–3 sm) masofada pastga qaratib o‘rnating.

  3. 03

    Ulang va sozlang

    Chap sensor OUT → D12, o‘ng sensor OUT → D11, VCC → 5V, GND → GND. Quvvat bering va har bir sensorning potensiometrini burang: oq ustida LED yonsin, qora chiziq ustida o‘chsin.

  4. 04

    Kodni yuklang va trassada sinang

    Robotni chiziq ustiga, sensorlar chiziqning ikki tomonida turadigan qilib qo‘ying. Burilishlarda chiqib ketsa, SPEED ni kamaytiring.

Ulanish

  • Quvvat (+)
  • Yer (−)
  • Signal pini
  • I²C / SPI shinasi
L298N ⟷ UNO8 ta sim
  1. L298NENA→UNOD5 ENA ustidagi jumperni olib tashlang
  2. L298NIN1→UNOD7
  3. L298NIN2→UNOD8
  4. L298NIN3→UNOD2
  5. L298NIN4→UNOD4
  6. L298NENB→UNOD6 ENB jumperini ham olib tashlang
  7. L298NGND→UNOGND umumiy yer — majburiy
  8. L298N5V→UNO5V UNO ni drayver orqali quvvatlaydi
L298N ⟷ Chap motor1 ta sim
  1. L298NOUT1OUT2→Chap motor
L298N ⟷ O‘ng motor1 ta sim
  1. L298NOUT3OUT4→O‘ng motor
Batareya ⟷ L298N2 ta sim
  1. Batareya+(2×18650)→L298N12V
  2. Batareya−→L298NGND
KY-033 ⟷ UNO4 ta sim
  1. KY-033chapOUT→UNOD12
  2. KY-033o‘ngOUT→UNOD11
  3. KY-033VCC→UNO5V
  4. KY-033GND→UNOGND

Kod

sketch.ino
// motorlar (L298N)
const int ENA = 5, IN1 = 7, IN2 = 8;   // chap
const int ENB = 6, IN3 = 2, IN4 = 4;   // o‘ng

void motors(int left, int right) {     // -255 … 255
  digitalWrite(IN1, left >= 0);  digitalWrite(IN2, left < 0);
  digitalWrite(IN3, right >= 0); digitalWrite(IN4, right < 0);
  analogWrite(ENA, abs(left));   analogWrite(ENB, abs(right));
}

void setupMotors() {
  int pins[] = {ENA, IN1, IN2, ENB, IN3, IN4};
  for (int p : pins) pinMode(p, OUTPUT);
  motors(0, 0);
}

const int LEFT = 12, RIGHT = 11;   // HIGH = qora chiziq ustida
const int SPEED = 150, TURN = 170;

void setup() {
  setupMotors();
  pinMode(LEFT, INPUT); pinMode(RIGHT, INPUT);
  delay(1500);
}

void loop() {
  bool l = digitalRead(LEFT), r = digitalRead(RIGHT);
  if (!l && !r)      motors(SPEED, SPEED);    // chiziq sensorlar orasida
  else if (l && !r)  motors(-TURN / 2, TURN); // chiziq chap sensor ostida: chapga buriling
  else if (!l && r)  motors(TURN, -TURN / 2); // o‘ng sensor ostida: o‘ngga buriling
  else               motors(0, 0);            // ikkalasi qora: chorraha yoki marra
}

Agar biror narsa ishlamasa

  • Robot chiziqni sezmaydi: sensorlar juda baland — 5–10 mm ga tushiring va potensiometrni qayta sozlang.
  • Teskari tomonga buriladi: chap va o‘ng sensor simlarini (D12/D11) almashtiring.
  • Quyosh nuri ostida ishlamaydi: infraqizil sensorlar kuchli yorug‘likni yoqtirmaydi — xonada sinang.

Keyingi qadamlar

  • Uchinchi sensor qo‘shib, burilishlarni silliqroq qiling
  • PID boshqaruvni o‘rganing — tezroq va aniqroq