Angewandte Informatik: Entfernungsmessung mit Ultraschall: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 13: | Zeile 13: | ||
* Messwertanalyse mit MATLAB | * Messwertanalyse mit MATLAB | ||
* Messwertfilterung in Echtzeit | * Messwertfilterung in Echtzeit | ||
* Auslegung von Filterparameter | |||
* Ergebnisdarstellung | * Ergebnisdarstellung | ||
* Schwellwertbetrachtung und Anzeige mit Ampelmodul | * Schwellwertbetrachtung und Anzeige mit Ampelmodul | ||
== Lernziele== | == Lernziele== | ||
Nach Durchführung dieser Lektion | Nach Durchführung dieser Lektion können Sie | ||
* | * die Funktion eines Ultraschallsensors erläutern. | ||
* | * die Vor- und Nachteile der Entfernungsmessung mit Ultraschall erläutern. | ||
* mit einem Ultraschallsensors Entfernungen messen. | |||
* Messdaten charakterisieren und anzeigen. | |||
* | * reale Messwerte speichern und via MATLAB<sup>®</sup> zyklisch visualisieren. | ||
* ein rekursives Tiefpassfilter programmiert und parametrieren. | |||
* eine Funktion in MATLAB<sup>®</sup> programmieren und aufrufen. | |||
* LEDs und das Ampelmodul ansteuern. | |||
== Vorbereitung == | == Vorbereitung == | ||
Erlernen Sie die Funktion des Ultraschallsensors und eines rekursiven Tiefpassfilters anhand der verlinkten Fachartikeln Literatur. | Erlernen Sie die Funktion des Ultraschallsensors und eines rekursiven Tiefpassfilters anhand der verlinkten Fachartikeln und Literatur. | ||
== Tutorial == | == Tutorial == | ||
| Zeile 43: | Zeile 37: | ||
== Demos == | == Demos == | ||
{| role="presentation" class="wikitable mw-collapsible mw-collapsed" | |||
| <strong>Tiefpass.m </strong> | |||
|- | |||
| <source line lang="matlab" style="font-size:medium">%**************************************************************** | |||
% Hochschule Hamm-Lippstadt * | |||
%**************************************************************** | |||
% Modul : Tiefpass(x) * | |||
% * | |||
% Datum : 08-Okt-2013 * | |||
% * | |||
% Funktion : Tiefpassfilter 1. Ordnung mit fester * | |||
% Wichtung * | |||
% * | |||
% Implementation : MATLAB R2025b * | |||
% * | |||
% Toolbox : * | |||
% * | |||
% Author : Phil Kim * | |||
% Bearbeitet von Prof. Schneider * | |||
% * | |||
% Quelle : www.jj21.org/kf4b * | |||
% * | |||
% Letzte Änderung : 020.04.2026 * | |||
% * | |||
%***************************************************************/ | |||
function xTPF = Tiefpass(x) | |||
%% Bleibende Variablen anlegen | |||
persistent prevX alpha | |||
%% Beim ersten Durchlauf Initialisierung | |||
if isempty(alpha) | |||
prevX = x; % Letztes Ergebnis | |||
alpha = 0.95; % Filterfrequenz/Wichtung | |||
end | |||
%% Tiefpass 1. Ordnung | |||
xTPF = alpha*prevX + (1 - alpha)*x; | |||
prevX = xTPF; | |||
</source> | |||
|} | |||
= Aufgabe 4: Entfernungsmessung mit Ultraschall = | = Aufgabe 4: Entfernungsmessung mit Ultraschall = | ||
| Zeile 88: | Zeile 123: | ||
|} | |} | ||
'''Arbeitsergebnis:''' <code> | '''Arbeitsergebnis:''' <code>messeUSEntfernung.m</code> | ||
Aktuelle Version vom 20. April 2026, 10:19 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®
- Ansteuerung einer LED
- Entfernungsmessung mittels Ultraschall
- Messwertanalyse mit MATLAB
- Messwertfilterung in Echtzeit
- Auslegung von Filterparameter
- Ergebnisdarstellung
- Schwellwertbetrachtung und Anzeige mit Ampelmodul
Lernziele
Nach Durchführung dieser Lektion können Sie
- die Funktion eines Ultraschallsensors erläutern.
- die Vor- und Nachteile der Entfernungsmessung mit Ultraschall erläutern.
- mit einem Ultraschallsensors Entfernungen messen.
- Messdaten charakterisieren und anzeigen.
- reale Messwerte speichern und via MATLAB® zyklisch visualisieren.
- ein rekursives Tiefpassfilter programmiert und parametrieren.
- eine Funktion in MATLAB® programmieren und aufrufen.
- LEDs und das Ampelmodul ansteuern.
Vorbereitung
Erlernen Sie die Funktion des Ultraschallsensors und eines rekursiven Tiefpassfilters anhand der verlinkten Fachartikeln und Literatur.
Tutorial
- HSHL-Wiki: Ultraschallsensors
- MATHWORKS: Ultraschallsensor einlesen
- HSHL-Wiki: Rekursives Tiefpassfilter
Demos
| Tiefpass.m |
%****************************************************************
% Hochschule Hamm-Lippstadt *
%****************************************************************
% Modul : Tiefpass(x) *
% *
% Datum : 08-Okt-2013 *
% *
% Funktion : Tiefpassfilter 1. Ordnung mit fester *
% Wichtung *
% *
% Implementation : MATLAB R2025b *
% *
% Toolbox : *
% *
% Author : Phil Kim *
% Bearbeitet von Prof. Schneider *
% *
% Quelle : www.jj21.org/kf4b *
% *
% Letzte Änderung : 020.04.2026 *
% *
%***************************************************************/
function xTPF = Tiefpass(x)
%% Bleibende Variablen anlegen
persistent prevX alpha
%% Beim ersten Durchlauf Initialisierung
if isempty(alpha)
prevX = x; % Letztes Ergebnis
alpha = 0.95; % Filterfrequenz/Wichtung
end
%% Tiefpass 1. Ordnung
xTPF = alpha*prevX + (1 - alpha)*x;
prevX = xTPF;
|
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: messeUSEntfernung.m
→ zurück zum Hauptartikel: BSE Angewandte Informatik - SoSe26