PID-gesteuerter Linienfolger-Roboter (Kit) – Arduino UNO, 5-Kanal-IR, Aluminium-Chassis
Komponenten & Bausatz
| KittenBot Eloxiertes Aluminium-Chassis | ×1 |
| KittenBot RosBot Baseboard (Arduino UNO Basis mit 2× H-Brücke onboard) | ×1 |
| KittenBot Kugelrad-Set (Metallkugel) | ×1 Paar |
| KittenBot Gummireifen mit Motorhalterung | ×1 Paar |
| KittenBot 5-Kanal IR-Linienverfolger-Sensor | ×1 |
| DC-Motoren (im Chassis-Set enthalten) | ×2 |
| 9V-Blockbatterie | ×1 |
| Arduino UNO (steckt auf RosBot Baseboard) | ×1 |
Software
- Arduino IDE
Projektübersicht
Ein robuster Linienfolger-Roboter, der PID-Regelung auf spielerische Weise vermittelt. Das Besondere: Das RosBot Baseboard integriert zwei H-Brücken-Motortreiber – kein separater Motortreiber-Shield nötig. Der 5-Kanal-IR-Sensor liefert präzise Positionsdaten für den PID-Algorithmus.
Hardware-Merkmale
- Chassis: Eloxiertes Aluminium, viele Montagelöcher (4,8mm, LEGO Technic kompatibel) – wiederverwendbar für andere Projekte.
- RosBot Baseboard: Arduino UNO Formfaktor, 2× H-Brücke (STN1110?), liefert mehr Strom als UNO-Pins direkt.
- 5-Kanal-IR-Sensor: 5 Infrarot-Detektoren, höhere Auflösung & Stabilität als 2-3 Kanal Sensoren.
Schritt 1: Mechanischer Aufbau (ca. 15 Min)
- Motoren an Chassis-Seiten montieren, Gummireifen aufstecken.
- 5-Kanal-IR-Sensor vorne am Chassis befestigen (näher am Boden = bessere Erkennung).
- RosBot Baseboard auf Chassis schrauben.
- Kugelrad hinten als Stützrad einbauen.
Schritt 2: Verkabelung
5-Kanal-IR-Sensor → RosBot Baseboard
- VCC → 5V
- GND → GND
- T1–T4 → A0–A3
- T5 → SDA (A4)
Motoren
- Motor A → A+/A-
- Motor B → B+/B-
Stromversorgung: 9V-Batterie an Baseboard-Vin (oder USB für Test).
Schritt 3: Software – PID-Regelung
Zustandsmaschine (Sensor-Auswertung)
Die 5 Sensoren liefern ein 5-Bit-Muster (z. B. B00100 = Mitte auf Linie). Jedes Muster wird einem bias-Wert (-2 … +2) zugeordnet, der die Abweichung von der Linienmitte darstellt.
void stateMachine(int sensorPattern) {
switch (sensorPattern) {
case B00000: case B11111: outlineCnt++; break; // Linie verloren
case B00010: case B00110: bias = 1; break; // leicht rechts
case B00001: case B00011: bias = 2; break; // stark rechts
case B00100: bias = 0; break; // mittig
case B01000: case B01100: bias = -1; break; // leicht links
case B10000: case B11000: bias = -2; break; // stark links
default: outlineCnt++; break;
}
// NeoPixel-Statusanzeige (optional)
// ...
}
PID-Implementierung
float Kp = 25, Ki = 0.15, Kd = 1200;
float error = 0, errorLast = 0, errorInte = 0;
float calcPID(float input) {
error = error * 0.7 + input * 0.3; // Tiefpass-Filter
float errorDiff = error - errorLast;
errorInte = constrain(errorInte + error, -50, 50); // Anti-Windup
float output = Kp * error + Ki * errorInte + Kd * errorDiff;
errorLast = error;
return output;
}
Haupt-Loop
void loop() {
delay(5);
int pattern = readSensorArray(); // Liest 5 Analogwerte, Schwellenwert -> Bitmuster
stateMachine(pattern);
if (outlineCnt > 10) { // Linie verloren -> Stop
setMotorSpeed(0, 0);
} else {
float baseSpeed = 150;
float correction = calcPID(bias);
setMotorSpeed(baseSpeed - correction, baseSpeed + correction);
}
}
PID-Parameter abstimmen
- Kp (Proportional): Erhöhen bis Robot oszilliert, dann halbieren.
- Kd (Differenziell): Erhöhen um Oszillation zu dämpfen.
- Ki (Integral): Klein halten, nur für stationäre Abweichung (z. B. ungleiche Motoren).
- Serieller Plotter nutzen:
Serial.print(error); Serial.print(' '); Serial.println(output);
Code-Repository
Vollständiger Sketch & Bibliotheken: GitHub LinefollowRobot
Schaltplan
Im Artikel enthalten (Fritzing-Datei).
Fazit
Ein exzellentes Einstiegs-Kit für mobile Robotik & Regelungstechnik. Durch das integrierte Baseboard entfällt Verdrahtungsaufwand, der Fokus liegt auf Algorithmus-Verständnis. Das Aluminium-Chassis ist langlebig und erweiterbar – ideal für Bildung, Wettbewerbe oder als Plattform für komplexere autonome Roboter.
Herstellungsprozess
- Robotik im 21. Jahrhundert: Verteilte Systeme, Telepräsenz & Weltraumforschung
- Basketball: Von Naismiths Erfindung 1891 zu modernen Produktionstechniken
- Golf: Ein globaler Sport mit reicher Tradition und modernem Reiz
- Pi-betriebenen Roboter mit Live-Video-Streaming bauen und steuern
- Wittmann Battenfeld stellt WX153 vor: Fortgeschrittene Roboterlinie für Hochkraft-Spritzgießautomatisierung
- FANUC erweitert SCARA‑Roboter‑Portfolio: Sechs Modelle, 3–20 kg Traglast, 400–1.100 mm Reichweite
- Montageroboter: Effizienz, Präzision & Qualität in der Fertigung
- Industrieroboter für Materialtransport – Linienfolger mit RFID & Ultraschall
- PID-Regelung für 3D-Robotergreifer in MATLAB/Simulink
- Verpackungsqualitätssicherung optimieren: Fortschrittliche automatisierte Kontrollsysteme