AlphaBot: Hardware Support Package für MATLAB: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
(46 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 11: Zeile 11:
|}
|}


 
= Inhalt =
== Inhalt ==
* Nutzung von MATLAB<sup>®</sup> als seriellen Monitor.
* Nutzung von MATLAB<sup>®</sup> als seriellen Monitor.
* Inbetriebnahme des AlphaBot
* Inbetriebnahme des AlphaBot
* Einbindung der Bibliotheken für den AlphaBot
* Einbindung der Bibliotheken für den AlphaBot
* Auslesen eine Potentiometers
* Auslesen eine Potentiometers
* Ansteuern einer RGB-LED
* Ansteuern eines Lautsprechers
* Statische und dynamische Messung mit dem Ultraschallsensor
* Statische und dynamische Messung mit dem Ultraschallsensor
* Anwendung rekursiver Filter auf Echtzeitdaten
* Anwendung rekursiver Filter auf Echtzeitdaten
Zeile 25: Zeile 24:
* Debug-Daten speichern und via MATLAB<sup>®</sup> visualisieren.
* Debug-Daten speichern und via MATLAB<sup>®</sup> visualisieren.
* direkt MATLAB<sup>®</sup> als seriellen Monitor nutzen.
* direkt MATLAB<sup>®</sup> als seriellen Monitor nutzen.
* den AlphaBot sicher in Betrieb nehmen, das Potentiometer auslesen und eine RGB-LED ansteuern.
* den AlphaBot sicher in Betrieb nehmen, das Potentiometer auslesen und eine Summer ansteuern.
* Entfernungen mit dem Ultraschall-Sensor messen.
* Entfernungen mit dem Ultraschall-Sensor messen.
* Messwerte in Echtzeit filtern.
* Messwerte in Echtzeit filtern.
== Lernzielkontrolle ==
* Was sind die Gefahren bei der Verwendung eines AlphaBots?
* Wann muss ich die Akkus verwenden?
* Was ist das "Plus" am Arduino Plus?
* Welche Sensoren und Aktoren sind an den Arduino Plus angeschlossen?
* Wie stecke ich den Ultraschallsensor ein?
* Was ist ein Medianfilter und wie funktioniert es?
= Versuchsvorbereitung =
= Versuchsvorbereitung =
* Das MATLAB Support Package für Arduino Hardware muss unter MATLAB installiert werden
* Arbeiten Sie sich anhand des [[AlphaBot|Wiki-Artikels]] in den AlphaBot ein. Beachten Sie besonders die Ausrichtung der Akkus. '''ACHTUNG BRANDGEFAHR!'''
** Starten Sie MATLAB
* Machen Sie sich mit der [[AlphaBot_Accessory_Shield|Multisensorerweiterung]] vertraut.
* Machen Sie sich mit den [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Demos/MATLAB/Filter MATLAB<sup>®</sup>-Demos] vertraut.
* Lesen Sie die Artikel zu den verwendeten Sensoren.
 
