ARD VIB 01 - Piezo Vibrationssensor: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 217: Zeile 217:


====Bildschirmausgabe====
====Bildschirmausgabe====
[[Datei:Display Initialisierungsablauf.png|rechts|mini|300px| Abb. 11:  Display Initialisierungsablauf <ref name="vid" />]]
[[Datei:Display Initialisierungsablauf.png|rechts|mini|400px| Abb. 11:  Display Initialisierungsablauf <ref name="vid" />]]
Eine funktionierende Bildschirmausgabe konnte nicht erreicht werden. Dazu muss der Bildschirm über den gezeigten SPI-Block gesteuert und zunächst initialisiert werden. Das Schreiben der Register zur Initialisierung über eine S-Funktion hat nicht funktioniert, da die Wire.h-Bibliothek nicht eingebunden werden konnte. Ein zweiter Versuch, die Werte im richtigen Timing mithilfe einer Clock selbst zu schreiben, blieb auch erfolglos. Allerdings konnte eine Kommunikation mit dem Bildschirm aufgebaut werden, welche die Bildschirmbeleuchtung zum Blinken gebracht hat. In Abbildung 11 ist die Reihenfolge der zu setzenden Register und das Timing zu sehen, um den Bildschirm anschließend zu nutzen.
Eine funktionierende Bildschirmausgabe konnte nicht erreicht werden. Dazu muss der Bildschirm über den gezeigten SPI-Block gesteuert und zunächst initialisiert werden. Das Schreiben der Register zur Initialisierung über eine S-Funktion hat nicht funktioniert, da die Wire.h-Bibliothek nicht eingebunden werden konnte. Ein zweiter Versuch, die Werte im richtigen Timing mithilfe einer Clock selbst zu schreiben, blieb auch erfolglos. Allerdings konnte eine Kommunikation mit dem Bildschirm aufgebaut werden, welche die Bildschirmbeleuchtung zum Blinken gebracht hat. In Abbildung 11 ist die Reihenfolge der zu setzenden Register und das Timing zu sehen, um den Bildschirm anschließend zu nutzen. Anschließend könnten werte auf den Display ausgegeben werden.  





Version vom 28. Juli 2024, 22:18 Uhr

Abb. 1: Piezo Vibrationssensor ARD VIB 01 [1]
Autor: Niklas Reeker
Studiengang: Business and Systems Engineering
Modul: BSE-M-2-1.03, Hausarbeit in Angewandte Informatik
Betreuender Professor: Prof. Dr.-Ing. Schneider
Semester: Sommersemester 2024
Abgabetermin: 28.07.2024

Einführung

Der Piezo-Vibrationssensor ARD_VIB_01 wird zur Erfassung und Analyse von Vibrationen genutzt. Diese Vibrationen erzeugen durch den piezoelektrischen Effekt ein Spannungssignal, das proportional zur Stärke der Vibrationen ist. Solche Sensoren finden Anwendung in vielen Bereichen, von der Maschinenüberwachung bis zur Erdbebenforschung. [1]

Dieser Artikel behandelt die technischen Spezifikationen, die Einrichtung, die Durchführung von Messungen sowie die Analyse der Ergebnisse des ARD_VIB_01. Ein besonderer Fokus liegt dabei auf der Integration mit Arduino und Simulink, um präzise und zuverlässige Daten zu erhalten. [1] [2]

Aufgabenstellung

Messen Sie mit dem Piezo Vibrationssensor ARD VIB 01 die Stärke der auf den Sensor einwirkenden Vibrationen.

  • Thema/Fragestellung: Bestimmung der Vibrationsintensität mittels ARD VIB 01, Arduino und Simulink
  • Hypothese: Die Messung von Vibrationen mittels des ARD_VIB_01 Sensors erfolgt zuverlässig und fehlerfrei
  • Einordnung in den Lehrplan: Die Anwendung des ARD_VIB_01 Sensors ist im Bereich der Messtechnik und Signalverarbeitung in der Informatik von Bedeutung. Sie ermöglicht praktische Erfahrungen in der Implementierung von Vibrationssensorik, die in Bereichen wie Maschinenüberwachung und Sicherheitsprüfungen weit verbreitet ist. Anhand dieses Praxisbeispiels werden in der Lernveranstaltung "Angewandte Informatik" folgende Lernziele vermittelt:
    • mit der Versionskontrolle SVN nachhaltig Quelltext (Simulink) entsprechend der Programmierrichtlinien schreiben und sichern.
    • die Mikrocontrollerplattform Arduino modellbasiert mit Simulink programmieren, so dass Sensoren eingelesen und Aktoren angesteuert werden können. [2]

