MINT - Unterricht  mit  Arduino und anderen

Linienfolger

Beim Zusammenstellen der Materialien sollte das Augenmerk stets in die Richtung gehen, Programmieraufwand und Basteln gleichermaßen Raum zu geben. Die Verwendung von natürlichen Materialien wie Holz und die damit verbundenen Erfahrungen mit Werkzeugen und Werkstoff sollten stets Vorrang haben vor der Verwendung vorgefertigter Teile. Das Zusägen von Platten und Leisten, die Auswahl geeigneter Komponenten wie Rundhölzer und Schraubösen zum Anbringen von Rädern und Achsen, die Konstruktion beweglicher Teile für die Lenkung passen in den Lehrplan und sind allemal lehrreicher als das Zusammenstecken vorgefertigter Normteile nach einem vorgegebenen Plan.

Diesem Gedanken folgend handelt es sich auch hier um das in den vorangestellten Kapiteln beschriebene Fahrzeug, das zusätzlich mit Reflexionssensor und Halterung ausgestattet werden muss. Dargestellt ist die Unterseite.

Bei dem Sensor handelt es sich um einen QTR-1A, der wie folgt mit dem Calliope verbunden wird:

GND am Sensor wird mit GND am Calliope, VCC mit einem Pin, der 3V liefern kann (hier der 5. Pin in der unteren Reihe), OUT mit dem Pin C17 verbunden.

Für die Programmierung ist es nötig eine Variable zu erzeugen. Dazu wird im MakeCode-Editor auf die Kategorie "Variablen" und in dem sich öffnenden Menü auf "Erstelle eine Variable..." geklickt. Als Name ist hier "hell" gewählt worden.

Dieser Baustein und zwei weitere finden sich nach dieser Aktion im Auswahlmenü.

Für dieses Projekt gebraucht werden "hell" und "setze hell auf".

Auch Logik-Bausteine werden benötigt. Dazu aus dieser Kategorie den "wenn - dann - ansonsten" Block auswählen und - gleich danach - unter "Vergleiche" den "0 < 0" Block. Die Abbildung rechts zeigt alle oben genannten Bausteine.

Der "setze hell auf 0" Baustein wird als erster unter "dauerhaft" eingefügt. Darunter folgt der "wenn-dann-ansonsten" Block. Darin - und zwar in das Feld mit der Bezeichnung "wahr" fügt sich der "0 < 0" Block. Die folgende Abbildung zeigt dieses Zwischenergebnis.


Der vorletzte etwas schwieriger zuzuordnende Block findet sich unter "Fortgeschritten" und "Pins" als dritter von oben "analoge Werte von Pin P1". Er wird im "setzte hell auf" Block in das weiße Feld mit der "0" eingefügt.

Schließlich muss noch die Variable "hell" in das linke weiße Feld mit der "0" eingefügt werden und die "0" im rechten weißen Feld auf "500" gesetzt werden. Hier das Ergebnis dieser Aktionen.

Die übrigen Schritte sollten aus der folgenden Abbildung des kompletten Programmcodes ablesbar sein.

Im Programmcode wird festgelegt, dass "hell" die Messwerte annehmen soll, die vom Sensor über "Pin C17" abgegriffen werden. Die Werte können zwischen 0 und 1023 variieren. Ist der Untergrund hell, ist der Wert hoch, ist er dunkel, ist er deutlich kleiner. In der "wenn - dann - ansonsten" Bedingung ist ein Schwellenwert von 500 vorgegeben. Ist der Wert größer als 500, dann laufen beide Motoren, fällt er unter 500, bleibt Motor A stehen.

Setzt man ein solches Fahrzeug in ein Feld, das von einem etwa 3 cm breiten schwarzen Rand umgeben ist, stellt dieser Streifen eine Grenze dar: Immer wenn der Sensor die Linie zwischen hell und dunkel überfährt, stoppt die Programmierung einen Motor, was das Fahrzeug in das innere des Feldes zurücklenkt.

Viele Linienfolger benutzen zwei Sensoren, die jeweils einen Motor steuern. Liegt der schwarze Pfad genau zwischen den Sensoren, laufen beide Motoren und das Fahrzeug fährt geradeaus. Kommt ein Sensor über Schwarz, wird der jeweiligen Motor kurz gestoppt und so die Richtung korrigiert.

Wer mehr über Linienfolger wissen möchte, der findet hier weitere Anregungen.

 


Den Reflexionssensor gibt es hier zu kaufen.