== MATLAB<sup>®</sup>-Vorbereitung==
* Das [https://de.mathworks.com/matlabcentral/fileexchange/47522-matlab-support-package-for-arduino-hardware MATLAB Support Package für Arduino Hardware] muss unter MATLAB<sup>®</sup> installiert werden
** Starten Sie MATLAB<sup>®</sup>.
** Wählen Sie unter <code>Add-Ons</code> das <code>Get Hardware Support Packages</code> aus.
** Wählen Sie unter <code>Add-Ons</code> das <code>Get Hardware Support Packages</code> aus.
** Installieren Sie das <code>MATLAB Support Package für Arduino Hardware</code>.
** Installieren Sie das <code>MATLAB Support Package für Arduino Hardware</code>.
Zeile 36: Zeile 50:
* Bringen Sie mit dem <code>Geräte-Manager</code> den COM-Port des Arduino in Erfahrung.
* Bringen Sie mit dem <code>Geräte-Manager</code> den COM-Port des Arduino in Erfahrung.
* Testen Sie die Verbindung mit <code>>> h = arduino('COM5','Uno')</code> für Ihren COM-Port.
* Testen Sie die Verbindung mit <code>>> h = arduino('COM5','Uno')</code> für Ihren COM-Port.
== Tutorials ==
* [[AlphaBot|Erste Schritte mit dem AlphaBot]]
* [[Ultraschallsensor_HC-SR04| HSHL-Wiki: Ultraschallsensor HC-SR04]]
* [[Joystick_KY-023| HSHL-Wiki: Joystick KY-023]]
* [[Piezo_Lautsprecher| HSHL-Wiki: Piezo Lautsprecher]]
* [[Passiver_Lautsprecher| HSHL-Wiki: Passiver Lautsprecher]]
* [[Potentiometer_B_50K| HSHL-Wiki: Potentiometer]]
* [[Rekursive Filter| HSHL-Wiki: Rekursive Filter]]
* [[Medium:Accessory-Shield-Schematic.pdf|Schaltplan der Multisensorplatine]]
= Demos =
* [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Demos/MATLAB/Filter/GleitendesMittelwertFilter MATLAB<sup>®</sup>: <code>GleitendesMittelwertFilter.m</sup></code>]
* [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Demos/MATLAB/Filter/MedianFilter  MATLAB<sup>®</sup>: <code>MedianFilter.m</code>]
* [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Demos/MATLAB/Filter/MittelwertFilter  MATLAB<sup>®</sup>: <code>MittelwertFilter.m</code>]
* [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Demos/MATLAB/Filter/TiefpassFilter MATLAB<sup>®</sup>: <code>TiefpassFilter.m</code>]


== Warnung ==
= Warnung =
[[Datei:Warnung2.png|rahmenlos|50px|links]]<br>
{|
Der AlphaBot verwendet sehr viele Sensoren, daher sind Ports mehrfach verwendet. Es kann somit zu Komplikationen kommen. Entfernen Sie einfach die Steckbrücken der Mehrfachbelegung.
|-
| [[Datei:Warnung2.png|rahmenlos|50px|links]] ||
* Der AlphaBot verwendet sehr viele Sensoren, daher sind Ports mehrfach verwendet. Es kann somit zu '''Komplikationen''' kommen. Entfernen Sie einfach die Steckbrücken der Mehrfachbelegung.
* Schützen Sie den Ultraschallsensor vor Verpolung! Beachten Sie die Beschriftung.
|}


= Versuchsdurchführung =
= Versuchsdurchführung =
Zeile 46: Zeile 78:
# Verbinden Sie den Arduino mit dem PC via USB.
# Verbinden Sie den Arduino mit dem PC via USB.
# Greifen Sie hierzu auf die serielle Schnittstelle zu.
# Greifen Sie hierzu auf die serielle Schnittstelle zu.
# Stellen Sie sicher, das die [[AlphaBot_Accessory_Shield|Multisensorerweiterung]] auf dem Alphabot steckt.
# Stellen Sie sicher, das die [[AlphaBot_Accessory_Shield|Multisensorerweiterung]] auf dem AlphaBot steckt.
# Drehen Sie, während der Messung am Potentiometer und Visualisieren Sie die Spannung über der Zeit an <code>A0</code>.
# Drehen Sie, während der Messung, am Potentiometer und visualisieren Sie die Spannung über der Zeit an <code>A0</code>.


'''Nützlich MATLAB<sup>®</sup>-Befehle:''' <code>arduino, tic, toc, readVoltage, plot, xlabel, ylabel, legend</code>
'''Nützlich MATLAB<sup>®</sup>-Befehle:''' <code>arduino, tic, toc, readVoltage, plot, xlabel, ylabel, legend</code>
Zeile 70: Zeile 102:
</source>
</source>
|}
|}
 
<!--
----
 