Des Weiteren wird ein tiefes Verständnis für die Sensortechnologie und ein Aufbau von einer Schaltung mit dieser gelehrt.

Projektbeschreibung

Ein Piezo-Vibrationssensor besteht aus einem piezoelektrischen Element, das mechanische Vibrationen in elektrische Signale umwandelt. Diese Signale können zur Überwachung von Maschinen, zur Strukturüberwachung oder zur Erkennung von Erdbeben verwendet werden. Der ARD_VIB_01 Sensor nutzt diese Technologie, um eine präzise und wartungsfreie Vibrationsüberwachung zu ermöglichen. [1]

Im Folgenden ist eine Liste mit den zum Aufbau der Schaltung benötigten Komponenten dargestellt:

Tabelle 2: Materialliste
# Anzahl Material
1 1 Arduino Uno R3
2 1 ARD_VIB_01 Piezo-Vibrationssensor
3 1 LCD Modul 16x02 I2C
4 1 PC mit MATLAB/Simulink R2023b
5 1 Steckbrett
6 5 Jumper Kabel, männlich/männlich, 20 cm

Beschreibung Funktionsweise der verwendeten Hard- und Software

In diesem Abschnitt werden die in Tabelle 2 aufgelisteten Hard- und Softwarekomponenten näher erläutert.

Abb. 2: Arduino Uno R3 [3]

Arduino Uno R3
Der Arduino Uno R3 ist ein Mikrocontroller-Board, das auf dem ATmega328P basiert. Es verfügt über 14 digitale Ein-/Ausgangspins, 6 analoge Eingänge, einen 16 MHz Quarzoszillator, eine USB-Schnittstelle, eine Strombuchse, eine ICSP-Stiftleiste und einen Reset-Button. Der Arduino wird über die Arduino IDE oder Matlab Simulink in Verbindung mit dem Arduino Hardware Support Package programmiert und ist in der Lage, verschiedene Sensoren und Module anzusteuern und Daten zu verarbeiten. [4] [5]

Abb. 3: ARD_VIB_01 Piezo-Vibrationssensor [1]

ARD_VIB_01 Piezo-Vibrationssensor
Der ARD_VIB_01 ist ein Piezo-Vibrationssensor, der mechanische Vibrationen in elektrische Signale umwandelt. Der Sensor besteht aus einem piezoelektrischen Material, das bei mechanischer Belastung elektrische Spannung erzeugt. Diese Spannung kann vom Arduino erfasst und zur Analyse von Vibrationsmustern verwendet werden. Der Sensor eignet sich für Anwendungen wie die Überwachung von Maschinenzuständen oder die Erdbebendetektion. [1]

Abb. 4: LCD Modul 16x02 I2C [6]

LCD Modul 16x02 I2C
Das LCD Modul 16x02 I2C ist ein Display-Modul mit 16 Spalten und 2 Zeilen. Es verwendet die I2C-Schnittstelle, die nur zwei Datenleitungen benötigt, wodurch die Anzahl der benötigten Pins am Arduino reduziert wird. Das Modul ermöglicht die Darstellung von Textinformationen, wie z.B. Benutzername und RFID-Tag-ID. Durch die Integration mit dem Arduino lassen sich die auf dem LCD angezeigten Informationen einfach programmieren und anpassen. [7]

