Barometer mit Matlab/Simulink: Unterschied zwischen den Versionen
Zeile 21: | Zeile 21: | ||
=== Messgenauigkeit === | === Messgenauigkeit === | ||
Die Messgenauigkeit des Sensors beläuft sich beim Druck auf ein Tausendstel Zoll auf der Quecksilbersäule. Umgerechnet in Pascal ergibt dies 3,386 Pascal pro Schritt. | Die Messgenauigkeit des Sensors beläuft sich beim Druck auf ein Tausendstel Zoll auf der Quecksilbersäule. Umgerechnet in Pascal ergibt dies 3,386 Pascal pro Schritt. | ||
Die Temperatur wird in 0,1°C Schritten gemessen.<ref name = 'NXT Barometer'>[http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=NBR1036+''NXT Barometric Sensor | Die Temperatur wird in 0,1°C Schritten gemessen.<ref name = 'NXT Barometer'>[http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=NBR1036+]''NXT Barometric Sensor | ||
NXT Barometric Sensor (NBR1036)'']. Abgerufen am 3. Juli 2018.</ref><br/> | NXT Barometric Sensor (NBR1036)'']. Abgerufen am 3. Juli 2018.</ref><br/> | ||
Version vom 3. Juli 2018, 17:19 Uhr
Sensor: NXT Barometric Sensor (NBR1036)
Autor: Tobias Wemmer
Einleitung
Aufgabenstellung
- Lesen Sie den Sensor mit MATLAB/Simulink aus (MATLAB/Simulink Toolbox).
- Beschreiben, untersuchen und verstehen Sie Ihre Signalverarbeitungskette.
NXT Baromitric Sensor (NBR1036)
Vorstellung des Sensors
Bei dem Sensor handelt es sich um den „NXT Baromitric Sensor (NBR1036)". Wie der Name schon sagt, ist dieser Sensor ein Barometer, jedoch kann der Sensor neben dem Druck auch die Temperatur messen. Dadurch eignet sich der Sensor gut als Komponente einer Wetterstation.[1]
Wie Abbildung 1 zu entnehmen ist, lässt sich der Sensor auf den ersten Blick nicht von anderen NXT Sensoren unterscheiden, da er das Standard NXT-Gehäuse besitzt. Zur Unterscheidung der einzelnen Sensoren ist eine Beschriftung auf der Unterseite des Gehäuses vorhanden.
Messgenauigkeit
Die Messgenauigkeit des Sensors beläuft sich beim Druck auf ein Tausendstel Zoll auf der Quecksilbersäule. Umgerechnet in Pascal ergibt dies 3,386 Pascal pro Schritt.
Die Temperatur wird in 0,1°C Schritten gemessen.[1]
Einstellungsmöglichkeiten für die Einheiten der Messung
Der Sensor lässt sich dahingehend einstellen, dass die Druck-Signale in inHg (Zoll auf der Quecksilbersäule) oder in hPa ausgegeben werden können. Für die Temperatur lassen sich die Signale in °C oder °F ausgeben.[1]
Kommunikation des Sensors
Der Sensor kommuniziert über eine I²C-Schnittstelle.
Anschluss des Sensors
Normalerweise würde der Sensor über einen NXT Stein angesteuert und ausgelesen werden. Das Ganze funktioniert als Plug-and-Play. Zum Einlesen des Sensors in Matlab/Simulink wird eine Toolbox der RWTH Aachen benötigt. Mehr Informationen dazu gibt es unter folgendem Link:
https://de.mathworks.com/hardware-support/lego-mindstorms-matlab.html
Alternative Herangehensweisen
Wenn kein NXT-Stein vorhanden ist oder andere Gründe gegen die Verwendung sprechen, so gibt es mehrere Alternativen den Sensor trotzdem auszulesen. Je nach Durchführung und Möglichkeit kann dazu das NXT-Kabel direkt angeschlossen werden. In machen Fällen lässt es sich jedoch nicht vermeiden, dass Kabel aufzuschneiden und die Litzen einzeln auszulesen.
Decoder/Analyser-Ansatz
Es ist möglich den Sensor mittels eines Decoder/Analyser auszulesen. Der Vorteil dabei besteht darin, dass dieser in der Lage ist die Bus-Adresse des Sensors direkt auszulesen. Dies erspart Zeit sofern die Adresse nicht bekannt ist. Weiterhin können die Daten direkt verarbeitet werden.
Ein möglicher Decoder ist der Sigrok. Ein Nachteil bei diesem Ansatz ist die Notwendigkeit des Aufschneidens des Kabels. Ein weiterer Nachteil besteht darin, dass eine Gewisse Vorkenntnis benötigt wird, was Programmierung angeht.[2]
Weitere Informationen zum Sigrok sind unter dem folgenden Link zu erhalten:
https://sigrok.org/wiki/Protocol_decoders
Arduino-Ansätze
Es gibt zwei Ansätze, mit denen der Sensor via Arduino ausgelesen werden kann. Beide Ansätze sind relativ ähnlich, sie unterscheiden sich lediglich in der Art und Weise, wie der Sensor an den Arduino angeschlossen wird.
Beim leichten Ansatz wird der Sensor mit seinem NXT-Kabel über ein Dongle an den Arduino angeschlossen. Dabei müssen lediglich die Spannungsversorgung, GND, Die Clock-Leitung und die Signalleitung richtig angeschlossen werden. Der Vorteil dieses Ansatzes liegt darin, dass der Anschluss leichter ist. Auf der anderen Seite ist die Anschaffung eines solchen Dongles mit Kosten verbunden. Ein solches Dongle ist unter folgendem Link erhältlich:
http://www.mindsensors.com/ev3-and-nxt/58-breadboard-connector-kit-for-nxt-or-ev3
Beim schwierigeren Ansatz wird der Sensor über ein Steckbrett oder eine Platine an den Arduino angeschlossen. Dazu muss allerdings das Kabel des Arduinos aufgeschnitten werden. Anschließend müssen die Litzen einzeln ausgelesen werden.
Der Vorteil bei diesem Ansatz besteht darin, dass kein Dongle gekauft werden muss. Wenn allerdings ein solches Dongle bereits vorhanden ist, macht es wenig Sinn den schwierigeren Ansatz zu verfolgen.
Bei beiden Ansätzen gilt es einige Regeln zu beachten, diese werden im folgenden Kapitel näher erläutert.
Vorgehen beim Arduino-Ansatz
Vorgehen bei der Messung
Auswertung Messergebnisse
Auswertung Messunsicherheit
Matlab-Auswertung
Youtube-Video
Zusammenfassung
Ausblick
Quellenverzeichnis
- NXT Barometer: http://www.hitechnic.com/cgi-bin/commerce.cgi?preadd=action&key=NBR1036 (Abgerufen am 03.07.2018)
- Matlab Toolbox: https://de.mathworks.com/hardware-support/lego-mindstorms-matlab.html (Abgerufen am 03.07.2018)
- Sigrok: https://sigrok.org/wiki/Protocol_decoders (Abgerufen am 03.07.2018)
- Arduino Connector: http://www.mindsensors.com/ev3-and-nxt/58-breadboard-connector-kit-for-nxt-or-ev3 (Abgerufen am 03.07.2018)
→ zurück zum Hauptartikel: Signalverarbeitende Systeme