== Aufgabe 2.2: Inbetriebnahme des AlphaBot ==
== Aufgabe 2.2: Inbetriebnahme des AlphaBot ==
# Arbeiten Sie sich anhand des [[AlphaBot|Wiki-Artikels]] in den AlphaBot ein. Beachten Sie besonders die Ausrichtung der Akkus. '''ACHTUNG BRANDGEFAHR!'''
# Binden Sie die AlphaBot Bibliothek nach [[Erste_Schritte_mit_der_Arduino_IDE|Anleitung]] in die Arduino IDE ein.
# Machen Sie sich mit der [[AlphaBot_Accessory_Shield|Multisensorerweiterung]] vertraut.
# Lesen Sie den Taster des Joysticks ein (<code>A4</code>).
# Lesen Sie den Taster des Joysticks ein (<code>A4</code>).
# Zeigen Sie den Spannungswert über der Zeit während der Messung an.
# Lesen Sie das Potentiometer ein (<code>A0</code>).
# Lesen Sie das Potentiometer ein (<code>A4</code>).
# Zeigen Sie den Spannungswert des Potentiometers über der Zeit während der Messung an.
# Bei Tasterdruck ertönt der Summer an <code>D11</code>.
# Bei Tasterdruck des Joysticks ertönt der Summer an <code>D11</code>.
# Regeln Sie mit dem Potentiometers die Lautstärke des Summers.
# Regeln Sie mit dem Potentiometers die Frequenz des Summertons.
 
'''Nützlich MATLAB<sup>®</sup>-Befehle:''' <code>aduino, figure, plot, xlabel, ylabel, tic, toc, readVoltage, set, if..else, playTone</code>


'''Arbeitsergebnisse:''' <code>leseJoystick.m</code>
'''Arbeitsergebnisse:''' <code>leseJoystick.m</code>
Zeile 90: Zeile 119:
|
|
* Messen Sie den Arbeitsbereich des Potis aus.
* Messen Sie den Arbeitsbereich des Potis aus.
* Skalieren Sie die Poti-Werte auf die Lautstärke.
* Skalieren Sie die Poti-Werte auf die Frequenz.
* Nützliche Befehle: <code>aduino, figure, plot, xlabel, ylabel, tic, toc, readVoltage, set, if..else, playTone</code>
|}
|}
 
-->
----
== Aufgabe 2.2: AlphaBot Ultraschall ==
 
== Aufgabe 2.3: AlphaBot Ultraschall ==
# Messen Sie auf ein ebenes statisches Ziel in ca. 30&thinsp;cm Entfernung.
# Messen Sie auf ein ebenes statisches Ziel in ca. 30&thinsp;cm Entfernung.
# Lesen Sie für 10&thinsp;s die Messwerte des Ultraschallsensor ein [https://de.mathworks.com/help/matlab/supportpkg/arduinoio.ultrasonic.html?searchHighlight=arduino+matlab+ultrasonic&s_tid=srchtitle_support_results_2_arduino+matlab+ultrasonic].
# Lesen Sie für 10&thinsp;s die Messwerte des Ultraschallsensor ein [https://de.mathworks.com/help/matlab/supportpkg/arduinoio.ultrasonic.html?searchHighlight=arduino+matlab+ultrasonic&s_tid=srchtitle_support_results_2_arduino+matlab+ultrasonic].
# Zeigen Sie die Distanzwerte in cm über der Zeit live während der Messung an.
# Zeigen Sie die Distanzwerte in cm über der Zeit live während der Messung an.
# Fehlmessungen (<code>inf</code>) dürfen nicht angezeigt werden.
# Fehlmessungen (<code>inf</code>) dürfen nicht angezeigt werden.
# Speichern Sie die Aergebnis-Arrays <code>Zeit</code> und <code>Distanz</code> in der Datei <code>Ultraschall.mat</code>.
# Speichern Sie die Ergebnis-Arrays <code>Zeit</code> und <code>Distanz</code> in der Datei <code>Ultraschall.mat</code>.
 
'''Nützlich MATLAB<sup>®</sup>-Befehle:''' <code>aduino, figure, plot, xlabel, ylabel, tic, toc, readDistance, set, if..else, isinf, save, clear</code>


'''Arbeitsergebnisse''' in SVN: <code>leseUltraschall.m, Ultraschall.mat</code>
'''Arbeitsergebnisse''' in SVN: <code>leseUltraschall.m, Ultraschall.mat</code>


