.. note:: Hallo und willkommen in der SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasten-Gemeinschaft auf Facebook! Tauchen Sie tiefer ein in die Welt von Raspberry Pi, Arduino und ESP32 mit anderen Enthusiasten. **Warum beitreten?** - **Expertenunterstützung**: Lösen Sie Nachverkaufsprobleme und technische Herausforderungen mit Hilfe unserer Gemeinschaft und unseres Teams. - **Lernen & Teilen**: Tauschen Sie Tipps und Anleitungen aus, um Ihre Fähigkeiten zu verbessern. - **Exklusive Vorschauen**: Erhalten Sie frühzeitigen Zugang zu neuen Produktankündigungen und exklusiven Einblicken. - **Spezialrabatte**: Genießen Sie exklusive Rabatte auf unsere neuesten Produkte. - **Festliche Aktionen und Gewinnspiele**: Nehmen Sie an Gewinnspielen und Feiertagsaktionen teil. 👉 Sind Sie bereit, mit uns zu erkunden und zu erschaffen? Klicken Sie auf [|link_sf_facebook|] und treten Sie heute bei! .. _2.2.9_js: 2.2.9 MPU6050 Modul ==================== Einführung ---------- Der MPU-6050 ist das weltweit erste und einzige 6-Achsen-Bewegungserfassungsgerät (3-Achsen-Gyroskop und 3-Achsen-Beschleunigungssensor), das für Smartphones, Tablets und tragbare Sensoren entwickelt wurde, welche diese Eigenschaften besitzen. Dies beinhaltet geringen Stromverbrauch, niedrige Kosten und hohe Leistungsanforderungen. In diesem Experiment verwenden wir I2C, um die Werte des Drei-Achsen-Beschleunigungssensors und des Drei-Achsen-Gyroskops des MPU6050 zu ermitteln und sie auf dem Bildschirm anzuzeigen. Benötigte Komponenten ---------------------- Für dieses Projekt benötigen wir die folgenden Komponenten. .. image:: ../img/list_2.2.6.png Es ist definitiv praktisch, ein komplettes Set zu kaufen, hier ist der Link: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Name - ARTIKEL IN DIESEM KIT - LINK * - Raphael Kit - 337 - |link_Raphael_kit| Sie können diese auch einzeln über die untenstehenden Links kaufen. .. list-table:: :widths: 30 20 :header-rows: 1 * - KOMPONENTENBESCHREIBUNG - KAUF-LINK * - :ref:`cpn_gpio_board` - |link_gpio_board_buy| * - :ref:`cpn_breadboard` - |link_breadboard_buy| * - :ref:`cpn_wires` - |link_wires_buy| * - :ref:`cpn_mpu6050` - |link_mpu6050_buy| Schaltplan ---------- Der MPU6050 kommuniziert über die I2C-Busschnittstelle mit dem Mikrocontroller. SDA1 und SCL1 müssen mit dem entsprechenden Pin verbunden werden. .. image:: ../img/image330.png Experimentelle Verfahren ------------------------------- **Schritt 1:** Bauen Sie den Schaltkreis. .. image:: ../img/image227.png **Schritt 2:** I2C einrichten (siehe Anhang :ref:`i2c_config`. Wenn Sie I2C bereits eingerichtet haben, überspringen Sie diesen Schritt.) **Schritt 3:** Navigieren Sie zum Ordner mit dem Code. .. raw:: html .. code-block:: cd ~/raphael-kit/nodejs/ **Schritt 4:** Installieren Sie die Abhängigkeiten. .. raw:: html .. code-block:: sudo npm install mpu6050-gyro **Schritt 5:** Führen Sie den Code aus. .. raw:: html .. code-block:: sudo node mpu6050_module.js Nachdem der Code ausgeführt wurde, wird der Ablenkwinkel der x- und y-Achse sowie die Beschleunigung und Winkelgeschwindigkeit jeder Achse, die vom MPU6050 gelesen werden, auf dem Bildschirm angezeigt, nachdem sie berechnet wurden. **Code** .. code-block:: js var gyro = require("mpu6050-gyro"); var address = 0x68; //MPU6050 address var bus = 1; //i2c bus used var gyro = new gyro( bus,address ); async function update_telemetry() { var gyro_xyz = gyro.get_gyro_xyz(); var accel_xyz = gyro.get_accel_xyz(); var gyro_data = { gyro_xyz: gyro_xyz, accel_xyz: accel_xyz, rollpitch: gyro.get_roll_pitch( gyro_xyz, accel_xyz ) } console.log(gyro_data); setTimeout(update_telemetry, 500); } if ( gyro ) { update_telemetry(); } **Code-Erklärung** .. code-block:: js var gyro = require("mpu6050-gyro"); var address = 0x68; //MPU6050 address var bus = 1; //i2c bus used var gyro = new gyro( bus,address ); Importieren Sie das Modul ``mpu6050-gyro``, bestimmen Sie die Adresse des MPU6050 und das Bus-Erstellungsobjekt gyro. So können Sie die im Modul gekapselten Funktionen bequem aufrufen. .. note:: Über dieses Modul informieren Sie sich bitte unter: https://www.npmjs.com/package/mpu6050-gyro .. code-block:: js var gyro_xyz = gyro.get_gyro_xyz(); var accel_xyz = gyro.get_accel_xyz(); var gyro_data = { gyro_xyz: gyro_xyz, accel_xyz: accel_xyz, rollpitch: gyro.get_roll_pitch( gyro_xyz, accel_xyz ) } console.log(gyro_data); setTimeout(update_telemetry, 500); Das Modul kapselt drei verfügbare Funktionen: ``gyro.get_gyro_xyz()``: Gibt ein JSON-Objekt mit rohen x,y,z Daten vom Gyroskop zurück. ``gyro.get_accel_xyz()``: Gibt ein JSON-Objekt mit rohen x,y,z Daten vom Beschleunigungssensor zurück. ``gyro.get_roll_pitch( gyro_xyz, accel_xyz )``: Gibt ein JSON-Objekt mit Neigung und Rollen in Grad zurück. Phänomen-Bild -------------------- .. image:: ../img/image228.jpeg