MPU6050: Modul zur Positionierung mit Arduino

MPU6050-Karte

Wenn Sie ein Projekt erstellen und positionieren müssen, wissen Sie wie ist es platziert In Bezug auf den Platz können Sie das Modul verwenden MPU6050. Das heißt, dieses Modul ist eine Trägheitsmesseinheit oder IMU (Inertial Measurment Units) mit 6 Freiheitsgraden (DoF). Dies ist den 3-Achsen-Beschleunigungssensoren und einem 3-Achsen-Gyroskop zu verdanken, das für die Arbeit eingesetzt wird.

Diese MPU6050 kann wissen, wie das enthaltende Objekt zur Verwendung in positioniert ist Anwendungen Navigation, Goniometrie, Stabilisierung, Gestensteuerung usw. Mobiltelefone enthalten normalerweise diese Art von Sensoren, um beispielsweise bestimmte Funktionen durch Gesten zu steuern, z. B. das Anhalten beim Umdrehen des Smartphones, das Fahren von Fahrzeugen in Videospielen durch Drehen des Mobiltelefons als Lenkrad usw.

Was ist ein Beschleunigungsmesser und ein Gyroskop?

MEMS-Beispiele

MEMS-Beispiele

Nun, lass uns in Teilen gehen. Das erste ist zu sehen, was diese Arten von Sensoren sind sind in der Lage, Beschleunigung und Kurven zu erkennen, wie aus ihren eigenen Namen abgeleitet werden kann.

  • Beschleunigungsmesser: misst die Beschleunigung, dh die Änderung der Geschwindigkeit pro Zeiteinheit. Denken Sie daran, dass in der Physik die Änderung der Geschwindigkeit mit der Zeit (a = dV / dt) die Definition der Beschleunigung ist. Nach dem zweiten Newtonschen Gesetz haben wir auch a = F / m, und genau das verwenden Beschleunigungsmesser, um zu arbeiten, dh sie verwenden Parameter für Kraft und Masse des Objekts. Damit dies in der Elektronik implementiert werden kann, werden MEMS-Techniken (Micro Electro Mechanical Systems) verwendet, die sich von herkömmlichen Techniken zur Herstellung elektronischer Chips unterscheiden, da mechanische Teile in einem MEMS erstellt werden. In diesem Fall werden Spuren oder Elemente erstellt, die Beschleunigungen messen können. Dies impliziert, dass viele andere Einheiten verwendet werden können, wie z. B. die Geschwindigkeit (wenn die Beschleunigung in der Zeit integriert ist), wenn sie wieder integriert wird, haben wir eine Verschiebung usw. Das heißt, sehr interessante Parameter, um die Position zu kennen oder die Bewegung eines Objekts zu erfassen.
  • Gyroskop: Auch als Gyroskop bezeichnet, ist es ein Gerät, das die Winkelgeschwindigkeit eines Objekts misst, dh die Winkelverschiebung pro Zeiteinheit oder wie schnell sich ein Körper um seine Achse dreht. In diesem Fall werden auch MEMS-Techniken verwendet, um diese Geschwindigkeit unter Verwendung eines als Coriolis bekannten Effekts zu messen. Dank dessen kann die Winkelgeschwindigkeit gemessen werden oder durch Integrieren der Winkelgeschwindigkeit in Bezug auf die Zeit kann die Winkelverschiebung erhalten werden.

MPU6050-Modul

Pinbelegung MPU6050

Jetzt, da Sie wissen, was der Beschleunigungsmesser und das Gyroskop sind, das MPU6050-Modul Es ist eine elektronische Karte, die diese beiden Elemente integriert, damit Sie diese Änderungen in der Position eines Elements messen und so eine Reaktion erzeugen können. Wenn sich beispielsweise ein Objekt bewegt, leuchtet eine LED auf oder andere viel komplexere Dinge.

Wie ich schon sagte, es hat 6 Achsen der Freiheit, DoF, 3-Achsen-X-, Y- und Z-Beschleunigungsbeschleunigungsmesser und anderes 3-Achsen-Gyroskop Winkelgeschwindigkeit zu messen. Sie müssen berücksichtigen, dass Sie bei der Positionierung des Moduls und der Drehrichtung für die Messungen keinen Fehler machen, da es etwas chaotisch ist, wenn Sie das falsche Vorzeichen machen. Sehen Sie sich das folgende Bild an, in dem die Richtung der Achsen angegeben ist (beachten Sie jedoch, dass die Leiterplatte selbst auch auf einer Seite gedruckt ist):

Datenblatt MPU6050