* Nützliche Befehle: <code>aduino, figure, plot, xlabel, ylabel, tic, toc, readDistance, set, if..else, isinf, save, clear</code>
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Teillösung&thinsp;</strong>
| <strong>Teillösung&thinsp;</strong>
Zeile 111: Zeile 138:
| <source line lang="matlab" style="font-size:medium">clear all; close all; clc; % Initialisierung
| <source line lang="matlab" style="font-size:medium">clear all; close all; clc; % Initialisierung
hArduino = arduino('COM8','Uno','Libraries','Ultrasonic'); % Arduino Objekt erzeugen
hArduino = arduino('COM8','Uno','Libraries','Ultrasonic'); % Arduino Objekt erzeugen
hUltraschall = ultrasonic(hArduino,'D2','D3','OutputFormat','double')
hUltraschall = ultrasonic(hArduino,'D11','D12','OutputFormat','double')
nMesswerte = 100;
nMesswerte = 100;
%% Messschleife
%% Messschleife
tic
tic
writeDigitalPin(hArduino, 'D13', 1);
for i=1:nMesswerte
for i=1:nMesswerte
     Distanz(i) = readDistance(hUltraschall);
     Distanz(i) = readDistance(hUltraschall);
     Zeit(i)    = toc;
     Zeit(i)    = toc;
end
end
writeDigitalPin(hArduino, 'D13', 0);
 
%% Ergebnisdarstellung
%% Ergebnisdarstellung
plot(Zeit,Distanz*100,'r.-');
plot(Zeit,Distanz*100,'r.-');
Zeile 128: Zeile 154:
</source>
</source>
|}
|}
----


== Aufgabe 2.4: Glättung der Ultraschallmessung ==
== Aufgabe 2.3: Glättung der Ultraschallmessung ==
# Nutzen Sie Ihre Ergebnisse aus Aufgabe 2.3 (<code>Ultraschall.mat</code>), um die Messwerte zu glätten.
# Nutzen Sie Ihre Ergebnisse aus Aufgabe 2.3 (<code>Ultraschall.mat</code>), um die Messwerte zu glätten.
# Lesen Sie zyklisch die Daten aus der Datei <code>Ultraschall.mat</code>.
# Lesen Sie zyklisch die Daten aus der Datei <code>Ultraschall.mat</code>.
Zeile 136: Zeile 161:
# Vergleichen Sie die Ergebnisse der Filter in einem Plot mit Achsenbeschriftung und Legende anhand technischer Kriterien (Rauschunterdrückung, Verzögerung, Ausreisserfilterung, Programmieraufwand).
# Vergleichen Sie die Ergebnisse der Filter in einem Plot mit Achsenbeschriftung und Legende anhand technischer Kriterien (Rauschunterdrückung, Verzögerung, Ausreisserfilterung, Programmieraufwand).


'''Nützlich MATLAB<sup>®</sup>-Befehle:''' <code>addpath</code>


'''Arbeitsergebnisse''' in SVN: <code>filtereUltraschall.m</code>
'''Arbeitsergebnisse''' in SVN: <code>filtereUltraschall.m</code>
Zeile 145: Zeile 172:
# Wie verhalten sich die gefilterten Signal bei Ausreißern?
# Wie verhalten sich die gefilterten Signal bei Ausreißern?
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Tipp 1&thinsp;</strong>
| <strong>Demos&thinsp;</strong>
|-
|-
| Nutzen Sie Ihre Funktionen <code>GleitendesMittelwertFilter.m</code>, <code>rekursivesMedianFilter</code> und <code>TiefpassFilter.m</code>.<br>
| Nutzen Sie Ihre Funktionen <code>GleitendesMittelwertFilter.m</code>, <code>RekursivesMedianFilter</code> und <code>TiefpassFilter.m</code>.<br>
Diese finden Sie im Demo-Ordner: <code>https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Demos/MATLAB/Filter</code>
Diese finden Sie im Demo-Ordner: <code>https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Demos/MATLAB/Filter</code>
|}
|}
----


