AlphaBot: Bluetooth Datenlogger: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(36 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 =
'''Start:''' Aktualisieren Sie Ihre Arduino-Bibliothek unter <code>c:\Users\HSHL-User\Documents\Arduino\libraries\</code>.
== Aufgabe 8.1: Bluetooth Datenlogger ==
== Aufgabe 8.1: Bluetooth Datenlogger ==
* Verbinden Sie den AlphaBot mit MATLAB<sup>®</sup>.
* Verbinden Sie den AlphaBot mit MATLAB<sup>®</sup>.
* Übertragen Sie die vom linken und rechten Rad gefahrene Strecke.
* Übertragen Sie mit der Datei <code>BluetoothDatenlogger.ino</code> die vom linken und rechten Rad gefahrene Strecke an MATLAB<sup>®</sup> via Bluetooth.
* Errechnen Sie daraus die Geschwindigkeit und Beschleunigung.
* Empfangen Sie die Daten mit dem Skript <code>zeigeMesswerte.m</code>.
* Zeigen Sie das Ergebnis entsprechend Abb. 2 mit MATLAB<sup>®</sup> an.
* Berechnen Sie aus den Strecken die Geschwindigkeiten und Beschleunigungen.
* Sichern Sie Ihr Ergebnis in der Datei <code>Messung.mat</code>.
* Zeigen Sie das Ergebnis als 3x2 Subplot mit MATLAB<sup>®</sup> an.
* Sichern Sie Ihr Ergebnis in der Datei <code>Messung_8_1.mat</code>.


Arbeitsergebnisse: <code>BluetoothDatenlogger.ino</code>, <code>zeigeMesswerte.m</code>, <code>Messung_8_1.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 Geradeausfahrt mit Radencoder (Querregelung) ==
* Nutzen Sie die Erkenntnisse aus Aufgabe 8.1, um geregelt geradeaus zu fahren.  
* Nutzen Sie die Erkenntnisse aus Aufgabe 8.1, um geregelt geradeaus zu fahren.  
* Vergleichen Sie hierzu die gefahrene Strecke beider Räder.
* Messen Sie mit dem Programm <code>Geradeausfahrt.ino</code> die Istgeschwindigkeit beider Räder anhand der Inkrementalgeber.
*Ist diese gleichgroß, fährt der AlphaBot eine Gerade.  
* Ist die Geschwindigkeit beider Räder gleich, fährt der AlphaBot geradeaus.
*Verändern Sie adaptiv die Motorgeschwindigkeit abhängig von der Streckenabweichung.
* Regeln Sie die Radgeschwindigkeiten mit einem Proportionalregler und realisieren Sie eine Geradeausfahrt.
* Senden Sie dabei Radgeschwindigkeiten (<code>vL, vR</code>) via Bluetooth an MATLAB<sup>®</sup>.
* 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>.
 
'''Arbeitsergebnisse:''' <code>Geradeausfahrt.ino</code>, <code>zeigeGeradeausfahrt.m</code>, <code>Messung_8_2.mat</code>


Arbeitsergebnisse: <code>Geradeausfahrt.ino</code>, <code>zeigeGeradeausfahrt.m</code>, <code>Messung_8_2.mat</code>
'''Musterlösung:''' <code>https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/AlphaBot/examples/E39_RegelungRadgeschwindigkeit/E39_RegelungRadgeschwindigkeit.ino</code>


<!--
== Aufgabe 8.3: Längs- und Querregelung ==
== Aufgabe 8.3: Längs- und Querregelung ==
* Setzen Sie in der Software eine <code>Sollgeschwindigkeit</code> in m/s.
* Definieren Sie im Programm <code>LaengsQuerRegelung.ino</code> eine <code>Sollgeschwindigkeit</code> in m/s, die beim Anfahren langsam auf <code>vMax</code> ansteigt.
* Messen Sie die Istgeschwindigkeit anhand der Drehencoder.
* Messen Sie die Istgeschwindigkeit anhand der Inkrementalgeber.
* Regeln Sie die AlphaBot-Geschwindigkeit in Längsrichtung mit eine Proportionalregler.
* Regeln Sie die AlphaBot-Geschwindigkeit in Längsrichtung mit einem Proportionalregler.
* Regeln Sie die Geradeausfahrt mit eine Proportionalregler.
* Regeln Sie die Geradeausfahrt in Querrichtung 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 das Startfeld zurück.
* Zeigen Sie die gefahrene Trajektorie in MATLAB als x-y-Plot dar (<code>zeigeTrajektorie.m</code>).
* Senden Sie dabei die Daten (vIst, vSoll) via Bluetooth an MATLAB<sup>®</sup>.
* Stellen Sie die gefahrene Trajektorie in MATLAB<sup>®</sup> als x-y-Plot dar (<code>zeigeTrajektorie.m</code>).
* Sichern Sie die Messwerte in der Datei <code>Messung_8_3.mat</code>.
* Sichern Sie die Messwerte in der Datei <code>Messung_8_3.mat</code>.


Arbeitsergebnisse: <code>LaengsQuerRegelung.ino</code>, <code>zeigeTrajektorie.m</code>, <code>Messung_8_3.mat</code>
'''Arbeitsergebnisse:''' <code>LaengsQuerRegelung.ino</code>, <code>zeigeTrajektorie.m</code>, <code>Messung_8_3.mat</code>
 
-->
== Aufgabe 6.1: Geradeausfahrt von Feld A zu Feld B ==
# 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 8.3: Nachhaltige Doku ==
 
== 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 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 112: Zeile 86:


= 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 14. Juni 2026, 19:40 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

Start: Aktualisieren Sie Ihre Arduino-Bibliothek unter c:\Users\HSHL-User\Documents\Arduino\libraries\.

Aufgabe 8.1: Bluetooth Datenlogger

  • Verbinden Sie den AlphaBot mit MATLAB®.
  • Übertragen Sie mit der Datei BluetoothDatenlogger.ino die vom linken und rechten Rad gefahrene Strecke an MATLAB® via Bluetooth.
  • Empfangen Sie die Daten mit dem Skript zeigeMesswerte.m.
  • Berechnen Sie aus den Strecken die Geschwindigkeiten und Beschleunigungen.
  • Zeigen Sie das Ergebnis als 3x2 Subplot 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 Geradeausfahrt mit Radencoder (Querregelung)

  • Nutzen Sie die Erkenntnisse aus Aufgabe 8.1, um geregelt geradeaus zu fahren.
  • Messen Sie mit dem Programm Geradeausfahrt.ino die Istgeschwindigkeit beider Räder anhand der Inkrementalgeber.
  • Ist die Geschwindigkeit beider Räder gleich, fährt der AlphaBot geradeaus.
  • Regeln Sie die Radgeschwindigkeiten mit einem Proportionalregler und realisieren Sie eine Geradeausfahrt.
  • Senden Sie dabei Radgeschwindigkeiten (vL, vR) via Bluetooth an MATLAB®.
  • 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

Musterlösung: https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/AlphaBot/examples/E39_RegelungRadgeschwindigkeit/E39_RegelungRadgeschwindigkeit.ino


Aufgabe 8.3: 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