AlphaBot: Bluetooth Datenlogger: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(20 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 24: Zeile 24:


== Vorbereitung ==
== Vorbereitung ==
* Studieren Sie den Artikel [[Bluetooth_Module_HC-05|Bluetooth Module HC-05]].
# Studieren Sie den Artikel [[Bluetooth_Module_HC-05|Bluetooth Module HC-05]].
* Versetzen Sie den AlphaBot in den Sendemodus.
# Versetzen Sie den AlphaBot in den Sendemodus.
* Koppeln Sie das Notebook mit dem AlphaBot.
# Koppeln Sie das Notebook mit dem AlphaBot via Bluetooth ([[Bluetooth_Module_HC-05_-_AT-Modus#Sensoren_und_Passwörter|Kennworte für die Bluetooth-Module]]).
* Senden Sie den Inhalt eines 8-Bit Zählers.
# Senden Sie den Inhalt eines 8-Bit Zählers.
* Empfangen Sie den Zähler mit MATLAB<sup>®</sup>.
# Empfangen Sie den Zähler mit MATLAB<sup>®</sup>.
* Visualisieren Sie den Zähler in einem Plot.
# Visualisieren Sie den Zähler in einem Plot.
* Sichern Sie die Daten in der Datei <code>Messdaten.mat</code>.
# Sichern Sie die Daten in der Datei <code>Messdaten.mat</code>.


== Tutorial ==
== Tutorial ==
* [[Bluetooth_Module_HC-05|Bluetooth Module HC-05]]
* [[Bluetooth_Module_HC-05|Wiki: Bluetooth Module HC-05]]
* [[Bluetooth_Module_HC-05_-_AT-Modus|Kennworte für die Bluetooth-Module]]
* [[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 DemoBluetoothModulHC05]
* [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoBluetoothModulHC05 SVN: DemoBluetoothModulHC05]


= Versuchsdurchführung =
= Versuchsdurchführung =
Zeile 43: Zeile 43:
* Errechnen Sie daraus die Geschwindigkeit und Beschleunigung.
* Errechnen Sie daraus die Geschwindigkeit und Beschleunigung.
* Zeigen Sie das Ergebnis entsprechend Abb. 2 mit MATLAB<sup>®</sup> an.
* Zeigen Sie das Ergebnis entsprechend Abb. 2 mit MATLAB<sup>®</sup> an.
* Sichern Sie Ihr Ergebnis in der Datei <code>Messung.mat</code>.
* Sichern Sie Ihr Ergebnis in der Datei <code>Messung_8_1.mat</code>.


Arbeitsergebnisse: <code>BluetoothDatenlogger.ino</code>, <code>zeigeMesswerte.m</code>, <code>Messung.mat</code>
Arbeitsergebnisse: <code>BluetoothDatenlogger.ino</code>, <code>zeigeMesswerte.m</code>, <code>Messung_8_1.mat</code>


== Aufgabe 8.2: Geregelte Geradeausgfahrt mit Radencoder ==
== Aufgabe 8.2: Geregelte Geradeausgfahrt mit Radencoder ==
Zeile 52: Zeile 52:
*Ist diese gleichgroß, fährt der AlphaBot eine Gerade.  
*Ist diese gleichgroß, fährt der AlphaBot eine Gerade.  
*Verändern Sie adaptiv die Motorgeschwindigkeit abhängig von der Streckenabweichung.
*Verändern Sie adaptiv die Motorgeschwindigkeit abhängig von der Streckenabweichung.
* Zeigen Sie das Ergebnis mit MATLAB<sup>®</sup> an (<code>zeigeGeradeausfahrt.m</code>).
* Sichern Sie Ihr Ergebnis in der Datei <code>Messung_8_2.mat</code>.


== Aufgabe 8.3: Längsregelung ==
Arbeitsergebnisse: <code>Geradeausfahrt.ino</code>, <code>zeigeGeradeausfahrt.m</code>, <code>Messung_8_2.mat</code>
 
== Aufgabe 8.3: Längs- und Querregelung ==
* Setzen Sie in der Software eine <code>Sollgeschwindigkeit</code> in m/s.
* Setzen Sie in der Software eine <code>Sollgeschwindigkeit</code> in m/s.
* Messen Sie die Istgeschwindigkeit anhand der Drehencoder.
* Messen Sie die Istgeschwindigkeit anhand der Drehencoder.
Zeile 59: Zeile 63:
* Regeln Sie die Geradeausfahrt mit eine Proportionalregler.
* Regeln Sie die Geradeausfahrt mit eine Proportionalregler.
* Fahren Sie 2&thinsp;m geradeaus, wenden Sie und fahren Sie in Startfeld zurück.
* Fahren Sie 2&thinsp;m geradeaus, wenden Sie und fahren Sie in Startfeld zurück.
* Zeigen Sie die gefahrene Trajektorie in MATLAB als x-y-Plot dar (<code>zeigeTrajektorie.m</code>).
* Sichern Sie die Messwerte in der Datei <code>Messung_8_3.mat</code>.


== Aufgabe 6.1: Geradeausfahrt von Feld A zu Feld B ==
Arbeitsergebnisse: <code>LaengsQuerRegelung.ino</code>, <code>zeigeTrajektorie.m</code>, <code>Messung_8_3.mat</code>
# Das FTF muss exakt 1,5 m kontinuierlich vorwärts geradeaus von Feld A zu Feld B fahren (a=1,5 m, b=0 m, c=0 m, vgl. Abb. 1).
# Das FTF muss langsam anfahren, so dass erst nach 20 cm die Maximalgeschwindigkeit erreicht wird und 20 cm vor dem Ziel verzögern.
# Die Messwerte ''Zeitstempel in s'' und die gefahrene Strecke des linken und rechten Rades müssen in der ASCII-Datei <code>Geradeausfahrt.txt</code> gespeichert werden.
 
Arbeitsergebnis: <code>FTF.ino</code>
 
== Aufgabe 6.2: Analyse der Streckendaten ==
In MATLAB<sup>®</sup> muss aus der Strecke die Geschwindigkeit und Beschleunigung des AMR berechnet und als Plot (1x3) untereinander Strecke in m, Geschwindigkeit in <math>\frac{m}{s}</math> und Beschleunigung in <math>\frac{m}{s^2}</math> über der Zeit in s dargestellt werden.
 
Was fällt Ihnen auf?
 
Arbeitsergebnisse: <code>Geradeausfahrt.txt</code>, <code>zeigeMesswerte.m</code>
 
== Aufgabe 6.3: Geregelte Geradeausfahrt ==
Nutzen Sie die Erkenntnisse aus Aufgabe 6.2, um geregelt geradeaus zu fahren. Vergleichen Sie hierzu die gefahrene Strecke beider Räder. Ist diese gleichgroß, fährt der AlphaBot eine Gerade. Verändern Sie adaptiv die Motorgeschwindigkeit abhängig von der Streckenabweichung.
 
== Aufgabe 6.4: Hinderniserkennung ==
Ein Hindernis erscheint plötzlich in Ihrem Fahrschlauch. Sie reagieren mit einer Notbremsung, um den Unfall zu vermeiden. Verlässt das Hindernis die Fahrbahn, kann die geplante Fahrt weitergehen.
# Nutzen Sie <code>fahreZumStartpunkt.ino</code> aus Übungsaufgabe 6.1.
# Stoppen Sie, falls weniger als 20&thinsp;cm vor Ihnen ein Hindernise auftaucht/steht (Notbremse).
# Fahren Sie weiter, sobald das Hindernis entfernt wurde.
# Fehlbremsungen müssen durch geeignete Signalfilterung (z.&thinsp;B. Tiefpassfilter) vermieden werden.
'''Arbeitsergebnis''': <code>Notbremsassistent.ino</code>
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Tipps&thinsp;</strong>
|-
| Drehen Sie den Ultraschall auf 90&thinsp;° (in Fahrrichtung geradeaus).
|-
| Wird ein Hindernis detektiert wird die Fahrt umgehend '''pausiert'''. Speichern Sie den Zustand.
|-
| Wird ein Hindernis entfernt wird die Fahrt wieder '''weitergeführt'''. Beispiel: Die Fahrstrecke beträgt 1&thinsp;m geradeaus. Zum Zeitpunkt der Notbremsung wurden bereits 50&thinsp;cm gefahren. Ist das Hindernis entfernt, fahren Sie 50&thinsp;cm weiter.
|}
 
'''Arbeitsergebnis''': <code>FTF_mit_Hinderniserkennung.ino</code>


== Aufgabe 6.5: Nachhaltige Doku ==
== Aufgabe 8.4: Nachhaltige Doku ==
* Sichern Sie alle Ergebnisse mit beschreibendem Text (<code>message</code>) in SVN.
* Sichern Sie alle Ergebnisse mit beschreibendem Text (<code>message</code>) in SVN.
* Halten Sie die Regeln für den [[Software_Versionsverwaltung_mit_SVN|Umgang mit SVN]] ein.
* Halten Sie die Regeln für den [[Software_Versionsverwaltung_mit_SVN|Umgang mit SVN]] ein.
Zeile 106: Zeile 78:


= Demos =
= Demos =
* <code>E01_MotorenTest</code>
* [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoBluetoothModulHC05 DemoBluetoothModulHC05]
* <code>E15_RadInkrementalgeberFahrt</code>
* <code>E33_Unterfunktion</code>


== [[Datei:Lektionen.jpg|60px]] Ausblick zur nächsten Lektion ==
== [[Datei:Lektionen.jpg|60px]] Ausblick zur nächsten Lektion ==
In der nächsten Lektion wird der AlphaBot geregelt, um einer schwarzen Linie zu folgen.
In der nächsten Lektion wird der AlphaBot geregelt, um einer schwarzen Linie zu folgen.


----
----

Aktuelle Version vom 9. Juni 2026, 13:02 Uhr

Abb. 1: Bluetooth Modul HC-05
Autor: Prof. Dr.-Ing. Schneider
Modul: Praxismodul II
Lektion: 8
Lehrveranstaltung: Mechatronik, Informatik Praktikum 2, 2. Semester

Inhalt

Autonome Mobile Roboter müssen zur Erfüllung von Aufgaben im Raum navigieren. Der einfachste Weg ist über Odometrie. In dieser Lektion fahren wir feste Figuren im Raum ab und versuchen d. Sie haben den Auftrag bekommen ein Fahrerloses Transportfahrzeug (FTF) zu entwickeln. Nutzen Sie den AlphaBot um die Funktion Ihrer Programmierung nachzuweisen.

Lernziele

Nach Durchführung dieser Lektion können Sie

  • Ihren Roboter eine vorgegebene Strecke geradeaus fahren lassen.
  • Daten via Bluetooth mit MATLAB® analysieren und anzeigen.
  • Messwerte in einer MAT-Datei speichern.


Vorbereitung

  1. Studieren Sie den Artikel Bluetooth Module HC-05.
  2. Versetzen Sie den AlphaBot in den Sendemodus.
  3. Koppeln Sie das Notebook mit dem AlphaBot via Bluetooth (Kennworte für die Bluetooth-Module).
  4. Senden Sie den Inhalt eines 8-Bit Zählers.
  5. Empfangen Sie den Zähler mit MATLAB®.
  6. Visualisieren Sie den Zähler in einem Plot.
  7. Sichern Sie die Daten in der Datei Messdaten.mat.

Tutorial

Versuchsdurchführung

Aufgabe 8.1: Bluetooth Datenlogger

  • Verbinden Sie den AlphaBot mit MATLAB®.
  • Übertragen Sie die vom linken und rechten Rad gefahrene Strecke.
  • Errechnen Sie daraus die Geschwindigkeit und Beschleunigung.
  • Zeigen Sie das Ergebnis entsprechend Abb. 2 mit MATLAB® an.
  • Sichern Sie Ihr Ergebnis in der Datei Messung_8_1.mat.

Arbeitsergebnisse: BluetoothDatenlogger.ino, zeigeMesswerte.m, Messung_8_1.mat

Aufgabe 8.2: Geregelte Geradeausgfahrt mit Radencoder

  • Nutzen Sie die Erkenntnisse aus Aufgabe 8.1, um geregelt geradeaus zu fahren.
  • Vergleichen Sie hierzu die gefahrene Strecke beider Räder.
  • Ist diese gleichgroß, fährt der AlphaBot eine Gerade.
  • Verändern Sie adaptiv die Motorgeschwindigkeit abhängig von der Streckenabweichung.
  • Zeigen Sie das Ergebnis mit MATLAB® an (zeigeGeradeausfahrt.m).
  • Sichern Sie Ihr Ergebnis in der Datei Messung_8_2.mat.

Arbeitsergebnisse: Geradeausfahrt.ino, zeigeGeradeausfahrt.m, Messung_8_2.mat

Aufgabe 8.3: Längs- und Querregelung

  • Setzen Sie in der Software eine Sollgeschwindigkeit in m/s.
  • Messen Sie die Istgeschwindigkeit anhand der Drehencoder.
  • Regeln Sie die AlphaBot-Geschwindigkeit in Längsrichtung mit eine Proportionalregler.
  • Regeln Sie die Geradeausfahrt mit eine Proportionalregler.
  • Fahren Sie 2 m geradeaus, wenden Sie und fahren Sie in Startfeld zurück.
  • Zeigen Sie die gefahrene Trajektorie in MATLAB als x-y-Plot dar (zeigeTrajektorie.m).
  • Sichern Sie die Messwerte in der Datei Messung_8_3.mat.

Arbeitsergebnisse: LaengsQuerRegelung.ino, zeigeTrajektorie.m, Messung_8_3.mat

Aufgabe 8.4: Nachhaltige Doku

Arbeitsergebnis in SVN: SVN Log

Demos

Ausblick zur nächsten Lektion

In der nächsten Lektion wird der AlphaBot geregelt, um einer schwarzen Linie zu folgen.



→ 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