Linienfolger-Roboter bauen: Vom Simulator zur Strecke
Ein funktionierender Linienfolger, den du von Ende zu Ende verstehst – vom Auslesen der Linie bis zum PID-Regler, abgestimmt zuerst in der Simulation.
Ein Linienfolger ist der beste erste Roboter: Er tastet, entscheidet und bewegt sich, doch jeder Teil davon ist einfach genug, um ihn vollständig zu verstehen. Dieser Lernpfad behandelt ihn genau so – als Weg. Statt einer Stückliste und einem Verdrahtungsfoto zum Nachbauen schaltest du einen Knoten nach dem anderen frei und lernst den Mechanismus hinter jedem Schritt, bevor du ihn baust.
Du beginnst damit zu verstehen, wie aus einer Reihe von Infrarot-Sensoren (IR) ein einzelner Lenkfehler wird und wie ein PID-Regler (Proportional-Integral-Differential) diesen Fehler in sanfte Bewegung verwandelt. Fünf Sensoren sind der ideale Kompromiss für einen ersten Aufbau: Drei funktionieren bei niedriger Geschwindigkeit, liefern aber eine grobe Position, acht liefern feinere Auflösung bei hohem Tempo, erschweren aber Verdrahtung und Kalibrierung. Der gewichtete Mittelwert, der diese Messwerte zu einer einzigen vorzeichenbehafteten Zahl zusammenfasst – negativ, wenn die Linie links liegt, positiv, wenn sie rechts liegt –, ist das einzige Signal, das die Lenkregelung je sieht; deshalb zählt es mehr, diese Zahl richtig hinzubekommen, als ein bestimmtes Board zu wählen.
Dieses Signal muss dann zu zwei unterschiedlichen Radgeschwindigkeiten werden. Differenzialantrieb bedeutet, dass der Roboter lenkt, indem er seine Räder unterschiedlich schnell dreht, und der Technikbaum führt dich vom reinen Motortreiber über Pulsweitenmodulation (PWM) bis zur Kinematik, die eine einzelne Korrektur in linke und rechte Befehle verwandelt. Du siehst auch, wo die Odometrie hingehört: Das Zählen der Radbewegung sagt dir, wie weit du gefahren bist, und warum diese Schätzung ohne externe Referenz driftet – ein Thema, das in jedem Labyrinthroboter wiederkehrt.
Bevor du etwas ausgibst oder eine Fehlverdrahtung riskierst, stimmst du das Verhalten im Browser-Simulator ab: Du zeichnest eine Strecke, änderst Sensoranzahl und -abstand und ziehst an den Proportional-, Integral- und Differential-Verstärkungen, während du Fehler, Rundenzeit und Zeit auf der Strecke beobachtest. Der Simulator ist ein Lehrmodell, keine Hardware: Er nimmt eine flache Binärstrecke mit hohem Kontrast, ideale Kalibrierung, keine Änderung des Umgebungslichts und eine perfekt periodische Schleife ohne Radschlupf an. Hier gefundene Verstärkungen übertragen sich als guter Startpunkt, aber du wirst das echte Array trotzdem kalibrieren und auf deinem eigenen Klebeband neu abstimmen.
Erst dann verdrahtest du den echten Roboter: Reflexionsausgänge an analogfähige Pins, PWM und Richtung an den L298N (Logikpins können keinen Motorstrom liefern – die duale H-Brücke schaltet stattdessen den echten Strom), eine separate Motorversorgung auf eigener Schiene und eine gemeinsame Masse, die jedes Modul verbindet. Der letzte Knoten ist Montage und Iteration auf einer echten Klebebandstrecke, wo du die Simulator-Verstärkungen überträgst und an Untergrund, Akkuspannung und Schleifentiming anpasst. Dieselbe Struktur kehrt später im Linien-Labyrinthlöser wieder – der eine Entscheidungsschicht auf diesen Folger aufsetzt –, daher zahlt sich dieses solide Fundament doppelt aus.
Folge dem Technikbaum unten von oben nach unten. Jeder Knoten öffnet sich, sobald seine Voraussetzungen erfüllt sind, und dein Fortschritt wird auf diesem Gerät gespeichert, sodass du den Roboter über ein Wochenende bauen kannst, ohne den Faden zu verlieren.
Stückliste
| Bauteil | Menge | Ca. Kosten | Hinweise |
|---|---|---|---|
| Arduino Uno oder Nano | 1 | $5–8 | Ein Nano ist hier die bessere Wahl: Er führt A6 und A7 heraus, sodass ein 8-Kanal-Array passt |
| IR-Reflexionsarray | 1 | $4–10 | 5 Kanäle zum Lernen, 8, wenn du später schnell fahren willst. Bestehe auf analogem Ausgang |
| L298N oder TB6612FNG | 1 | $2–4 | TB6612FNG beim Neukauf – er behält die ~1,5 V, die der L298N als Wärme verbrennt |
| TT-Getriebemotor | 2 | $4 | Die gelben. Encoder-Versionen kosten $2 mehr und ersparen einen Umbau |
| 2WD-Chassis mit Rädern und Stützrad | 1 | $6–10 | Meist als Bausatz mit den Motoren verkauft |
| Akkupack | 1 | $3–8 | 6×AA NiMH oder 2×18650 mit geschütztem Halter. Kein 9-V-Block |
| Jumperkabel, Klebeband, Schalter | — | $5 | 19 mm mattes Isolierband für die Strecke |
Gesamt: ca. $30–45. Das wertvollste Upgrade in dieser Liste sind Motoren mit Encodern – nicht für dieses Projekt, das sie nicht braucht, sondern weil aus einem Linienfolger fast immer ein Linien-Labyrinthlöser wird, und der braucht sie.
Für die Strecke: mattes schwarzes Band auf mattem hellem Boden. Glänzendes Band reflektiert im falschen Winkel wie Weiß, und ein glänzender Boden tut dasselbe – das ergibt einen Roboter, der auf einer Oberfläche funktioniert und auf einer anderen nicht, aus Gründen, die wie Software aussehen.
Wie alles verbunden wird
| Von | Nach | Warum es zählt |
|---|---|---|
Array VCC, GND |
Arduino 5 V, GND | Die Emitter sind hier die Stromverbraucher – 100–200 mA bei einem 8-Kanal-Array |
Array OUT1–8 |
A0–A7 | Analog, ein Kanal pro Pin. Deshalb schlägt ein Nano einen Uno |
Treiber PWMA, PWMB |
D9, D3 | Müssen PWM-fähige Pins sein |
| Treiber-Richtungspins | D8, D7, D5, D4 | Beliebige digitale Pins |
Treiber STBY (nur TB6612FNG) |
D12, auf HIGH | Offen gelassen passiert gar nichts, völlig lautlos |
Akku + |
Treiber VM / +12V |
Niemals der 5-V-Pin des Arduino |
Akku − |
Treiber-GND, Arduino-GND, Array-GND | Eine gemeinsame Masse, sternförmig auf einen Punkt geführt |
Zwei Fehler verursachen die meisten Erstlauf-Probleme, und keiner erzeugt eine Fehlermeldung. Eine fehlende gemeinsame Masse bedeutet, dass die Richtungssignale keine Referenz haben – nichts bewegt sich, obwohl alles richtig verdrahtet aussieht. Motorstrom durch den Arduino lässt die 5-V- Schiene einbrechen, setzt das Board zurück und tarnt sich als Softwareabsturz.
Baue ihn in Meilensteinen
Verdrahte nicht den ganzen Roboter und debugge ihn dann. Jede Stufe unten hat einen Test, und eine Stufe, die ihren Test nicht besteht, versteckt sich in der nächsten.
| Nr. | Meilenstein | Der Test | Bestanden, wenn |
|---|---|---|---|
| 1 | Motoren drehen | Jedes Rad vorwärts und rückwärts mit Duty 200 ansteuern, aufgebockt | Beide drehen beide Richtungen; notiere den Duty, bei dem jeder anläuft |
| 2 | Totband gemessen | Duty von 0 in Fünferschritten hochfahren | Du hast zwei Zahlen, und sie unterscheiden sich – oft um 5–10 |
| 3 | Geradeausfahrt | Beide Räder 2 m vorwärts auf dem Boden fahren | Unter 10 cm Drift; sonst ein Motor per Software trimmen |
| 4 | Sensoren lesen | Alle Kanäle über Linie und Boden ausgeben | Die zwei Messwerte jedes Kanals unterscheiden sich um Hunderte Counts |
| 5 | Kalibrierung | 3 s über die Linie wischen, dann normierte Werte ausgeben | 0 auf Boden, nahe 1000 auf der Linie, auf jedem Kanal |
| 6 | Position | Roboter von Hand über die Linie bewegen, gewichtete Position ausgeben | Glatt und monoton – keine Sprünge am Sensorübergang |
| 7 | Nur P | Nur mit Proportionalverstärkung fahren, ohne I oder D | Folgt einer sanften Kurve, pendelt etwas. Pendeln ist hier erwartet |
| 8 | D dazu | Differentialanteil erhöhen, bis das Pendeln dämpft | Ruhige Spurhaltung auf Geraden und sanften Kurven |
| 9 | Volle Strecke | Geschlossene Runde mit enger Kurve fahren | Runden ohne Linienverlust |
| 10 | Linienverlust-Recovery | Roboter während der Fahrt von der Linie heben | Er dreht dorthin weiter, wohin er schon drehte, statt geradeaus zu fahren |
Meilenstein 6 wird gerne übersprungen – zu Unrecht. Springt das Positionssignal, wenn die Linie zwischen zwei Sensoren wechselt, kann kein Regelkreis abgestimmt werden – die Unstetigkeit sieht aus wie ein plötzlicher riesiger Fehler, und der Roboter zuckt genau an dieser Stelle jede Runde. Ein Sprung dort bedeutet entweder, dass das Array nicht pro Kanal kalibriert ist, oder dass die Schwelle eines Kanals ihn zu früh ausschließt.
Wie gut aussieht
| Messung | Anfänger-Aufbau | Gut abgestimmt |
|---|---|---|
| Geschwindigkeit auf Geraden | 0,15–0,25 m/s | 0,4–0,6 m/s |
| Pendelamplitude auf Geraden | ±15 mm | Unter ±5 mm |
| Engste Kurve, die er hält | ~30 cm Radius | ~15 cm Radius |
| Schleifenrate | 50 Hz | 200 Hz oder besser |
| Runden bis zum Linienverlust | Einige | Unbegrenzt, bis der Akku einbricht |
Die Schleifenrate verdient Aufmerksamkeit, weil sie alles andere lautlos begrenzt. Eine Regelung mit
50 Hz sieht die Linie alle 20 ms, und bei 0,5 m/s sind das 10 mm Weg zwischen zwei Entscheidungen.
Jedes delay() aus der Schleife zu entfernen und nur die genutzten Sensoren zu lesen, bringt einen
ersten Aufbau typischerweise von 50 Hz auf mehrere Hundert – und die Spurhaltung verbessert sich, ohne eine Verstärkung anzufassen.
Fehlersuche
| Symptom | Wahrscheinliche Ursache | Lösung |
|---|---|---|
| Nichts bewegt sich | Keine gemeinsame Masse oder STBY low |
Alle Massen verbinden; STBY auf HIGH |
| Board setzt beim Anfahren zurück | Motorstrom durch den Arduino | Separate Motorversorgung; nur Masse gemeinsam |
| Fährt geradeaus über die Linie | Array nicht kalibriert oder zu hoch | Auf diesem Untergrund neu kalibrieren; Fahrhöhe 3–8 mm |
| Folgt, pendelt aber stark | P zu hoch oder D zu niedrig | P halbieren, dann D erhöhen |
| Schwingt sich immer weiter auf | P viel zu hoch | Senken, bis er sich beruhigt, dann von dort abstimmen |
| Driftet auf Geraden ab | Motorunterschied | Per Software trimmen, dann bei Fahrgeschwindigkeit prüfen |
| Zieht nur bei niedriger Drehzahl weg | Zwei verschiedene Losbrechschwellen | Totband jedes Motors messen und separat kompensieren |
| Verliert die Linie in scharfen Kurven | Zu schnell oder Array zu nah an den Rädern | Langsamer; Array für mehr Vorlauf nach vorn setzen |
| Fährt bei Linienverlust davon | Fehler bei Linienverlust auf 0 gesetzt | Letzten Fehler halten – null bedeutet „mittig“ |
| Läuft, wird aber mit der Zeit schlechter | Akku bricht ein, Verstärkungen passen nicht mehr | Erwartet; Drehzahlregelkreis schließen oder kürzere Läufe |
| Versagt in Fensternähe | Infrarot-Umgebungslicht | Emitter-aus-Subtraktion oder Array abschirmen |
Wie es weitergeht
Der Linienfolger ist bewusst ein Fundament, und drei Richtungen bauen direkt darauf auf.
Kreuzungserkennung hinzufügen, und daraus wird ein Linien-Labyrinthlöser – dieselbe PID-Regelung darunter, mit einer dünnen Entscheidungsschicht darüber, die Abzweigungen klassifiziert und sich die Route merkt. Das ist das beste nächste Projekt, weil es alles hier wiederverwendet und genau eine neue Idee hinzufügt.
Encoder hinzufügen, und du kannst eine befohlene Drehzahl statt eines befohlenen Duty halten – das beseitigt das „wird schlechter, wenn der Akku leer wird“-Problem vollständig und macht die Abstimmung über einen ganzen Lauf stabil.
Schneller fahren – schwieriger als es klingt, und am lehrreichsten. Tempo legt jede Näherung offen: Die Schleifenrate wird zur Grenze, das Array muss für Vorlauf weiter vorn sitzen, Kurven müssen vorher statt nachher abgebremst werden, und die Reifen beginnen zu rutschen. Letzteres ist die Mauer – siehe Radschlupf und Traktion.
Projekt-Roadmap
Der Baupfad
Folge dem Technikbaum von den Bauteilen bis zum funktionierenden Roboter. Jeder Knoten wird freigeschaltet, sobald seine Voraussetzungen erledigt sind, und dein Fortschritt wird auf diesem Gerät gespeichert.
0 / 15 erledigt
Bauteile
- ControllerArduino UnoDas gutmütige 8-Bit-Board, über das die meisten die Robotik kennenlernen.
- SensorIR Reflectance Sensor ArrayEine Reihe Infrarotaugen, die einem Roboter sagt, wo die Linie ist.
- TreiberL298N MotortreiberDie Doppel-H-Brücke, die schwache Logikpins in Motorleistung verwandelt.
- AktorDC Gearmotor (TT Motor)Der gelbe Getriebemotor, der aus nacktem Chassis ein fahrendes Roboterauto macht.
- Chassis2WD Robot ChassisDie Plattform, auf die zwei Motoren, eine freie Rolle und die Elektronik geschraubt werden.
- StromversorgungRobot Battery & Power PackDer Unterschied zwischen einem Roboter, der läuft, und einem, der ständig neu startet.
Tutorials in diesem Pfad
- Einsteiger · 20 Min. LesezeitLinienfolger-Roboter bauen: Sensoren bis PID-LenkungVon IR-Reflexionssensoren über gewichtete Fehler bis zu sanfter PID-Lenkung – so arbeitet ein Linienfolger wirklich.
- Einsteiger · 20 Min. LesezeitIR-Reflexionsarray lesen für LinienfolgerVerwandle eine Reihe IR-Sensoren in eine einzige, glatte Linienposition, nach der du lenken kannst.
- Einsteiger · 18 Min. LesezeitGleichstrommotoren steuern mit PWM und H-BrückeVerdrahte und steuere einen bürstenbehafteten Gleichstrommotor sicher mit PWM, H-Brücke und realistischen Stromgrenzen.
- Mittelstufe · 20 Min. LesezeitDifferenzial-Odometrie aus RadencodernLinke und rechte Radbewegung in eine mobile Roboterpose integrieren, dann Drift erkennen und kalibrieren.
- Einsteiger · 18 Min. LesezeitEinen PID-Regler abstimmen: Eine praktische AnleitungEine praxisnahe Reihenfolge zum Abstimmen der P-, I- und D-Verstärkung ohne Raten – und wie man jeden Schritt live testet.
Üben, bevor du verdrahtest
Im Live-Simulator abstimmen
Der Baupfad führt durch ein Browser-Labor. Bring das Verhalten hier in Ordnung und übertrage deine Einstellungen dann auf den echten Roboter.
Häufig gestellte Fragen
Muss ich Bauteile kaufen, bevor ich mit diesem Projekt beginne?
Nein. Die gesamte Sensorik- und Regelungshälfte des Projekts läuft im Browser-Simulator, sodass du verstehen kannst, wie ein Linienfolger die Linie liest, und seine PID-Verstärkungen abstimmen kannst, bevor du etwas kaufst. Nur die letzten Bauschritte – Verdrahtung und Montage – brauchen den echten Arduino, das IR-Array und den Motortreiber.
Wie lange dauert es, einen Linienfolger-Roboter zu bauen?
Mit vorhandenen Bauteilen ist ein erster funktionierender Linienfolger ein Wochenendprojekt: ein Nachmittag, um Sensorik und Regelung zu lernen und im Simulator abzustimmen, dann ein paar Stunden, um Arduino, IR-Array und Motortreiber zu verdrahten und auf einer Klebebandstrecke zu iterieren. Die Abstimmung aus der Simulation überträgt sich direkt, was den größten Teil des Ausprobierens erspart.
Was ist der schwierigste Teil beim Bau eines Linienfolgers?
Fast immer der Regelkreis, nicht die Verdrahtung. Sanften Kurven ohne Pendeln zu folgen bedeutet, die PID-Verstärkungen an die eigenen Motoren, die Sensorhöhe und die Geschwindigkeit anzupassen. Genau deshalb lässt dich dieser Lernpfad zuerst im Simulator abstimmen – damit die Verstärkungen schon nah dran sind, bevor der Roboter je den Boden berührt.
Warum pendelt mein Linienfolger um die Linie?
Pendeln bedeutet meist: Proportionalverstärkung zu hoch, Differentialdämpfung zu niedrig, oder der Roboter fährt schneller, als es seine Sensor-Aktualisierungsrate erlaubt. Reduziere zuerst die Grundgeschwindigkeit, senke dann Kp um etwa 20 % und gib etwas Kd dazu. Auf Hardware fügt ein langes delay() in der Schleife Totzeit hinzu, die den D-Anteil wirkungslos macht, egal wie hoch du ihn stellst – halte das Regelintervall konstant.
Wie viele IR-Sensoren braucht ein Linienfolger?
Fünf sind ein praxistauglicher Start: genug, um eine glatte gewichtete Position zu berechnen und zu sehen, wohin die Linie kurvt, während Verdrahtung und Positionsberechnung überschaubar bleiben. Drei Sensoren reichen für eine langsame Übungsstrecke mit breiter Linie; Wettbewerbsroboter nutzen oft acht für feinere Auflösung bei hohem Tempo, doch jeder zusätzliche Sensor ist eine weitere Kalibrierung und ein weiteres Kabel, das stimmen muss.
Wie kalibriere ich das IR-Reflexionsarray?
Fahre das Array vor einem Lauf langsam über schwarzes Klebeband und weißes Board und notiere pro Sensor Minimal- und Maximalwert, dann normiere die Live-Messwerte gegen diesen Bereich. Kalibrierung zählt, weil Sensorhöhe, Oberflächenreflexion und Raumlicht die Rohwerte verschieben – und ein unkalibriertes Array verzerrt die gewichtete Position, selbst wenn der Roboter mittig steht.