Arduino Mikrocontroller: Selbstfahrendes Auto
Selbstfahrendes Auto von Schülern gebaut und programmiert
Inspiriert durch den NWT-Unterricht in Klasse 10 haben sich Fabian Henssler und Fabian Hertel im Informatikunterricht der Klasse 12 ein weiterführendes Projekt überlegt, das nun im Herbst 2015 umgesetzt wurde. Ihr Ziel war es, ein Fahrzeug zu bauen, welches
1. autonom einer Linie auf dem Boden folgt,
2. sowohl einer hellen Linie als auch einer dunklen Linie folgen kann,
3. mit unterschiedlichen Geschwindigkeiten fahren kann,
4. auf unterschiedliche Lichtverhältnisse reagieren kann und
5. selbstständig zurücksetzt, wenn es vom Kurs abkommt.
Video
auf dunkler Linie: https://www.youtube.com/watch?v=YfBn-ELiBpE
auf heller Linie: https://www.youtube.com/watch?v=xij_kKHqUZc
Die Umsetzung erfolgte mit Hilfe folgender Hard- und Software:
Hardware
Abb. 2: Fünf Infrarot-Sensoren auf der Unterseite des vorderen Auslegers
|
1. Fünf Infrarot-Sensoren
Fünf nebeneinanderliegende IR-Sensoren (siehe Abb. 2) sind so angebracht, dass das 5 cm breite Klebeband unter einem oder zwei Sensoren liegen kann. Entsprechend eignet sich ein Abstand von 3,33 cm zwischen den Sensoren. Diese senden Infrarotstrahlung auf den Boden aus. Je heller der Untergrund, desto mehr Licht wird reflektiert. So kann die Software zwischen hell und dunkel unterscheiden. Mit den Daten kann die Position der Linie berechnet und daraus der Einschlagwinkel für die Servolenkung berechnet werden. |
|
|
Abb. 3: Der Mikrocontroller Arduino Duemilanove
|
2. Antrieb und Lenkung
Als Grundlage für das Projekt dient ein ferngesteuertes Auto. Dadurch kann auf die Servolenkung, den Motor und den Akku zugegriffen werden. Ursprünglich waren die Kontakte dieser Einheiten mit dem Receiver (Empfänger der Signale der Fernsteuerung) verbunden. Diese Aufgabe übernimmt in diesem Fall der Mikrocontroller Arduino Duemilanove. |
|
|
Abb. 4: Rechts oben (unter den Kabeln) zeigt das Display den aktuellen Menüpunkt
|
3. Display
Das Display besteht aus einer 7-Segment-LED. Aufgrund der geringen Steckplatzanzahl des Mikrocontrollers mussten LEDs kombiniert werden, sodass die Anzeige Werte von „-3“ bis „+3“ anzeigen kann. Diese Anzeige führt durch das Menu und zeigt Fehler an. |
Software
Die Regelung des Fahrverhaltens übernimmt ein von den Schülern selbst geschriebenes Programm (317 Zeilen Code), das auf den Arduino Mikrocontroller hochgeladen wurde.
Abb. 5: Der Aufbau des Menüs
|
1. Menü
Sieben Menüpunkte bieten die Möglichkeit, ohne einen angeschlossenen Computer das Mess- und Fahrverhalten zu verstellen. So kann das Fahrzeug den Streckeneigenschaften angepasst werden. So lässt sich zum Beispiel verstellen, ob das Auto einer weißen oder schwarzen Linie folgen soll.
|
Abb. 6: Selbstständiges Gegenlenken beim Rücksetzen nach Verlust des Linienkontakts
|
2. Fahrschleife
Während der Fahrt befindet sich der Mikrocontroller in einer Schleife, welche verlassen wird, wenn keine Linie mehr erkannt wird und Korrekturen durchgeführt worden sind. Zu Beginn jedes Schleifendurchgangs werden die Helligkeiten unter den Sensoren gemessen. Aus diesen wird ermittelt, unter welchen Sensoren sich die Linie befindet. Daraus wird berechnet, wie es lenken und wie schnell es fahren soll. Wenn keine Linie erkannt wurde, beginnt es mit Korrekturen:
Die Schritte zwei und drei werden nur durchgeführt, wenn das Auto die Linie zur Seite verlassen haben sollte.
|
Bewertung
Das Projekt wurde als besondere Lernleistung (GFS) im Wahlfach Informatik der Klasse 12 gewertet.