== Aufgabe 2.5: Nachhaltige Doku ==
== Aufgabe 2.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 161: Zeile 187:
'''Arbeitsergebnis''' in SVN: <code>SVN Log</code>
'''Arbeitsergebnis''' in SVN: <code>SVN Log</code>


= Tutorials =
* [[AlphaBot|Erste Schritte mit dem AlphaBot]]
* [[Erste_Schritte_mit_der_Arduino_IDE|Erste Schritte mit der Arduino IDE]]
* [[Ultraschallsensor_HC-SR04| HSHL-Wiki: Ultraschallsensor HC-SR04]]


= Demos =
 
* [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Demos/MATLAB/Filter <code>Rekursive Filter in MATLAB<sup>®</sup></code>]
== [[Datei:Lektionen.jpg|60px]] Ausblick zur nächsten Lektion ==
* [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoDebug2MATLAB SVN: <code>DemoDebug2MATLAB</code>]
In der nächsten Lektion wird der Servomotor des AlphaBot mit MATLAB<sup>®</sup> angesteuert.
* [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/AlphaBot/examples/E05_Ultraschall_Entfernungsmessung SVN: <code>E05_Ultraschall_Entfernungsmessung</code>]  
* [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/AlphaBot/examples/E23_RGB_LED  SVN: <code>E23_RGB_LED</code>]
* [https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/AlphaBot/examples/E34_lesePoti SVN: <code>E34_lesePoti</code>]




----
----
→ Termine [[Einführungsveranstaltung_Informatikpraktikum_2_im_SoSe_2025|1]] [[AlphaBot:_Hardware_Support_Package_für_MATLAB|2]] [[AlphaBot:_MATLAB_als_serieller_Monitor|3]] [[AlphaBot: Servo ansteuern|4]] [[AlphaBot:_Motoren_und_Inkrementalgeber|5]] [[AlphaBot: Programmier-Challenge I SoSe25|6]] [[AlphaBot:_Gesteuerte_Fahrt|7]] [[AlphaBot: Geregelte Fahrt mit Linienverfolger|8]] [[AlphaBot: Parklücke suchen|9]] [[AlphaBot: Autonomes Einparken|10]] [[AlphaBot: Programmier-Challenge II SoSe25|11]]<br>
→ Termine [[Einführungsveranstaltung_Informatikpraktikum_2_im_SoSe_2026|1]] [[AlphaBot:_Messdatenverarbeitung_mit_MATLAB|2]] [[AlphaBot:_Hardware_Support_Package_für_MATLAB|3]] [[AlphaBot: Servo_mit_MATLAB_ansteuern|4]] [[AlphaBot:_Motoren_und_Inkrementalgeber|5]] [[AlphaBot: Programmier-Challenge I SoSe26|6]] [[AlphaBot:_Gesteuerte_Geradeausfahrt|7]] [[AlphaBot: Geregelte Fahrt mit Linienverfolger|8]] [[AlphaBot: Parklücke suchen|10]] [[AlphaBot: Autonomes Einparken|11]] [[AlphaBot: Programmier-Challenge II SoSe26|12]]<br>
→ zurück zum Hauptartikel: [[AlphaBot_SoSe25|Informatik Praktikum 2]]
→ zurück zum Hauptartikel: [[AlphaBot_SoSe26|Informatik Praktikum 2]]<br>
→ Haben Sie Fragen? [[Informatik Praktikum FAQ]]

Version vom 23. April 2026, 14:28 Uhr

Abb. 1: MATLAB® als serieller Monitor
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 eines Lautsprechers
  • 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 Summer ansteuern.
  • Entfernungen mit dem Ultraschall-Sensor messen.
  • Messwerte in Echtzeit filtern.

Lernzielkontrolle

  • Was sind die Gefahren bei der Verwendung eines AlphaBots?
  • Wann muss ich die Akkus verwenden?
  • Was ist das "Plus" am Arduino Plus?
  • Welche Sensoren und Aktoren sind an den Arduino Plus angeschlossen?
  • Wie stecke ich den Ultraschallsensor ein?
  • Was ist ein Medianfilter und wie funktioniert es?

