🤖

Robot Line Follower z Arduino – krok po kroku

📅 28 stycznia 2025 ⏱ 14 min czytania 🏷️ Arduino/ESP 👁 3 odsłon
← Arduino/ESP
← Arduino / ESP

Robot jeżdżący po czarnej linii to klasyczny projekt wprowadzający w robotykę. Czujniki IR wykrywają granicę linii, a Arduino decyduje o skręcie. Gotowy robot startuje na zawodach dla szkół i kółek technicznych.

Części

CzęśćCena
Arduino Uno~30 zł
Moduł L298N (mostek H)~8 zł
2× silnik DC z przekładnią + koła~20 zł
Moduł 5× czujników IR TCRT5000~8 zł
Podwozie akrylowe + 1 kółko swobodne~12 zł
Pakiet Li-Po 7,4 V 1000 mAh~30 zł

Połączenia

L298NArduino
IN1, IN2 (lewy silnik)D2, D3
IN3, IN4 (prawy silnik)D4, D5
ENA (PWM lewy)D9
ENB (PWM prawy)D10
5 V (logika)5 V Arduino
12 V (silniki)Li-Po 7,4 V+
Czujnik IR (pin OUT)Arduino
Skrajnie lewyA0
LewyA1
ŚrodkowyA2
PrawyA3
Skrajnie prawyA4

Algorytm PID – kod

#define PRĘDKOSC_BAZA 180
#define KP 40
#define KI  0
#define KD 20

int pozycja_poprzednia = 0;
float calka = 0;

int czytajCzujniki() {
    bool c[5];
    for (int i = 0; i < 5; i++) c[i] = (analogRead(A0 + i) < 500);
    if (!c[0]&&!c[1]&&!c[2]&&!c[3]&&!c[4]) return pozycja_poprzednia;
    int suma = 0, waga = 0;
    int wagi[] = {-2, -1, 0, 1, 2};
    for (int i = 0; i < 5; i++) { suma += c[i] * wagi[i]; waga += c[i]; }
    return waga ? suma * 100 / waga : pozycja_poprzednia;
}

void setup() {
    for (int p : {2,3,4,5,9,10}) pinMode(p, OUTPUT);
}

void loop() {
    int blad = czytajCzujniki();
    calka += blad;
    int pochodna = blad - pozycja_poprzednia;
    int korekta = KP * blad + KI * calka + KD * pochodna;
    pozycja_poprzednia = blad;

    int lewy  = constrain(PRĘDKOSC_BAZA + korekta, 0, 255);
    int prawy = constrain(PRĘDKOSC_BAZA - korekta, 0, 255);

    digitalWrite(2, HIGH); digitalWrite(3, LOW); analogWrite(9,  lewy);
    digitalWrite(4, HIGH); digitalWrite(5, LOW); analogWrite(10, prawy);
}
✅ Dostrajanie: zwiększaj KP aż robot będzie reagował, potem dodawaj KD by wyeliminować oscylacje. KI zostawiaj 0 na start.

Trasa testowa

Wydrukuj lub narysuj czarną taśmę klejącą (20–25 mm) na białym kartonie. Ostre zakręty 90° i pętle to dobry test algorytmu PID.

Tagi: arduino elektronika pid robot