automatische Erkennung von Wänden und Fahrtrichtungsänderung
Julian Biber, Andre Felten | März – Juni 2019
Aufagbenstellung
Pflichtaufgaben
Die Aufgabe besteht darin, ein Fahrzeug zu bauen, welches in der Lage ist, eine Verlangsamung der Fortbewegungsgeschwindigkeit und folgend eine Fahrtrichtungsumschaltung durchzuführen, sobald jeweils eine bestimmte Entfernung zu einem Hindernis unterschritten wird. Dies wird hinsichtlich des EVA-Prinzips (Eingabe, Verarbeitung, Ausgabe) folgend umgesetzt:
Eingabe
Die Eingabe dient zur Auswertung der Umwelt, sodass Analoge Distanzen zu digitalen Werden umgewandelt werden können. Dies wird mittels eines Ultraschallsensors für Distanzmessungen durchgeführt.
Verarbeitung
Die vom Sensor ausgegeben Digitalen Werte werden mit einem Microcontroller „Arduino UNO“ verarbeitet und Befehle werden an das Ausgabe-Modul gegeben.
Ausgabe
Die vom Arduino ausgegeben Befehle werden mithilfe von Motoren und zusätzlich benötigten elektrischen Komponenten zur Bewegung und Fahrtrichtungsänderung genutzt
Optionaler Aufgabenbereich
Der optionale Aufgabenbereich ist nicht Pflicht, kann frei gewählt werden und in diesem Aufgabenberiech dürfen dem autonomen Gefährt weitere Funktionen hinzugefügt werden.
Kettenfahrzeug
Anstatt eines konventionellen, ungelenkten Fahrzeuges, welches zur Fahrrichtungsumkehrung die Fahrtrichtung wechselt, entschieden wir uns nach abgeschlossener Projektplanung für ein Kettenfahrzeug, welches für die Fahrtrichtungsumkehrung auf der Stelle mithilfe des Kettenantriebs dreht.
Dokumentation der Projektplanung
Projektstart
20.03.2019
Klassenverband: Das Projekt wurde gestartet, indem wir gemeinschaftlich die Pflichtaufgabenstellung besprachen. Außerdem wurden Gruppen gebildet, bei der sich unsere Gruppe für einer 2-Personen-Gruppe entschied.
Planung der generellen Materialbeschaffung
27.03.2019 – Aufgabenbesprechung
Julian & Andre: Die Gruppe besprach, wie die Materialen beschafft werden sollten. Geplant war, dass zu Testzwecken die vom Lehrer Herr Kirchner ausgegeben Materialien (Arduino, Sensoren, Leitungen) teilweise genutzt werden und für Testzwecke, sowie finale Umsetzung gruppeneigene Materialen verwendet werden, welche von Andre zur Verfügung gestellt werden.
Planung, Umsetzung und Entwicklungsstopp des Prototyps „Type01“
03.04.2019 – 17.04.2019
Julian & Andre: Zusammen wurde nachgeforscht, wie der Prototyp „Type01“ anzusteuern war. Dieser war ein ferngesteuertes RC-Auto, wobei ein Signal durch die Fernbedienung an einen verbauten Microcontroller gegeben wurde, bei dem die eingehenden Funksignale zu Signalen für die Ansteuerung des 3-phasigen Wechselstrom-Motors genutzt wurde. Die einzusetzende Verarbeitungseinheit „Arduino UNO“ sollte die Fernbedienung und den Microcontroller im RC-Auto ersetzen.
Andre: Es war möglich, dem 3-phasen-Elektromotor eine funktionierende Betriebsspannung zu geben, Sensoren und den Arduino zu montieren.
Julian: Es konnte weder Eingabe- noch Ausgabesignal des RC-Auto-internen Microcontrollers nachsimuliert werden, da diese vom Hersteller nicht veröffentlicht wurden und auch nicht genau genug messbar und reproduzierbar sind.
Die Weiterentwicklung des Projektes an „Type01“ wurde gestoppt.
Planung, Umsetzung und Programmierung des Protoyps „Type02“
24.04.2019 – Materialbeschaffung zu Type02
Julian & Andre: Besprechen, welches Fahrzeug für den Neustart des Projektes in Frage kommt und Einigung auf ein Kettenfahrzeug mit DC-Elektromotoren, welche von einem Arduino, ausgestattet mit einem „Motorshield“, angesteuert werden.
Das aufgebaute Kettenfahrzeug „Type02“ war bei Andre zu Hause schon vorhanden und er sollte dieses zum nächsten Termin mitbringen.
08.05.2019 & 15.05.2019 – Ansteuerung der DC-Motoren, Auswertung des Ultraschallsensors
Andre: Informationen zur Ansteuerung der DC-Motoren mit Arduino-Befehlen im Internet sammeln und eine Ansteuerung der DC-Motoren des Kettenfahrzeugs realisieren.
Julian: Informationen zur Beschaltung und Auswertung des Ultraschallsensors im Internet sammeln und eine Auswertung der gemessenen Distanzen mit dem Ultraschallsensor realisieren.
22.05.19 – Programmieren zur Verbindung aller Komponenten
Julian & Andre: Besprechen des Programmes zur Verbindung von Eingabe-, Verarbeitungs- und Ausgabemodulen. Dafür wurden die Funktionsfähigkeit der Programme für Ultraschallsensor (Eingabe) und DC-Motoren des Kettenfahrzeuges (Ausgabe) überprüft und anschließend zu einem sinnvollen Programm verarbeitet. Resultierend aus der Zusammenarbeit war ein Fahrzeugsystem, welches mithilfe der EVA-Module und des am 22.05.19 geschriebenen Programmes in der Lage war beim Fahren Wände zu erkennen, und darauf in Form von Geschwindigkeitsreduktion mit folgender Fahrtrichtungsumkehr zu reagieren.
Resultierend war ein Programm, welches die Pflichtaufgaben erfüllt.
29.05.19 – Optimieren des Fahrtrichtungsumkehr-Ablaufs & Beschaffung von RBG-LEDs
Andre: Informationen über die Beschaffung von LEDs zur Indikation und visuellen Ausgabe des aktuellen Erkennungs-Zustandes des Kettenfahrzeuges sammeln. Dafür wurden adressierbare RGB-LEDs als einzusetzendes Mittel gewählt.
Julian: Optimierung des Fahrtrichtungsumkehr-Ablaufes durchführen, sodass eine nahezu perfekte 180°-Drehung stattfindet. Resultierend war eine verbesserte Fahrtrichtungsumkehr mit angepasster Geschwindigkeit für das Wendemanöver.
Resultierend war ein Programm, welches Pflichtaufgaben erfüllt und die optionale Funktion realisiert.
05.06.19 – Dokumentation anfertigen & Programmierung der adressierbaren RGB-LEDs
Andre: Über die erworbenen, adressierbaren RGB-LEDs informieren und beginnen, ein funktionierendes Programm zur farblichen Zustandsindikation zu entwickeln.
Julian: Benötigte Informationen und Medien für die Dokumentation finden und beginnen, die Dokumentation anzufertigen.
12.06.19 – Dokumentation anfertigen & finale Funktionsfähigkeit von „Type02“ überprüfen
Andre: Da die Programmierung und Fehleranalyse der RGB-LEDs zur Zustandsindikation zu lange benötigen würde und zu aufwendig war, wurde dieses Vorhaben abgebrochen und die finale Funktionsfähigkeit in vollem Umfang getestet.
Julian: Benötigte Informationen und Medien für die Dokumentation finden und fortführen, die Dokumentation anzufertigen.
Das Projektfahrzeug ist fertiggestellt.
Fahrzeugkonzept
Das Fahrzeug sollte wie in der Aufgabenstellung beschrieben in der Lage sein, Wände zu erkennen, deren Distanz festzustellen, digital mit dem Mikroprozessor zu verarbeiten und selbst die DC-Elektromotoren zum Forttrieb, sowie zur Fahrtrichtungsumkehr anzusteuern. Hierfür werden die EVA-Module (Eingabe, Verarbeitung, Ausgabe) verwendet. Der Ultraschallsensor dient dabei zur Distanzmessung, der Mikroprozessor des Arduino UNO verarbeitet die gemessenen Daten und gibt resultierend Signale an den Shield, welcher die Lastströme zur Ansteuerung der DC-Elektromotoren schaltet.
Beschreibung der Einzelkomponenten
Eingabe
Ultraschallsensor HC-SR04
Der Ultraschallsensor dient zur Erfassung der Distanzen von Kettenfahrzeug zur nächsten Wand.
Dieser Sensor eignet sich zur Entfernungsmessung von 2cm bis zu 3m. Die Auflösung beträgt dabei 3mm, eine Versorgungsspannung von 5V bei einer Stromaufnahme von <2mA wird benötigt. Damit arbeitet dieser Sensor mit TTL-Pegeln und ist kompatibel mit dem Arduino UNO. Eine negative Flanke am Trigger-Eingang (Pin2) für min. 10µs löst den Messzyklus aus. Nach ca. 250µs wird ein 40kHz Burst-Signal für 200µs ausgesendet. Echo-Pin (Pin3) geht sofort auf HIGH-Pegel und der Sensor wartet auf das Echo. Wenn nach spätestens 200ms kein Echo festgestellt werden kann, wird die erfolgslose Messung als „Echo still high“ mit dem Wert distance = 0 ausgegeben. Für den nächsten Messzyklus wird wieder eine negative Flanke am Trigger-Eingang erwartet.
Rechenbeispiel zum Ultraschallsensor
X: 200µs / Div
Y1: 2V / Div
Y2: 5V / Div
CH1: Gelb ist der Echo-Pin
CH2: Blau ist der Trigger-Pin
Die negative Flanke triggert den Messvorgang, nach 250µs Wartezeit wird ein 200µs langes Burst-Signal ausgegeben, Echo Pin wird in diesem Moment auf HIGH-Pegel gesetzt. Hier benötigt das Signal zurückzukehren.