Angewandte Informatik: Entfernungsmessung mit Ultraschall: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(15 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Datei:Bild-SR04.jpg|300px|thumb|rechts|Abbildung 1: Ultraschallsensor HC-SR04]]
{|class="wikitable"
{|class="wikitable"
|-
|-
Zeile 18: Zeile 19:


== Lernziele==
== Lernziele==
Nach Durchführung dieser Lektion
Nach Durchführung dieser Lektion können Sie
* können Sie reale Messwerte speichern und via MATLAB<sup>®</sup> zyklisch visualisieren.
* die Funktion eines Ultraschallsensors erläutern.
* haben Sie ein gleitendes Mittelwertfilter programmiert.
* die Vor- und Nachteile der Entfernungsmessung mit Ultraschall erläutern.
* haben Sie ein rekursives rekursiven Tiefpassfilter programmiert.
* mit einem Ultraschallsensors Entfernungen messen.
* können Sie die Filter parametrieren.
* Messdaten charakterisieren und anzeigen.
* haben Sie die Filter zyklisch auf Ultraschallmesswerte angewendet und das Filterverhalten analysiert.
* reale Messwerte speichern und via MATLAB<sup>®</sup> zyklisch visualisieren.
* können Sie eine Funktion in MATLAB<sup>®</sup> programmieren und aufrufen.
* 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 ==
* [[Ultraschallsensor_HC-SR04|HSHL-Wiki: Ultraschallsensors]]
* [[Ultraschallsensor_HC-SR04|HSHL-Wiki: Ultraschallsensors]]
* [https://de.mathworks.com/help/matlab/supportpkg/arduinoio.ultrasonic.html MATHWORKS: Ultraschallsensor einlesen]
* [https://de.mathworks.com/help/matlab/supportpkg/arduinoio.ultrasonic.html MATHWORKS: Ultraschallsensor einlesen]
* [[Arduino:_Ultraschallsensor_entstören|HSHL-Wiki: Rekursives Tiefpassfilter]]
* [[Rekursive_Filter|HSHL-Wiki: Rekursives Tiefpassfilter]]


== Demos ==
== 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


= Aufgabe 4: Entfernungsmessung mit Ultraschall =
%% Tiefpass 1. Ordnung
xTPF = alpha*prevX + (1 - alpha)*x;
prevX = xTPF;
</source>
|}
 
= Aufgaben: 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 den Programmstart.
# Eine rote LED signalisiert den Programmstart. Sobald Messwerte eintreffen erlischt die rote LED und das Ampelmodul übernimmt die Anzeige.
# 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 mit dauerhaftem Leuchten die Entfernung gemäß Tabelle 1 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>.
# Sichern Sie nach mind. 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"
|+ Tabelle 1: Zuornung zu Farben des Ampelmoduls
|-
|-
! Entfernung !! Farbe  
! Entfernung !! Farbe  
|-
|-
| x > 20&thinsp;cm || grün
| x 20&thinsp;cm || grün
|-
|-
| 10&thinsp;cm < x < 20&thinsp;cm|| gelb
| 10&thinsp;cm < x < 20&thinsp;cm|| gelb
|-
|-
| x < 10&thinsp;cm rot || rot
| x 10&thinsp;cm || rot
|}
|}
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"
Zeile 81: Zeile 126:
|}
|}


'''Arbeitsergebnis:''' <code>messeUltraschallEntfernung.m</code>
'''Arbeitsergebnis:''' <code>messeUSEntfernung.m</code>,  <code>Ultraschall.mat</code>





Aktuelle Version vom 15. Juni 2026, 16:35 Uhr

Abbildung 1: Ultraschallsensor HC-SR04
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

Aufgaben: Entfernungsmessung mit Ultraschall

  1. Lesen Sie die Messwerte des Ultraschallsensor ein [1].
  2. Eine rote LED signalisiert den Programmstart. Sobald Messwerte eintreffen erlischt die rote LED und das Ampelmodul übernimmt die Anzeige.
  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 mit dauerhaftem Leuchten die Entfernung gemäß Tabelle 1 an.
  6. Sichern Sie nach mind. 30 s Laufzeit Ihre Messwerte Zeit in s, Distanz in cm und die gefilterten Werte DistanzTP in der Datei Ultraschall.mat.
Tabelle 1: Zuornung zu Farben des Ampelmoduls
Entfernung Farbe
x ≥ 20 cm grün
10 cm < x < 20 cm gelb
x ≤ 10 cm rot

Arbeitsergebnis: messeUSEntfernung.m, Ultraschall.mat



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