AlphaBot: Parklücke suchen: Unterschied zwischen den Versionen
| (3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 23: | Zeile 23: | ||
* mittels <code>subplot</code> Messdaten vergleichen, ein x-y-Diagramme erstellen und analysieren. | * mittels <code>subplot</code> Messdaten vergleichen, ein x-y-Diagramme erstellen und analysieren. | ||
= Vorbereitung | = Vorbereitung = | ||
In diesem Praktikum soll Ihr AlphaBot autonom einparken. Als Algorithmus dient der in der | In diesem Praktikum soll Ihr AlphaBot autonom einparken. Als Algorithmus dient der in der | ||
Fahrschule vermittelte Ablauf (siehe Abb. 1). Planen Sie hierzu den Algorithmus als PAP und legen Sie die Programmrümpfe als <code>switch..case</code> im Programm an. Gehen Sie in den nachfolgenden | Fahrschule vermittelte Ablauf (siehe Abb. 1). Planen Sie hierzu den Algorithmus als PAP und legen Sie die Programmrümpfe als <code>switch..case</code> im Programm an. Gehen Sie in den nachfolgenden | ||
| Zeile 42: | Zeile 42: | ||
'''Tipp''': Sie brauchen die Programmierung noch nicht umsetzen. Legen Sie die Struktur (Header, Anweisungen, Verzweigungen, Schleifen, Kommentaren..) an. | '''Tipp''': Sie brauchen die Programmierung noch nicht umsetzen. Legen Sie die Struktur (Header, Anweisungen, Verzweigungen, Schleifen, Kommentaren..) an. | ||
== Tutorial == | |||
* [https://mathematikistueberall.de/ Mathematik im Alltag: Einparkalgorithmus] | |||
* [[PAP-Designer:_Tutorial_Verzweigung| Wiki: PAP-Designer: Tutorial Verzweigung <code>switch..case</code>]] | |||
* [[Bluetooth_Module_HC-05|Wiki: Bluetooth Module HC-05]] | |||
* [[Bluetooth_Module_HC-05_-_AT-Modus#Sensoren_und_Passwörter|Wiki: Kennworte für die Bluetooth-Module]] | |||
* [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoBluetoothModulHC05 SVN: DemoBluetoothModulHC05] | |||
= Versuchsdurchführung = | = Versuchsdurchführung = | ||
| Zeile 75: | Zeile 82: | ||
* Versehen Sie jedes Programm mit einem Header ([[Header Beispiel für MATLAB]], [[Header Beispiel für C]]). | * Versehen Sie jedes Programm mit einem Header ([[Header Beispiel für MATLAB]], [[Header Beispiel für C]]). | ||
* Kommentiere Sie den Quelltext umfangreich. | * Kommentiere Sie den Quelltext umfangreich. | ||
= Demos = | = Demos = | ||
| Zeile 89: | Zeile 89: | ||
*<code>E08_Infrared_Line_Tracking</code> | *<code>E08_Infrared_Line_Tracking</code> | ||
*<code>E08b_Infrared_Line_Tracking_PD</code> | *<code>E08b_Infrared_Line_Tracking_PD</code> | ||
*<code>PDRegler.ino</code> | |||
*<code>BluetoothDatenlogger.ino</code> | |||
*<code>E38_sendeByteViaBT.ino</code> | |||
*<code>empfangeByteViaBT.m</code> | |||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | {| role="presentation" class="wikitable mw-collapsible mw-collapsed" | ||
Aktuelle Version vom 25. Juni 2026, 08:59 Uhr

| Autor: | Prof. Dr.-Ing. Schneider |
| Modul: | Praxismodul II |
| Lektion: | 10 |
| Lehrveranstaltung: | Mechatronik, Informatik Praktikum 2, 2. Semester |
Inhalt
In diesem Termin wird der Einparkalgorithmus geplant und teilweise umgesetzt. Der AlphaBot folgt geregelt einer schwarzen Linie und sucht dabei eine passende Parklücke.
Lernziele
Nach Durchführung dieser Lektion können Sie
- einen Einparkalgorithmus planen
- Parklücken während der Fahrt vermessen.
- eine geeignete Parklücke suchen und auswählen.
- Messdaten via MATLAB® auswerten und visualisieren.
- mittels
subplotMessdaten vergleichen, ein x-y-Diagramme erstellen und analysieren.
Vorbereitung
In diesem Praktikum soll Ihr AlphaBot autonom einparken. Als Algorithmus dient der in der
Fahrschule vermittelte Ablauf (siehe Abb. 1). Planen Sie hierzu den Algorithmus als PAP und legen Sie die Programmrümpfe als switch..case im Programm an. Gehen Sie in den nachfolgenden
Phasen vor:
- Phase: Passende Parklücke suchen
- Phase: Einparken.
In diesem Termin wird Phase 1 systematisch geplant, umgesetzt und getestet.
- Fahren Sie auf der schwarzen Linie geregelt geradeaus. Nutzen Sie Ihre Quellcode
PDRegler.inoaus Lektion 9. - Vermessen Sie während der Fahrt die Parklücke mit Ultraschall und bestimmen Sie die Länge mit dem Inkrementalgeber. Nutzen Sie Ihren Quelltext aus den vorherigen Lektionen.
- Wenn die Lücke dem 1,5-fachen der Fahrzeuglänge entspricht, halten Sie an, um optimal einparken zu können.
Hausaufgabe
- Planen Sie das Programm mit der Unterfunktion
FindeParkluecke()als PAP. - Setzen Sie das PAP 1:1 als Rahmenprogramm
sucheParkluecke.ino(nur Struktur/Rahmenprogramm) um.
Arbeitsergebnisse: sucheParkluecke.pap, sucheParkluecke.ino
Tipp: Sie brauchen die Programmierung noch nicht umsetzen. Legen Sie die Struktur (Header, Anweisungen, Verzweigungen, Schleifen, Kommentaren..) an.
Tutorial
- Mathematik im Alltag: Einparkalgorithmus
- Wiki: PAP-Designer: Tutorial Verzweigung
switch..case - Wiki: Bluetooth Module HC-05
- Wiki: Kennworte für die Bluetooth-Module
- SVN: DemoBluetoothModulHC05
Versuchsdurchführung
Start: Aktualisieren Sie Ihre Arduino-Bibliothek unter c:\Users\HSHL-User\Documents\Arduino\libraries\.
Aufgabe 10.1: Parklücke suchen
Füllen Sie den Unterfunktion FindeParkluecke() gemäß Ihres Konzepts mit Inhalt.
- Stellen Sie mit Kartons eine Parklückensituation dar.
- Fahren Sie mit dem Linienverfolger geregelt an den Lücken vorbei.
- Vermessen Sie während der Fahrt diese Lücken.
- Das Fahrzeug soll sanft anfahren (lineare Rampe bis vmax).
- Stoppen Sie Ihr Fahrzeug, wenn Sie eine passende Lücke gefunden haben.
Arbeitsergebnisse: sucheParkluecke.ino
Hinweis:
- Der Tracker nutzt die Brücken F (
D4, D10, D11, D12, D13) für die I2C-Kommunikation der 5 Sensoren. - Nutzen Sie zwei Drahtbrücken, um den Ultraschallsensor über E (
D7 TRIG, D8 ECHO) einzulesen.
Aufgabe 10.2 Visualisierung
- Senden Sie während der Fahrt Daten via Bluetooth an MATLAB®.
- Visualisieren Sie in MATLAB® die Werte
- Längsabweichung (Fahrstrecke, x-t-Diagramm)
- Querabweichung (Ultraschallmesswerte, y-t-Diagramm)
- Längs- und Querabweichung (x-y-Diagramm)
über der Fahrzeit.
Arbeitsergebnis: zeigeMesswerte.m
Aufgabe 10.3: Nachhaltige Doku
- Sichern Sie alle Ergebnisse mit beschreibendem Text (
message) in SVN. - Halten Sie die Regeln für den Umgang mit SVN ein.
- Halten Sie die Programmierrichtlinie für C und die Programmierrichtlinien für MATLAB® ein.
- Versehen Sie jedes Programm mit einem Header (Header Beispiel für MATLAB, Header Beispiel für C).
- Kommentiere Sie den Quelltext umfangreich.
Demos
DemoSwitchCase.inoE28_IR_Line_Tracking_Sensor_MessungE28b_IR_Line_Tracking_SensorE08_Infrared_Line_TrackingE08b_Infrared_Line_Tracking_PDPDRegler.inoBluetoothDatenlogger.inoE38_sendeByteViaBT.inoempfangeByteViaBT.m
| Musterlösung Hausaufgabe |
Ausblick zur nächsten Lektion
In der nächsten Lektion parkt der AlphaBot zwischen zwei Kartons in eine Längsparklücke autonom ein (Einparkassistent).
→ Termine 1 2 3 4 5 6 7 8 9 10 11 12
→ zurück zum Hauptartikel: Informatik Praktikum 2
→ Haben Sie Fragen? Informatik Praktikum FAQ