Angewandte Informatik: Entfernungsmessung mit Ultraschall: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
 
(22 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 8: Zeile 9:
|}
|}
== 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]
* [[Rekursive_Filter|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


= 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 die aktive Programmlaufzeit.
# 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.
# 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 mit dauerhaftem Leuchten die Entfernung gemäß Tabelle 1 an.
# 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 59: Zeile 126:
|}
|}


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

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