AlphaBot: Hardware Support Package für MATLAB

Autor: | Prof. Dr.-Ing. Schneider |
Modul: | Praxismodul II, MTR-B-2-2.11 |
Lehrveranstaltung: | Mechatronik, Informatik Praktikum 2, 2. Semester |
Inhalt
- Nutzung von MATLAB® als seriellen Monitor.
- Inbetriebnahme des AlphaBot
- Einbindung der Bibliotheken für den AlphaBot
- Auslesen eine Potentiometers
- Ansteuern einer RGB-LED
- Statische und dynamische Messung mit dem Ultraschallsensor
- Anwendung rekursiver Filter auf Echtzeitdaten
Lernziele
Nach Durchführung dieser Lektion können Sie
- Debug-Daten speichern und via MATLAB® visualisieren.
- direkt MATLAB® als seriellen Monitor nutzen.
- den AlphaBot sicher in Betrieb nehmen, das Potentiometer auslesen und eine RGB-LED ansteuern.
- Entfernungen mit dem Ultraschall-Sensor messen.
- Messwerte in Echtzeit filtern.
Versuchsvorbereitung
- Das MATLAB Support Package für Arduino Hardware muss unter MATLAB installiert werden
- Starten Sie MATLAB
- Wählen Sie unter
Add-Ons
dasGet Hardware Support Packages
aus. - Installieren Sie das
MATLAB Support Package für Arduino Hardware
.
- Verbinden Sie Arduino und PC via USB.
- Bringen Sie mit dem
Geräte-Manager
den COM-Port des Arduino in Erfahrung. - Testen Sie die Verbindung mit
>> h = arduino('COM5','Uno')
für Ihren COM-Port.
Versuchsdurchführung
Aufgabe 2.1: MATLAB® als serieller Monitor
- Nutzen Sie MATLAB® um die Messdaten direkt (live) darzustellen.
- Verbinden Sie den Arduino mit dem PC via USB.
- Greifen Sie hierzu auf die serielle Schnittstelle zu.
- Stellen Sie sicher, das die Multisensorerweiterung auf dem Alphabot steckt.
- Drehen Sie, während der Messung am Potentiometer und Visualisieren Sie die Spannung über der Zeit an
A0
.
Nützlich MATLAB®-Befehle: arduino, tic, toc, readVoltage, plot, xlabel, ylabel, legend
Arbeitsergebnisse in SVN: lesePoti.m
Musterlösung |
Aufgabe 2.2: Inbetriebnahme des AlphaBot
- Arbeiten Sie sich anhand des Wiki-Artikels in den AlphaBot ein. Beachten Sie besonders die Ausrichtung der Akkus. ACHTUNG BRANDGEFAHR!
- Binden Sie die AlphaBot Bibliothek nach Anleitung in die Arduino IDE ein.
- Machen Sie sich mit der Multisensorerweiterung vertraut.
- Lesen Sie den Taster des Joysticks ein (
A4
). - Zeigen Sie den Spannungswert über der Zeit während der Messung an.
- Lesen Sie das Potentiometer ein (
A4
). - Bei Tasterdruck ertönt der Summer an
D11
. - regeln Sie mit dem Potentiometers die Lautstärke des Summers.
Arbeitsergebnisse: leseJoystick.m
Tipp 1 |
Aufgabe 2.3: AlphaBot Ultraschall
- Messen Sie auf ein ebenes statisches Ziel in ca. 30 cm Entfernung.
- Lesen Sie für 10 s die Messwerte des Ultraschallsensor ein [1].
- Zeigen Sie die Distanzwerte in cm über der Zeit live während der Messung an.
- Fehlmessungen (
inf
) dürfen nicht angezeigt werden. - Speichern Sie die Aergebnis-Arrays
Zeit
undDistanz
in der DateiUltraschall.mat
.
Arbeitsergebnisse in SVN: leseUltraschall.m, Ultraschall.mat
- Nützliche Befehle:
aduino, figure, plot, xlabel, ylabel, tic, toc, readDistance, set, if..else, isinf, save, clear
Teillösung |
Aufgabe 2.4: Glättung der Ultraschallmessung
- Nutzen Sie Ihre Ergebnisse aus Aufgabe 2.3 (
Ultraschall.mat
), um die Messwerte zu glätten. - Lesen Sie zyklisch die Daten aus der Datei
Ultraschall.mat
. - Filtern Sie die Daten zyklisch mit einem gleitenden Mittelwertfilter, einem rekursiven Medianfilter und einem rekursiven Tiefpassfilter.
- Vergleichen Sie die Ergebnisse der Filter in einem Plot mit Achsenbeschriftung und Legende anhand technischer Kriterien (Rauschunterdrückung, Verzögerung, Ausreisserfilterung, Programmieraufwand).
Arbeitsergebnisse in SVN: filtereUltraschall.m
Lernzielkontrollfragen:
- Wurde das Signalrauschen geglättet?
- Ist das gefilterte Signal verzögert?
- Welchen Einfluss haben die Filterparameter?
- Wie verhalten sich die gefilterten Signal bei Ausreißern?
Tipp 1 |
Aufgabe 2.5: 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.
Arbeitsergebnis in SVN: SVN Log
Tutorials
- Erste Schritte mit dem AlphaBot
- Erste Schritte mit der Arduino IDE
- HSHL-Wiki: Ultraschallsensor HC-SR04
Demos
Rekursive Filter in MATLAB®
- SVN:
DemoDebug2MATLAB
- SVN:
E05_Ultraschall_Entfernungsmessung
- SVN:
E23_RGB_LED
- SVN:
E34_lesePoti
→ Termine 1 2 3 4 5 6 7 8 9 10 11
→ zurück zum Hauptartikel: Informatik Praktikum 2