Angewandte Informatik: Entfernungsmessung mit Ultraschall: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Keine Bearbeitungszusammenfassung |
|||
| Zeile 8: | Zeile 8: | ||
|} | |} | ||
== Inhalt == | == Inhalt == | ||
* Aussendung und Empfang von | * Aussendung und Empfang von Ultraschallimpulsen mit MATLAB<sup>®</sup> | ||
* Entfernungsmessung mittels Ultraschall | |||
* Messwertanalyse mit MATLAB | |||
* Messwertfilterung in Echtzeit | |||
* Ergebnisdarstellung | |||
== Inhalt == | == Inhalt == | ||
| Zeile 26: | Zeile 30: | ||
* haben Sie die Filter zyklisch auf Ultraschallmesswerte angewendet und das Filterverhalten analysiert. | * haben Sie die Filter zyklisch auf Ultraschallmesswerte angewendet und das Filterverhalten analysiert. | ||
* können Sie eine Funktion in MATLAB<sup>®</sup> programmieren und aufrufen. | * können Sie eine Funktion in MATLAB<sup>®</sup> programmieren und aufrufen. | ||
== Vorbereitung == | |||
Erlernen Sie die Funktion des Ultraschallsensors und eines rekursiven Tiefpassfilters anhand der verlinkten Fachartikeln Literatur. | |||
== Tutorial == | == Tutorial == | ||
* [[Ultraschallsensor_HC-SR04|HSHL-Wiki: Ultraschallsensors]] | |||
* [https://de.mathworks.com/help/matlab/supportpkg/arduinoio.ultrasonic.html MATHWORKS: Ultraschallsensor einlesen] | |||
* [[Arduino:_Ultraschallsensor_entstören|HSHL-Wiki: Rekursives Tiefpassfilter]] | |||
== | == Demos == | ||
= Aufgabe 4: Entfernungsmessung mit Ultraschall = | = Aufgabe 4: Entfernungsmessung mit Ultraschall = | ||
<!--[[Datei:Gift-9344 128.gif|50px]]'''Hinweis: Mit der Lösung dieser Aufgabe und Sicherung in SVN können Sie Bonuspunkte erwerben.'''--> | <!--[[Datei:Gift-9344 128.gif|50px]]'''Hinweis: Mit der Lösung dieser Aufgabe und Sicherung in SVN können Sie Bonuspunkte erwerben.'''--> | ||
# Lesen Sie 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 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]. | ||
# Eine rote LED signalisiert | # Eine rote LED signalisiert den Programmstart. | ||
# Zeigen Sie die Distanzwerte in cm über der Zeit an. | # Zeigen Sie die Distanzwerte in cm über der Zeit an. | ||
# Nutzen Sie ein [[Arduino:_Ultraschallsensor_entstören|Tiefpassfilter]], um das Messwertrauschen während der Laufzeit in Echtzeit zu entstören. | # Nutzen Sie ein [[Arduino:_Ultraschallsensor_entstören|Tiefpassfilter]], um das Messwertrauschen während der Laufzeit in Echtzeit zu entstören. | ||
# Ein Ampelmodul zeigt die Entfernung an. | # Ein Ampelmodul zeigt die Entfernung an. | ||
# Sichern Sie nach 30 s Laufzeit Ihre Messwerte <code>Zeit</code> in s, <code>Distanz</code> in cm und die gefilterten Werte <code>DistanzTP</code> in der Datei <code>Ultraschall.mat</code>. | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Version vom 20. April 2026, 08:07 Uhr
| Autor: | Prof. Dr.-Ing. Schneider |
| Modul | Business and Systems Engineering, Angewandte Mathematik und Informatik, Übung, Sommersemester |
| Modulbezeichnung: | BSE-M-2-1.09 |
Inhalt
- Aussendung und Empfang von Ultraschallimpulsen mit MATLAB®
- Entfernungsmessung mittels Ultraschall
- Messwertanalyse mit MATLAB
- Messwertfilterung in Echtzeit
- Ergebnisdarstellung
Inhalt
- Einarbeitung in MATLAB®
- Programmierung und Anwendung eines gleitenden Mittelwertfilters
- Programmierung und Anwendung eines rekursiven Tiefpassfilters
- Auslegung von Filterparameter
- Anwendung der Filter auf eine Ultraschallmessung
- Vergleich der Filter anhand technischer Kriterien
Lernziele
Nach Durchführung dieser Lektion
- können Sie reale Messwerte speichern und via MATLAB® zyklisch visualisieren.
- haben Sie ein gleitendes Mittelwertfilter programmiert.
- haben Sie ein rekursives rekursiven Tiefpassfilter programmiert.
- können Sie die Filter parametrieren.
- haben Sie die Filter zyklisch auf Ultraschallmesswerte angewendet und das Filterverhalten analysiert.
- können Sie eine Funktion in MATLAB® programmieren und aufrufen.
Vorbereitung
Erlernen Sie die Funktion des Ultraschallsensors und eines rekursiven Tiefpassfilters anhand der verlinkten Fachartikeln Literatur.
Tutorial
- HSHL-Wiki: Ultraschallsensors
- MATHWORKS: Ultraschallsensor einlesen
- HSHL-Wiki: Rekursives Tiefpassfilter
Demos
Aufgabe 4: Entfernungsmessung mit Ultraschall
- Lesen Sie die Messwerte des Ultraschallsensor ein [1].
- Eine rote LED signalisiert den Programmstart.
- Zeigen Sie die Distanzwerte in cm über der Zeit an.
- Nutzen Sie ein Tiefpassfilter, um das Messwertrauschen während der Laufzeit in Echtzeit zu entstören.
- Ein Ampelmodul zeigt die Entfernung an.
- Sichern Sie nach 30 s Laufzeit Ihre Messwerte
Zeitin s,Distanzin cm und die gefilterten WerteDistanzTPin der DateiUltraschall.mat.
| Entfernung | Farbe |
|---|---|
| x > 20 cm | grün |
| 10 cm < x < 20 cm | gelb |
| x < 10 cm rot | rot |
| Teillösung |
clear all; close all; clc; % Initialisierung
if exist('hArduino')==0
hArduino = arduino('COM8','Uno','Libraries','Ultrasonic'); % Arduino Objekt erzeugen
disp('Neues Arduino Objekt mit Ultrasonic-Bib erzeugt.')
end
hUltraschall = ultrasonic(hArduino,'D2','D3','OutputFormat','double')
nMesswerte = 100;
%% Messschleife
tic
writeDigitalPin(hArduino, 'D13', 1);
for i=1:nMesswerte
Distanz(i) = readDistance(hUltraschall);
Zeit(i) = toc;
end
writeDigitalPin(hArduino, 'D13', 0);
%% Ergebnisdarstellung
plot(Zeit,Distanz*100,'r.-');
xlabel('Zeit in s')
ylabel('Distanz in cm')
clear hArduino
|
Arbeitsergebnis: messeUltraschallEntfernung.m
→ zurück zum Hauptartikel: BSE Angewandte Informatik - SoSe26