Versuchsvorbereitung

  • Arbeiten Sie sich anhand des Wiki-Artikels in den AlphaBot ein. Beachten Sie besonders die Ausrichtung der Akkus. ACHTUNG BRANDGEFAHR!
  • Machen Sie sich mit der Multisensorerweiterung vertraut.
  • Machen Sie sich mit den MATLAB®-Demos vertraut.
  • Lesen Sie die Artikel zu den verwendeten Sensoren.

MATLAB®-Vorbereitung

  • Das MATLAB Support Package für Arduino Hardware muss unter MATLAB® installiert werden
    • Starten Sie MATLAB®.
    • Wählen Sie unter Add-Ons das Get 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.

Tutorials

Demos

Warnung

  • Der AlphaBot verwendet sehr viele Sensoren, daher sind Ports mehrfach verwendet. Es kann somit zu Komplikationen kommen. Entfernen Sie einfach die Steckbrücken der Mehrfachbelegung.
  • Schützen Sie den Ultraschallsensor vor Verpolung! Beachten Sie die Beschriftung.

Versuchsdurchführung

Aufgabe 2.1: MATLAB® als serieller Monitor

  1. Nutzen Sie MATLAB® um die Messdaten direkt (live) darzustellen.
  2. Verbinden Sie den Arduino mit dem PC via USB.
  3. Greifen Sie hierzu auf die serielle Schnittstelle zu.
  4. Stellen Sie sicher, das die Multisensorerweiterung auf dem AlphaBot steckt.
  5. 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

Aufgabe 2.2: AlphaBot Ultraschall

  1. Messen Sie auf ein ebenes statisches Ziel in ca. 30 cm Entfernung.
  2. Lesen Sie für 10 s die Messwerte des Ultraschallsensor ein [1].
  3. Zeigen Sie die Distanzwerte in cm über der Zeit live während der Messung an.
  4. Fehlmessungen (inf) dürfen nicht angezeigt werden.
  5. Speichern Sie die Ergebnis-Arrays Zeit und Distanz in der Datei Ultraschall.mat.

Nützlich MATLAB®-Befehle: aduino, figure, plot, xlabel, ylabel, tic, toc, readDistance, set, if..else, isinf, save, clear

Arbeitsergebnisse in SVN: leseUltraschall.m, Ultraschall.mat

Aufgabe 2.3: Glättung der Ultraschallmessung

  1. Nutzen Sie Ihre Ergebnisse aus Aufgabe 2.3 (Ultraschall.mat), um die Messwerte zu glätten.
  2. Lesen Sie zyklisch die Daten aus der Datei Ultraschall.mat.
  3. Filtern Sie die Daten zyklisch mit einem gleitenden Mittelwertfilter, einem rekursiven Medianfilter und einem rekursiven Tiefpassfilter.
  4. Vergleichen Sie die Ergebnisse der Filter in einem Plot mit Achsenbeschriftung und Legende anhand technischer Kriterien (Rauschunterdrückung, Verzögerung, Ausreisserfilterung, Programmieraufwand).


Nützlich MATLAB®-Befehle: addpath

Arbeitsergebnisse in SVN: filtereUltraschall.m

Lernzielkontrollfragen:

  1. Wurde das Signalrauschen geglättet?
  2. Ist das gefilterte Signal verzögert?
  3. Welchen Einfluss haben die Filterparameter?
  4. Wie verhalten sich die gefilterten Signal bei Ausreißern?

Aufgabe 2.4: Nachhaltige Doku

Sichern Sie alle Ergebnisse mit beschreibendem Text (message) in SVN.

Arbeitsergebnis in SVN: SVN Log


Ausblick zur nächsten Lektion

In der nächsten Lektion wird der Servomotor des AlphaBot mit MATLAB® angesteuert.



→ Termine 1 2 3 4 5 6 7 8 10 11 12
→ zurück zum Hauptartikel: Informatik Praktikum 2
→ Haben Sie Fragen? Informatik Praktikum FAQ