Angewandte Informatik: Entfernungsmessung mit Ultraschall: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 8: Zeile 8:
|}
|}
== Inhalt ==
== Inhalt ==
In dieser Lektion wird der [[Ultraschallsensor_HC-SR04|Ultraschallsensor HC-SR04]] mit MATLAB<sup>®</sup> eingelesen und seine Messwerte analysiert. Das Messrauschen wird anschließend gefiltert.
* Aussendung und Empfang von Ultraschallimpulsen mit MATLAB<sup>®</sup>
* 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<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 [[Ultraschallsensor_HC-SR04|Ultraschallsensors]] anhand dieses Fachartikeln und der verlinkten Primärliteratur.
Erlernen Sie die Funktion des Ultraschallsensors und eines rekursiven Tiefpassfilters anhand der verlinkten Fachartikeln und Literatur.
== Beispiel ==
 
[https://de.mathworks.com/help/matlab/supportpkg/arduinoio.ultrasonic.html Ultraschallsensor einlesen]
== 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 ==
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
| <strong>Tiefpass.m&thinsp;</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 =
  <!--[[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 die aktive Programmlaufzeit.
# 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.
# Sichern Sie Ihre Messwerte in der Datei <code>Ultraschall.mat</code>.
# 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&thinsp;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"
|-
|-
Zeile 59: Zeile 123:
|}
|}


'''Arbeitsergebnis:''' <code>messeUltraschallEntfernung.m</code>
'''Arbeitsergebnis:''' <code>messeUSEntfernung.m</code>
 
 
 
----
----
→ zurück zum Hauptartikel: [[BSE Angewandte Informatik - SoSe26]]
→ zurück zum Hauptartikel: [[BSE Angewandte Informatik - SoSe26]]

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

Demos

Aufgabe 4: Entfernungsmessung mit Ultraschall

  1. Lesen Sie die Messwerte des Ultraschallsensor ein [1].
  2. Eine rote LED signalisiert den Programmstart.
  3. Zeigen Sie die Distanzwerte in cm über der Zeit an.
  4. Nutzen Sie ein Tiefpassfilter, um das Messwertrauschen während der Laufzeit in Echtzeit zu entstören.
  5. Ein Ampelmodul zeigt die Entfernung an.
  6. Sichern Sie nach 30 s Laufzeit Ihre Messwerte Zeit in s, Distanz in cm und die gefilterten Werte DistanzTP in der Datei Ultraschall.mat.
Entfernung Farbe
x > 20 cm grün
10 cm < x < 20 cm gelb
x < 10 cm rot rot

Arbeitsergebnis: messeUSEntfernung.m



→ zurück zum Hauptartikel: BSE Angewandte Informatik - SoSe26