Wolfram Language

I2C-Daten filtern

Beim Datentransfer mit Inter-Integrated Circuit (I2C) wird die Kommunikation vom Master initiiert, der bis zu 128 Slave-Schaltungen ansprechen kann. Jeder Slave hat eine eigene Adresse und der Datentransfer erfolgt auf der Serial Data (SDA) -Leitung. Die andere Leitung ist die Serial Clock (SCL) -Leitung. I2C wird auch als Two-Wire Interface (TWI) bezeichnet.

Den kompletten Wolfram Language-Input zeigen

In diesem Beispiel wird ein Arduino Nano programmiert, um die Daten eines Beschleunigungssensors oder des Gyroskops von einem MPU-6050 I2C-Sensor einzulesen. Der Orientierungswinkel des Sensors kann aus den Messwerten des Beschleunigungssensors oder des Gyroskops berechnet werden. Diese Berechnungen sind ungenau, da das erste Signal verrauscht ist und das Gyroskop im stationären Zustand driftet. Daher wird auch ein komplementärer Filter eingesetzt, der die beiden Werte mischt. Die ungefilterten und gefilterten Werte werden über den seriellen Bus zurückgesendet und visualisiert.

Die Beschleunigung entlang der und Achsen, die Temperatur und Winkelgeschwindigkeit an der -Achse werden in zwei Bytes gespeichert, die jeweils an der Adresse 0x3D beginnen. Im Folgenden sehen Sie die Ausrichtung, um diese 8 Bytes anzufordern.

Die Initialisierung.

Die Adresse des MPU-6050 ist 0x68. Hier ist die vollständige Konfiguration.

Die Umwandlung für jeden Eingangskanal.

Den kompletten Wolfram Language-Input zeigen

Die vollständige Konfigurierung des MIkrocontrollers.

Ein Vorfilter berechnet aus den Beschleunigungssensor-Daten in Grad den Winkel und aus den Gyroskop-Daten auch die Winkelbeschleunigung in Grad pro Sekunde.

Ein Komplementärfilter nimmt die Vorfilter-Outputs und berechnet einen gefilterten Winkelwert.

Ein Integrator berechnet den Winkel, indem er die Winkelgeschwindigkeit integriert.

Das vollständige Systemmodell.

Deployen Sie den Code.

Stellen Sie eine Verbindung zum Arduino Nano her.

Erstellen Sie eine Aufgabe zum Einlesen der Daten.

Parsen und plotten Sie die Daten.

Den kompletten Wolfram Language-Input zeigen

Löschen Sie die Aufgabe und beenden Sie die Verbindung zum Gerät.

Verwandte Beispiele

en es fr ja ko pt-br zh