BaupfadEinsteigerEin Wochenende

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.

Technisches Schema: Linienfolger-Roboter bauen: Vom Simulator zur StreckeSENSOR ERROR

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

100%
Bau

Roboter verdrahten

45 Min.

Bau

Aufbauen und echte Strecke fahren

60 Min.

Ziel

Linienfolger fertig

Du hast es gebaut

Bauteile

Tutorials in diesem Pfad

Ü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.