Raspberry Pi Pico: Bewegung und Erschütterung erkennen mit MPU-6050

Mithilfe eines Raspberry Pi Pico und eines MPU-6050 soll die Bewegungen von Objekten oder elektronischen Geräten erkannt werden. Hierfür wird ein MPU-6050-Sensor eingesetzt, der mit seinem Gyroskop präzise Daten über die Drehgeschwindigkeit liefert, die wir als Bewegung interpretieren.

Der Raspberry Pi Pico wertet diese Daten aus. Wenn eine Bewegung oder Erschütterung festgestellt wird, leuchtet die Onboard-LED kurz auf, um die Bewegung visuell anzuzeigen.

Idee für eine Ergänzung: Zusätzlich besteht die Möglichkeit, einen Summer an einen separaten GPIO-Pin anzuschließen, um eine akustische Signalisierung zu ermöglichen. So können Bewegungen sowohl durch Licht als auch durch Ton signalisiert werden.

Aufbau und Bauteile

Raspberry Pi Pico: MPU-6050 programmieren

Raspberry Pi Pico MPU-6050
Pin 38 GND GND
Pin 36 VCC +3,3V VCC
Pin 27 GPIO 21 SCL
Pin 26 GPIO 20 SDA

Hinweis: Man sollte beachten, dass das MPU-6050-Modul nur an einer Seite eine Steckleiste hat. Wenn man es auf einem Steckbrett befestigt, dann besteht die Gefahr, dass es schief steckt. Dadurch können die Werte des Beschleunigungssensors von den erwarteten Werten abweichen.

MicroPython-Bibliothek für MPU-6050

Damit der MPU-6050 programmiert werden kann, müssen zwei externe Bibliotheken auf dem Raspberry Pi Pico geladen und im Verzeichnis lib gespeichert werden.

I2C verbinden und programmieren

Schnell und einfach alle Bauteile zusammen bestellen

Programmcode

Der Programmcode liest die Sensordaten des Gyroskops aus. Wenn sich ein Objekt zum Zeitpunkt der Messung bewegt, ist dies in den Daten leicht erkennbar. Die drei Werte werden miteinander multipliziert. Wenn nur einer dieser Werte größer als 0 ist, kann man von einer Bewegung ausgehen.

Im Programmcode ist die Onboard-LED als Anzeige der Bewegung programmiert, die an- oder ausgeht. Man kann aber auch einen Summer an einen separaten GPIO-Pin anschließen. Dann ertönt ein Ton, wenn eine Bewegung eintritt.

# Bibliotheken laden
import machine
import time
from imu import MPU6050

# Initialisierung: Onboard-LED
force = machine.Pin('LED', machine.Pin.OUT, value=0)

# I2C-Pins
i2c_sda = machine.Pin(20)
i2c_scl = machine.Pin(21)

# Initialisierung I2C
i2c = machine.I2C(0, sda=i2c_sda, scl=i2c_scl, freq=100000)

# Initialisierung MPU-6050
imu = MPU6050(i2c)
time.sleep(2) # Warten bis Initialisierung fertig ist

# Wiederholung (Endlos-Schleife)
while True:
    # Messwerte für die X, Y und Z
    gyr_raw_x = int(imu.gyro.x)
    gyr_raw_y = int(imu.gyro.y)
    gyr_raw_z = int(imu.gyro.z)
    # Bewegung/Erschütterung ermitteln
    gyr_force = gyr_raw_x * gyr_raw_y * gyr_raw_z
    # Werte anzeigen
    print('gyr_force:', gyr_force, "\t\t\t\t", end = "\r")
    force.value(gyr_force)
    if gyr_force == 0: time.sleep(.2)
    else: time.sleep(1)

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Elektronik-Set jetzt bestellen Online-Workshop buchen

Online-Workshop: Programmieren mit dem Raspberry Pi Pico

Programmieren mit dem Raspberry Pi Pico

Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.

Online-Workshop buchen

Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.

Termine und Newsletter-Anmeldung

 

Elektronik-Sets für das Hardware-nahe Programmieren