Simulink R2023b Simulink R2023b ist eine grafische Programmierumgebung zur Modellierung, Simulation und Analyse dynamischer Systeme. In diesem Projekt wird Simulink verwendet, um die vom Arduino empfangenen RFID-Daten zu visualisieren und zu verarbeiten. Mit Simulink lassen sich verschiedene Algorithmen zur Datenverarbeitung implementieren und Simulationen durchführen, um das Verhalten des Systems zu analysieren und zu optimieren. [4]

Steckbrett
Ein Steckbrett (Breadboard) ist ein wiederverwendbares Prototyping-Tool, das es ermöglicht, elektronische Schaltungen ohne Löten aufzubauen. Es besteht aus einer Vielzahl von Löchern, in die Komponenten und Verbindungsdrähte gesteckt werden können, um elektrische Verbindungen herzustellen. Das Steckbrett erleichtert das Experimentieren mit verschiedenen Schaltungen und das schnelle Anpassen von Verbindungen, ohne dass dauerhafte Änderungen vorgenommen werden müssen. [8]

Technische Daten

Nachfolgend sind die Technischen Daten des Primärsensors aufgetragen:

Tabelle 3: Technische Daten des Primärsensors [9]
Modell Piezoelektronischer keramischer Chip
Messbereich 0,1 mm/s bis xx mm/s
Messwerte Analog
Betriebsspannung Keine
Größe 36 x 20 x 14 mm
Betriebstemperatur -10 bis 70°C

Pinbelegung

Im Folgenden wird die Pinbelegung des ARD_VIB_01 Piezo-Vibrationssensors und dessen Verbindung zum Arduino Uno R3 dargestellt. Diese Tabelle zeigt, welche Pins des Vibrationssensors mit welchen Pins des Arduino verbunden werden müssen, um eine korrekte Funktion zu gewährleisten.

Tabelle 4: Pinbelegung des ARD_VIB_01 [10]
Pin Belegung Signal
1 GND GND
2 - NC
3 A0 Analog Pin A0

Diese Belegung stellt sicher, dass der Vibrationssensor korrekt mit dem Arduino verbunden ist, sodass die Kommunikation und Datenerfassung zwischen den beiden Geräten reibungslos funktioniert. |}

Funktionsweise Primärsensor und Messschaltung

Abb. 5: Piezoelektrisches Material im Ruhezustand [11]
Abb. 6: Piezoelektrisches Material bei Verformung [11]

In diesem Kapitel werden der Primärsensor und die Messschaltung beschrieben. Dabei wird unter anderem auf den Aufbau und die Funktionsweise des Sensors eingegangen.

Primärsensor: ARD_VIB_01 Piezo-Vibrationssensor
Der ARD_VIB_01 Piezo-Vibrationssensor besteht aus einem piezoelektrischen Material, typischerweise Quarz oder eine polykristalline Keramik, die bei mechanischer Verformung elektrische Ladung erzeugt. Abbildung 5 zeigt die Struktur des Sensors im Ruhezustand. Die roten und schwarzen Kreise repräsentieren die positiven und negativen Ionen, die in einem Gleichgewichtszustand angeordnet sind.
Wenn der Sensor Vibrationen oder mechanische Belastungen ausgesetzt ist (siehe Abbildung 6), verschieben sich die Ionen, wodurch eine elektrische Spannung entsteht. Diese Spannung ist proportional zur Stärke und Frequenz der Vibrationen. Der Sensor erfasst diese Spannung und wandelt sie in ein analoges Signal um, das vom Arduino zur weiteren Verarbeitung gelesen werden kann. [12] [13]

Messschaltung
Die Messschaltung umfasst die Kontakte des ARD_VIB_01, sowie die Bauteile auf der Adapterplatine welche direkt mit dem Arduino verbunden sind. [13]

Versuchsaufbau und Durchführung

In diesem Kapitel wird der Versuchsaufbau , die Implementierung in Simulink und die Versuchsbeobachtung beschrieben. Relevante Themen wie Messunsicherheit, Filterung und Referenzenwerte werden ebenfalls behandelt.

Versuchsaufbau

