Ultraschall mit Matlab/Simulink: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 32: Zeile 32:
<br/>
<br/>
== Funktionsprinzip ==
== Funktionsprinzip ==
[[Bild:Funktionsweise eines Ultraschallsensors.PNG|thumb|400px|right|Abb.: Funktionsweise eines Ultraschallsensors]]
[[Bild:Funktionsweise eines Ultraschallsensors.PNG|thumb|300px|right|Abb.: Funktionsweise eines Ultraschallsensors]]
Mithilfe des Taktgenerators aktiviert die Steuerelektronik den Leistungsverstärker periodisch, sodass dieser die Sendeeinheit für kurze Zeit mit einer hohen Sinusspannung und damit auch elektrischen Leistung ansteuert. Beim Anlegen der Sinusspannung wird das Piezoelement zum Schwingen angeregt. Hierdurch wird elektrische in mechanische Energie umgewandelt, wodurch der Ultraschallimpuls (Sendeimpuls) entsteht. Δt beschreibt dabei die benötigte Sendezeit des Sendeimpulses. Nach dieser Zeit benötigt der Sender eine gewisse Ausschwingzeit, um wieder in den Anfangszustand zu kommen. In dieser Zeit wechselt die Steuerelektronik vom Sendemodus in den Empfangsmodus. Bei der Empfangseinheit wird der umgekehrte Effekt ausgenutzt. Eine äußere Kraft (einwirkendes Echo) bewirkt auf dem Piezoelement Oberflächenladungen, die über einen Ladungsverstärker als Spannung messbar sind. Somit wird mechanische Energie in elektrische Energie umgewandelt.  
Mithilfe des Taktgenerators aktiviert die Steuerelektronik den Leistungsverstärker periodisch, sodass dieser die Sendeeinheit für kurze Zeit mit einer hohen Sinusspannung und damit auch elektrischen Leistung ansteuert. Beim Anlegen der Sinusspannung wird das Piezoelement zum Schwingen angeregt. Hierdurch wird elektrische in mechanische Energie umgewandelt, wodurch der Ultraschallimpuls (Sendeimpuls) entsteht. Δt beschreibt dabei die benötigte Sendezeit des Sendeimpulses. Nach dieser Zeit benötigt der Sender eine gewisse Ausschwingzeit, um wieder in den Anfangszustand zu kommen. In dieser Zeit wechselt die Steuerelektronik vom Sendemodus in den Empfangsmodus. Bei der Empfangseinheit wird der umgekehrte Effekt ausgenutzt. Eine äußere Kraft (einwirkendes Echo) bewirkt auf dem Piezoelement Oberflächenladungen, die über einen Ladungsverstärker als Spannung messbar sind. Somit wird mechanische Energie in elektrische Energie umgewandelt.  
<br/>
<br/>
Zeile 45: Zeile 45:
<br/>
<br/>
<br/>
<br/>
Die Entfernung <math>s</math> wird mit der gesamten benötigten Echolaufzeit <math>t_{Echo}</math> multipliziert. Da der Ultraschall zum Objekt und wieder zum Empfänger zurücklaufen muss, legt er damit die doppelte Entfernung zurück und muss somit schlussendlich noch halbiert werden.  
Die Entfernung <math>s</math> wird aus der Multiplikation der gesamten benötigten Echolaufzeit <math>t_{Echo}</math> und der Schallgeschwindigkeit <math>c</math> errechnet. Da der Ultraschall zum Objekt und wieder zum Empfänger zurücklaufen muss, legt er damit die doppelte Entfernung zurück und muss somit schlussendlich noch halbiert werden.  
<br/>
<br/>
== Aufbau und Schaltplan ==  
== Aufbau und Schaltplan ==  

Version vom 4. Mai 2018, 15:00 Uhr

Autor: Sven Gaida
Betreuer: Prof. Dr.-Ing. Ulrich Schneider
Sensor: Lego Ultraschall 9846

Das Ziel der Lehrveranstaltung „Signalverarbeitende Systeme“ mit dieser semesterbegleitenden Prüfung ist es eine Signalverarbeitungskette beschreiben, untersuchen und verstehen zu können. Die Untersuchung des Sensors wird mit der Entwicklungsumgebung MATLAB/Simulink durchgeführt.

Einleitung