In Anbetracht dessen und die PinbelegungMehr oder weniger haben Sie alles klar, um die MPU6050 zu verwenden. Wie Sie im vorherigen Bild sehen können, sind die Verbindungen recht einfach und ermöglichen die Kompatibilität der I2C-Kommunikation mit den meisten Mikrocontrollern, einschließlich dem Arduino. Die SCL- und SDA-Pins verfügen über einen Pull-up-Widerstand auf der Platine für den direkten Anschluss an die Arduino-Platine, sodass Sie sich nicht darum kümmern müssen, sie selbst hinzuzufügen.

Um mit beiden Richtungen am I2C-Bus zu arbeiten, können Sie diese verwenden Stifte und Richtungen:

  • AD0 = 1 oder hoch (5 V): für I0C-Adresse 69x2.
  • AD0 = 0 oder Low (GND oder Nc): für Adresse 0x68 des I2C-Busses.

Denken Sie daran, dass die Betriebsspannung des Modells 3 V3 beträgt, aber zum Glück über einen eingebauten Regler verfügt, sodass es problemlos mit dem 5 V des Arduino verbunden werden kann und in 3.3 V umgewandelt wird.

Übrigens, mit einem Innenwiderstand gegen GND, wenn dieser Pin nicht verbunden ist, die Adresse Standardmäßig ist es 0x68, da es standardmäßig mit Masse verbunden ist, wird es als logische 0 interpretiert.

Integration mit Arduino

Arduino- und MPU6050-Verbindung

Du kannst bekommen Weitere Informationen zum I2C-Bus In diesem Artikel. Sie wissen bereits, dass je nach Arduino-Platine die für den Bus verwendeten Pins variieren, aber in der Arduino UNO ist der analoge Pin A4 und A5 für SDA (Daten) und SCL (Uhr) beziehungsweise. Sie sind die einzigen Arduino-Pins, zusammen mit den 5V- und GND-Pins, die das Board mit Strom versorgen und die Sie verwenden sollten. So ist die Verbindung so einfach wie möglich.

Für die Funktionen der MPU6050 können Sie die Bibliotheken verwenden, zu denen Sie unter diesem Link weitere Informationen erhalten I2C des Moduls und des Busses MPU6050.

Die Programmierung von Arduino-Boards ist mit der MPU6050 nicht allzu einfach, daher nichts für Anfänger. Wenn Sie die Grenzen der Beschleunigungen oder Winkelbereiche kennen, können Sie außerdem kalibrieren, um die genaue Bewegung oder Beschleunigung zu bestimmen. Damit Sie jedoch zumindest ein Beispiel für die Kommentierung der Verwendung haben, können Sie diesen Code in der Beispielskizze für Ihre Arduino IDE Hiermit werden die vom Beschleunigungsmesser und Gyroskop aufgezeichneten Werte abgelesen:

// Bibliotecas necesarias:
#include "I2Cdev.h"
#include "MPU6050.h"
#include "Wire.h"

// Dependiendo del estado de AD0, la dirección puede ser 0x68 o 0x69, para controlar así el esclavo que leerá por el bus I2C
MPU6050 sensor;

// Valores RAW o en crudo leidos del acelerometro y giroscopio en los ejes x,y,z
int ax, ay, az;
int gx, gy, gz;

void setup() {
  Serial.begin(57600);    //Función para iniciar el puerto serie con 57600 baudios
  Wire.begin();           //Inicio para el bus I2C 
  sensor.initialize();    //Iniciando del sensor MPU6050

  if (sensor.testConnection()) Serial.println("Sensor iniciado correctamente");
  else Serial.println("Error al iniciar el sensor");
}

void loop() {
  // Leer las aceleraciones y velocidades angulares
  sensor.getAcceleration(&ax, &ay, &az);
  sensor.getRotation(&gx, &gy, &gz);

  // Muestra las lecturas que va registrando separadas por una tabulación 
  Serial.print("a[x y z] g[x y z]:\t");
  Serial.print(ax); Serial.print("\t");
  Serial.print(ay); Serial.print("\t");
  Serial.print(az); Serial.print("\t");
  Serial.print(gx); Serial.print("\t");
  Serial.print(gy); Serial.print("\t");
  Serial.println(gz);

  delay(100);
}

Wenn Sie ein Anfänger sind und es nicht gut wissen wie man mit Arduino IDE programmiertDies wird für Sie schwer zu verstehen sein, daher können Sie unser Handbuch mit dem Einführungskurs in die Arduino-Programmierung kostenlos konsultieren ...


Schreiben Sie den ersten Kommentar

Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.