Abb. 8: Schaltplan[14]
Abb. 9: Anschlussplan[15]


Der Versuchsaufbau zeigt ein Arduino Uno, ein LCD-Display, einen ARD VIB 01 (Piezo Vibrationssensor) und einen Buzzer, die miteinander verbunden sind.

Verkabelung

1.LCD-Display:

  • VCC und GND des Displays sind mit 5V und GND des Arduino verbunden.
  • SDA und SCL des Displays sind mit den entsprechenden Pins am Arduino verbunden (A4 und A5 für I2C-Kommunikation)(aus Datenblatt entnommen).

2.ARD_VIB_01 Piezo-Vibrationssensor:

  • GND des Sensors ist mit GND des Arduino verbunden.
  • Der Ausgangspin des Sensors (A0) ist mit einem analogen Pin des Arduino (A0) verbunden.

3.Buzzer:

  • Der positive Anschluss des Buzzers ist mit einem digitalen Pin des Arduino (D13) verbunden.
  • Der negative Anschluss des Buzzers ist mit GND verbunden.

Funktionsweise

1. Vibrationsmessung: Der ARD_VIB_01 Piezo-Vibrationssensor misst die Vibrationen und gibt eine entsprechende Spannung aus, die am analogen Pin des Arduino eingelesen wird.

2. Datenverarbeitung mit Simulink: Die eingelesenen Spannungswerte werden an Simulink übergeben, wo sie in Schwingungsstärken umgewandelt werden.

3. Anzeige auf dem LCD: Die berechneten Schwingungsstärken werden über den Arduino an das LCD-Display gesendet und angezeigt.

4. Buzzer: Wenn die Vibrationswerte über einen bestimmten Zeitraum einen Schwellenwert überschreiten, wird der Buzzer aktiviert, um einen Ton zu erzeugen.

Implementierung in Simulink

Abb. 10: Simulink-Modell zur Sensorverarbeitung [16]

In Abbildung 10 ist das Simulink-Modell dargestellt. Der Prozess beginnt mit dem Einlesen des analogen Eingangs A0. Das empfangene Digitalwort wird daraufhin umgewandelt und gefiltert. Das gefilterte Signal wird anschließend in einem Diagramm dargestellt. Anschließend wird der Mittelwert des Signals über fünf Messwerte errechnet.

Umwandlung des Digitalwortes in V

Im Simulink-Modell wird das vom Vibrationssensor gelesene Digitalwort in Volt (V) umgewandelt. Der Sensorwert (ein 10-Bit-Digitalwert von 0 bis 1023 mit einer Referenzspannung von 5V) wird durch den Analog-Digital-Wandler (ADC) des Arduino erfasst. Um diesen Wert in Volt umzurechnen, wird der folgende Schritt mit einem Gain durchgeführt:


Dieser umgerechnete Spannungswert wird dann gefiltert und zur weiteren Verarbeitung im Modell verwendet.

Filterung des Signals

Im Simulink-Modell wird ein Medianfilter verwendet, um die Spannungssignale des Vibrationssensors zu glätten. Der Filter hat eine Größe von 30 Werten. Dies bedeutet, dass der Median der letzten 30 gemessenen Werte berechnet wird, um Ausreißer zu minimieren und ein stabileres Signal zu erzeugen. Dieses gefilterte Signal wird dann für die weitere Verarbeitung und zur Steuerung des Buzzers verwendet. Es werden 30 Werte gefiltert um auch bei niedrigen Frequenzen ein konstantes Signal zu erhalten.

Kalibrierung der Spannungswerte

Eine Umrechnung von Spannungs- in Vibrationswerte konnte nicht erfolgen, da es keine Datenblätter gibt, die eine solche Umrechnung ermöglichen. Zudem reagiert der Sensor eher auf härtere Schläge als auf Bewegungen und Frequenzen. Selbst mit einem kleinen Subwoofer war es nicht möglich, die Werte zum Ausschlagen zu bringen, selbst bei verschiedenen Frequenzen und voller Lautstärke. Daher konnte die Messkurve auch nicht händisch erstellt werden. In nachfolgenden werden daher immer die Spannungswerte betrachtet. Eine beispielhafte Umrechnung befindet sich in dem Modell gibt die werte allerdings nur weiter.