Der Lego Mindstorms NXT Ultraschallsensor (Artikel 9846), weiterhin nur NXT Ultraschallsensor genannt, ist ein von Lego entwickelter Sensor um Abstände zwischen sich und der Umgebung zu messen. Der NXT Ultraschallsensor wurde erstmalig Anfang 2006 auf der Messe „Consumer Electroncis Show“ vorgestellt und war seitdem ein fester Bestandteil verschiedener Lego Mindstorms NXT-Sets. Heutzutage ist der NXT Ultraschallsensor nur noch ein Auslaufmodell, da die NXT-Serie Anfang 2013 durch die EV3-Serie abgelöst wurde. Aufgrund dieser Erneuerung wurden einige NXT-Bauteile, darunter auch der NXT Ultraschallsensor, durch neuere und verbesserte Bauteile ausgetauscht. [1] Der NXT Ultraschallsensor ermöglicht dem System Abstände zu verschiedenen Objekten berührungslos zu erkennen und ebenfalls die Distanz zum Sensor zu messen.

Messprinzip

Abb.: Schallgeschwindigkeit in Abhängigkeit zur relativen Luftfeuchte bei 20°C

Das Prinzip des Sensors beruht auf der physikalischen Grundlage der Akustik und der Ausbreitung des Schalls. Der Ultraschall liegt bei Frequenzen oberhalb des menschlichen Hörbereiches und wird von 20kHz bis 1GHz definiert. Der Ultraschall kann entweder pneumatisch oder elektrisch erzeugt werden und dieser kann sich im Gegensatz zu elektromagnetischen Wellen nur in Materie ausbreiten. In vielen Anwendungen ist diese Materie hauptsächlich Luft. Die Abstandsmessung mit Ultraschall basiert auf einer Laufzeitmessung eines Schallpulses. Dafür ist die genaue Kenntnis der Schallgeschwindigkeit, ebenfalls Ausbreitungsgeschwindigkeit genannt, für die Messungen eine primäre Größe. Die Schallgeschwindigkeit hängt von zwei weiteren Größen ab, die die Messung stark beeinflussen können: die Lufttemperatur und die relative Luftfeuchte. Zusätzlich wird ein Absorptionskoeffizient normiert, der verschiedene Verlustmechanismen wie die Abschwächung von Schallwellen in der Luft beschreibt.

Lufttemperatur

Hierfür gilt folgende Gleichung:



Dabei ist die Temperatur in °C und die Schallgeschwindigkeit bei . Die Schallgeschwindigkeit ist somit proportional zur Wurzel der Temperatur.

Tab.: Schallgeschwindigkeit als Funktion zur Lufttemperatur
T in °C -20 0 +20 +40 +60 +80
c in m/s 319,3 331,6 343,8 355,3 366,5 377,5

Relative Luftfeuchte

Die nebenstehende Grafik zeigt die Abhängigkeit der Schallgeschwindigkeit als Funktion zur relativen Luftfeuchte bei 20°C. Hierbei ist zu erkennen, dass mit zunehmender Luftfeuchte sich die Schallgeschwindigkeit erhöht.

Funktionsprinzip

Abb.: Funktionsweise eines Ultraschallsensors

Mithilfe des Taktgenerators aktiviert die Steuerelektronik den Leistungsverstärker periodisch, sodass dieser die Sendeeinheit für kurze Zeit mit einer hohen Sinusspannung und damit auch elektrischen Leistung ansteuert. Beim Anlegen der Sinusspannung wird das Piezoelement zum Schwingen angeregt. Hierdurch wird elektrische in mechanische Energie umgewandelt, wodurch der Ultraschallimpuls (Sendeimpuls) entsteht. Δt beschreibt dabei die benötigte Sendezeit des Sendeimpulses. Nach dieser Zeit benötigt der Sender eine gewisse Ausschwingzeit, um wieder in den Anfangszustand zu kommen. In dieser Zeit wechselt die Steuerelektronik vom Sendemodus in den Empfangsmodus. Bei der Empfangseinheit wird der umgekehrte Effekt ausgenutzt. Eine äußere Kraft (einwirkendes Echo) bewirkt auf dem Piezoelement Oberflächenladungen, die über einen Ladungsverstärker als Spannung messbar sind. Somit wird mechanische Energie in elektrische Energie umgewandelt.

Erfassungsbereich

