Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

Sensormodule und Visuino - Kapitel 7

In diesem Kapitel werden angesprochen

  • HW-123 Modul mit einem MPU-6050 (3-Achsen-Beschleunigungs, 3-Achsen-Drehratensensor(Gyroskop))
  • LSM6DS3TR IMU (3-Achsen-Beschleunigungs, 3-Achsen-Drehratensensor(Gyroskop)) im Arduino UNO WiFi R2

Module sind immer herstellerspezifisch aufgebaut und können sich deshalb - bei gleicher Namensbelegung - voneinander unterscheiden. Vor dem Aufbau einer Schaltung ist das Studium der zugehörigen Datenblätter deshalb unerlässlich.

Das HW-123 Modul

 

Abb. 1 - HW-123 Modul

Das HW-123 Modul enthält den MEMS-Chip MPU-6050 (rot umrandet) sowie elektronische Komponenten zur Datenübertragung (I2C-Schnittstelle u.a.).

Grün markiert sind die auf der Platine aufgedruckten Raumachsen X und Y für den Beschleunigungs- und den Drehratensensor. Bewegungen in der angegebenen Pfeilrichtung werden positiv, entgegen der Pfeilrichtung negativ bewertet (s. Abb. 3).

Der Prozessor MPU-6050 (Auszug aus dem Datenblatt)

 

Ein MEMS (Mikro-Electro-Mechanical-Systems), wie der MPU-6050 (s. Abb. 2), ist eine Kombination von mechanischen und elektro-mechanischen Komponenten auf engstem Raum, die sowohl mechanische als auch elektrische Funktionen vereinen, physikalische Veränderungen in ihrer Umgebung erfassen und in elektrische Signale umwandeln. Die Abmessungen der Komponenten liegen im µm Bereich.

Der MEMS Sensorchip MPU-6050, der in diesem Kapitel vorgestellt wird, ist in einem 4x4 mm Gehäuse untergebracht und enthält einen Beschleunigungs- und einen Gyro-Sensor..

 

 

 

 

 

 

Abb,.2 - MPU-6050

Der 4x4 mm große Chip MPU-6050 der Fa. INVENSENSE.

Einige Leistungsdaten zum Gyro-Sensor (Rotation)

  • Der MPU-6050 besteht aus drei unabhängigen vibrierenden Drehratengyroskopen, die Drehungen um die X-, Y- und Z-Achse erfassen.
  • Wenn die Gyroskope um eine der Sensorachsen rotieren, verursacht der Coriolis-Effekt eine Vibration, die von einem kapazitiven Aufnehmer erfasst wird (s. Abb. 3).
  • Das Signal wird verstärkt, demoduliert und gefiltert, um eine Spannung zu erzeugen, die proportional zur Drehrate ist. Diese Spannung wird mithilfe einzelner On-Chip-16-Bit-Analog-Digital-Converter (ADCs) digitalisiert, um jede Achse abzutasten.
  • Der volle Messbereich der Gyroskopsensoren kann digital auf ±250, ±500, ±1000 oder ±2000 Grad pro Sekunde (dps) programmiert werden.
  • Die ADC-Abtastrate ist von 8.000 Abtastungen pro Sekunde bis hinunter zu 3,9 Abtastungen pro Sekunde programmierbar, und benutzerdefinierte Tiefpassfilter ermöglichen eine große Bandbreite an Grenzfrequenzen.

 

Einige Leistungsdaten zum 3-achsigen Beschleunigungssensor (Translation)

  • Der 3-achsige Beschleunigungsmesser des MPU-6050 verwendet separate Prüfmassen für jede Achse. Die Beschleunigung entlang einer bestimmten Achse bewirkt eine Verschiebung der entsprechenden Prüfmasse; kapazitive Sensoren erkennen die Verschiebung differenziell.
  • Wenn das Gerät auf eine flache Oberfläche gelegt wird, zeigt es 0 g auf der X- und Y-Achse und +1 g auf der Z-Achse an (s. Abb. 3).
  • Der Skalierungsfaktor der Beschleunigungsmesser wird im Werk kalibriert und ist nominell unabhängig von der Versorgungsspannung.
  • Jeder Sensor verfügt über einen eigenen Sigma-Delta-ADC zur Bereitstellung digitaler Ausgänge. Der volle Skalenbereich des digitalen Ausgangs kann auf ±2 g, ±4 g, ±8 g oder ±16 g eingestellt werden.

I2C-Kommunikationsschnittstelle

  • Die Kommunikation der MPU-6050 erfolgt über eine serielle I2C-Schnittstelle; die MPU fungiert bei der Kommunikation immer als Slave.

 

 

 

 

 

 

 

Abb. 3

Die drei Raumachsen X, Y und Z einer MPU-6050.