Summeransteuerung bei starker Vibration

Bei einer starken Vibration wird ein Buzzer aktiviert. Das Modell ermöglicht somit eine Überwachung und eine akustische Benachrichtigung basierend auf den gemessenen Werten. Steigt der Mittelwert auf über 2V so wird der Buzzer aktiviert. Liegt der Wert darunter bleibt dieser abgeschaltet.

Bildschirmausgabe

Abb. 11: Display Initialisierungsablauf [11]

Eine funktionierende Bildschirmausgabe konnte nicht erreicht werden. Dazu muss der Bildschirm über den gezeigten SPI-Block gesteuert und zunächst initialisiert werden. Das Schreiben der Register zur Initialisierung über eine S-Funktion hat nicht funktioniert, da die Wire.h-Bibliothek nicht eingebunden werden konnte. Ein zweiter Versuch, die Werte im richtigen Timing mithilfe einer Clock selbst zu schreiben, blieb auch erfolglos. Allerdings konnte eine Kommunikation mit dem Bildschirm aufgebaut werden, welche die Bildschirmbeleuchtung zum Blinken gebracht hat. In Abbildung 11 ist die Reihenfolge der zu setzenden Register und das Timing zu sehen, um den Bildschirm anschließend zu nutzen. Anschließend könnten werte auf den Display ausgegeben werden.


Verwendete Toolbox: DSP System Toolbox, Simulink Support Package für Arduino Hardware

Versuchsdurchführung

Abb. 5: Simulink-Modell

Das Modell zur Datenverarbeitung wurde gemäß Abb. 5 in Simulink aufgebaut. Die Messdaten wurden aufgezeichnet. Ein Video der Versuchsdurchführung findet sich hier.

Modelleinstellungen: Arduino Uno, Solver: Fixed-step, discrete, Abtastrate: 0,001 s

Versuchsbeobachtung

Abb. 6: Darstellung des Rohsignals des IR-Entfernungssensors (rote Kurve)
Abb. 7: Darstellung von dynamischen Messwerten des IR-Entfernungssensors

Das Signal des Sensors weist alle 40 ms systematische Ausreisser auf (vgl. Abb. 6, rote Kurve).

Auswertung

Die Messhypothese wurde verworfen. Der Sensor weist systematische Messwertausreisser auf.

Die Ausreisser lassen sich mit einem Signalfilter eliminieren. Hierzu eignet sich ein Rangordnungsfilter (z. B. Median-Filter). Das Filter wird hierzu auf eine Fensterbreite von 30 Werten eingestellt. Das zufriedenstellende Filterergebnis für statische Werte zeigt Abb. 6 als blaue Kurve. Es konnte mit dynamische Werten verifiziert werden (vgl. Abb. 7). Das Datenblatt ([2, S. 6]) belegt die Messungen und bezeichnet die Messausreisser als "instabile Ausgabe" für maximal 5 ms alle 40 ms. Mit 50 Werten erhöht sich die Filterwirkung, es entsteht jedoch ein Delay von 10 ms. Mit 10 Werten ist die Filterwirkung zu gering.

Zusammenfassung und Ausblick

  • Zusammenfassung der Kapitel 1-4
  • Diskussion der Ergebnisse
  • Ausblick
  • Selbstreflexion/Lessons learned

Ergebnisvideo

Binden Sie hier Ihr Ergebnisvideo ein.

Anleitung: Videos im Wiki einbinden

Lernzielkrontrolle

Beantworten Sie in Ihrem Artikel die Lernzielkontrollfragen.

Literatur

Zitieren Sie nach DIN ISO 690:2013-10.

Anhang

Datenblätter

Simulink-Modell

Originaldateien

  • PAP
  • Schaltplan,...

→ zurück zum Hauptartikel: BSE Angewandte Informatik SoSe24 | Hausarbeit SoSe24