Jeder Ultraschallsensor hat einen gewissen Erfassungsbereich in dem der Sensor die Objekte erkennen kann. Diese wird von der kleinsten und größten Reichweite begrenzt. Laut Datenblatt beträgt die Reichweite 0 bis 255cm mit einer Messungenauigkeit von 3cm. Eine sehr geringe Entfernung kann mit einem Ultraschallsensor nicht erreicht werden, da dieser Bereich als Blindzone bezeichnet wird. In dieser Blindzone kann der Ultraschallsensor kein Objekt detektieren. Sie wird von der Sendeimpulsdauer und der Ausschwingzeit des Senders verursacht, da während des sendens des Sendeimpulses kein Echosignal empfangen werden kann.

Distanzmessung

Die Distanzmessung zum nächstgelegenen Objekt kann mit folgender Formel berechnet werden:



Die Entfernung wird aus der Multiplikation der gesamten benötigten Echolaufzeit und der Schallgeschwindigkeit errechnet. Da der Ultraschall zum Objekt und wieder zum Empfänger zurücklaufen muss, legt er damit die doppelte Entfernung zurück und muss somit schlussendlich noch halbiert werden.

Aufbau und Schaltplan

Abb.: Schaltplan des Lego Mindstorms NXT Ultraschallsensors

Primäre Elemente des Sensors sind der Mikrocontroller ESC015 und der dazugehörige externe Oszillator mit einer Frequenz von 3.58MHz, die Piezo Sender und Empfänger TCT40-12F2 / TCT40-12S2 und die 6-fache invertierende Treiberstufe mit dem Baustein CD4049.
Der ESC015 ist ein spezieller 4-bit RISC Sound Prozessor mit drei verschiedenen I/O Ports, wobei Port 1 nur als reiner Input-Port verwendet werden darf. Alle Ports haben Softwarekontrollierte "Pull Low" Widerstände. Zudem verfügt der Mikrocontroller über eine I2C-Schnittstelle.

Tab.: ESC015 Pinbelegung
Symbol I/0 Funktionsbeschreibung
OSCI I Oszillator In
OSCO O Oszillator Out
P1.0~3 I Bits 0~3 Port 1
P2.0~3 I/O Bits 0~3 Port 2
P3.0~3 I/O Bits 0~3 Port 3
VCC I 2.2V bis 5.1V Versorgungsspannung
GND I Masse
RESETB I Reset Pin (intern pull-high)


Der Baustein CD4049 ist ein sogenannter Hex invertierender Treiber/Verstärker. Das Hex (=6) bezieht sich auf die Anzahl der vorhandenen Treiber. Der CD4049 hat primär zwei verschiedene Anwendungsfälle. Zum Einen kann dieser Baustein als Logikbaustein eingesetzt werden, womit der Ausgang immer das entgegengesetzte Signal als am Eingang erhält. Das Eingangssignal wird also invertiert. Zum Anderen und wie hier in der Schaltung kann der Baustein als Stromverstärker eingesetzt werden. Dadurch ist es möglich den Piezosender mit einem relativ geringen Strom zu betreiben.
Die Piezo Sender und Empfänger sind für die Ein- und Auskopplung des Ultraschalls zuständig. Hieraus resultiert auch die Empfindlichkeit und die Reichweite den Sensors. Die Sende- und Empfangseinheiten arbeiten bei einer festen Frequenz von 40kHz.

Bussystem

Der Sensor kommuniziert mittels dem I2C-Protokoll auf dem I2C-Bus. I2C, auch TWI (Two-Wire-Interface) genannt, ist eine von der Firma Philips (heute NXT) entwickelte synchrone serielle Zweidraht-Verbindung, somit werden für die Kommunikation mit dem Sensor nur zwei weitere Leitungen, die Taktleitung SCL (Serial Clock) und die Datenleitung SDA (Serial Data), benötigt. Obwohl der I2C Bus vor guten 30 Jahren entwickelt worden ist, ist es heutzutage aufgrund der einfachen Implementierung, der niedrigen Kosten und der hohen Übertragungsrate noch immer ein Industriestandard für Steuerungs-, Diagnose und Überwachungslösungen in eingebetteten Systemen. [2]
I2C wurde als Master-Slave-Bus konzipiert, sodass ein Datentransfer immer durch einen Master gestartet wird. Der Master gibt den Takt und den Betriebsmodus vor und initiiert die byteweise Datenübertragung. Mit einer 7-Bit-Adresse können bis zu 112 Slaves und einer 10-Bit-Adresse bis zu 1008 Slaves angesprochen werden.

Einzelnachweise

  1. "Lego Mindstorms NXT" von Wikipedia
  2. "I2C-Bus" von ELV Journal