Anwendungsgebiete dieses Sensors liegen u.a. im Bereich

  • Smartphones- und Tablets (z.B. zur Gestenerkennung)
  • Gaming,
  • Fußgänger- und Fahrzeugnavigation sowie
  • Gesundheits- und Fitnessüberwachung.

Die LSM6DS3TR IMU

Der Arduino UNO WiFi R2 besitzt eine eingebaute IMU LSM6DS3TR. Es handelt sich dabei um einen 3-Achsen-Beschleunigungs- und einen 3-Achsen-Drehraten-Sensor. Die Leistungsdaten dieses Sensors können über Datenblatt aus dem Internet heruntergeladen werden.

Übung 1 - Rohdaten eines HW-123 Modul erfassen und darstellen

 

1 - Pflichtenheft oder Was soll die Schaltung können?

  • Entwickle für das Moduls HW-123 ein Programm, das die Rohdaten des Beschleunigungs- und des Drehratensensors sowie die Temperatur im seriellen Monitor ausgibt.

 

2 - Material

  • Arduino- oder Arduino kompatibles Board (Ard-Board)
  • Steckbrett und Steckdraht (Ma-Ma, Fe-Ma)
  • 1x HW-123 Modul
  • Arduino IDE und Visuino auf dem Rechner bereits installiert

 

3 - Objektanordnung

 

Schritt 1 - Ard-Board festlegen

Starte das Programm Visuino und wähle in der Kopfzeile des Arduino-Blocks über das Werkzeug-Icon ganz rechts das eingesetzte Ard-Board aus (bei mir ist es ein Arduino UNO R3).

 

Schritt 2 - Objekte/ Elemente auswählen

  • Gib in Filtersuche "6050" ein, wähle das Objekt "Accelerometer Gyroscope MPU..." (s. Abb. 4a) und ziehe es in die Arbeitsfläche (s. Abb. 5).

 

 

 

 

 

 

 

 

 

 

Abb. 4a - Objekt Accelerometer Gyroscope MPU6050

 

  • Gib in Filtersuche "format" ein, wähle das Objekt "Formatted Text" (s. Abb. 4b) und ziehe es in die Arbeitsfläche (s. Abb. 5).

 

 

 

 

 

 

 

 

 

 

 

 

 

Abb. 4b - Objekt Formatted Text

  • Öffne mit einem Doppelklick im grauen Feld des Objektes FormattedText1 das Fenster Elements und klicke dort im rechten Fenster AnalogElement siebenmal an.
    Im Objekt FormattedText1 erscheinen dann diese sieben Elemente (s. Abb. 5).

Schritt 3 - Objekte/Elemente verbinden mit Ard-Board

  • HW-123 Modul Vcc -> Vcc (UNO); GND -> GND (UNO); SCL -> A5 (UNO); SDA -> A4 (UNO) (s. Abb. 5)
  • Verbinde die Elemente der drei Objekte, wie in Abb. 5 gezeigt.

Abb. 5 - Verbindung der Objekte und Elemente mit einem Arduino UNO R3

Schritt 4 - Kompilieren und Hochladen des Programmcodes

  • Öffne in Visuino unten rechts durch Anklicken des roten Buttons das Arbeitsmenü, klicke den Reiter "Build" und anschließend den Button "Compile/Build and Upload" an. Wenn kein Fehler aufgetreten ist, wird das Programm nach kurzer Zeit in den Controller geladen sein. Viel Spaß beim Experimentieren!

 

Ausgabe der Rohdaten im Terminalfenster

Insgesamt werden sieben Messwerte im Terminalfenster angezeigt: drei Beschleunigungswerte, drei Rotationswerte jeweils in Richtung der Raumachsen X, Y und Z sowie die Raumtemperatur.

 

Eine formatierte Ausgabe erstellen

  • Klicke auf das Objekt FormattedText1.
  • Im Properties-Fenster erscheint FormattedText (s. Abb. 6).
Abb. 6 - Properties-Fenster des Objektes FormattedText1.
  • Klicke auf das Symbol
  • Gib in dem sich öffnenden Fenster die in Abb. 7 dargestellte Zeile ein.
Abb. 7 - Formatierungsanweisungen für die Rohdatenausgabe
  • Die sieben Elemente des Objektes FormattedText1 ->{AnalogElement1, AnalogElement2, ..., AnalogElement7} werden von oben nach unten - beginnend mit 0 - angesprochen über %0, %1, ... Vorangestellt werden kann ein beliebiger Text.
    AX %0 gibt also den Text AX im Terminalfenster aus, gefolgt vom Messwert des Beschleunigungssensors in X-Achsrichtung.

Abb. 6 - Darstellung der Rohdaten im Terminalfenster

240601

Druckversion | Sitemap
© Reinhard Rahner - Gettorf