MPU6050: modul pro určování polohy pomocí Arduina

Deska MPU6050

Pokud potřebujete vytvořit projekt a umístit ho, to znamená vědět jak je to umístěno pokud jde o prostor, můžete použít modul MPU 6050. To znamená, že tento modul je inerciální měřící jednotka nebo IMU (inerciální měřící jednotky) se 6 stupni volnosti (DoF). A to díky tříosým senzorům akcelerometru a tříosému gyroskopu, které implementuje do práce.

Tento MPU6050 může vědět, jak je obsah obsahující objekt umístěn pro použití v aplikace navigace, goniometrie, stabilizace, ovládání gesty atd. Mobilní telefony obvykle obsahují tento typ senzorů, například k ovládání určitých funkcí pomocí gest, jako je zastavení, pokud je smartphone otočen, řízení vozidel ve videohrách otáčením mobilu, jako by to byl volant atd.

Co je to akcelerometr a gyroskop?

Příklady MEMS

Příklady MEMS

Pojďme po částech. První věcí je zjistit, o jaké typy snímačů jde jsou schopni detekovat zrychlení a zatáčky, jak lze odvodit z jejich vlastních jmen.

  • Akcelerometr: měří zrychlení, to znamená změnu rychlosti za jednotku času. Pamatujte, že ve fyzice je změna rychlosti v čase (a = dV / dt) definicí zrychlení. Podle Newtonova druhého zákona máme také, že a = F / m, a to je to, co akcelerometry používají k práci, to znamená, že používají parametry síly a hmotnosti objektu. Aby to bylo možné implementovat do elektroniky, používají se techniky MEMS (Micro Electro Mechanical Systems), které se liší od konvenčních technik výroby elektronických čipů, protože mechanické součásti jsou vytvářeny v MEMS. V tomto případě jsou vytvořeny stopy nebo prvky schopné měřit zrychlení. To znamená, že lze vzít mnoho dalších jednotek, například rychlost (je-li zrychlení integrováno v čase), pokud je integrováno znovu, máme posunutí atd. To znamená, velmi zajímavé parametry pro poznání polohy nebo detekci pohybu objektu.
  • Gyroskop: také nazývaný gyroskop, je to zařízení, které měří úhlovou rychlost objektu, tj. úhlové posunutí za jednotku času nebo jak rychle se tělo otáčí kolem své osy. V tomto případě se k měření této rychlosti používají také techniky MEMS pomocí efektu známého jako Coriolis. Díky tomu lze měřit úhlovou rychlost nebo integrací úhlové rychlosti vzhledem k času lze dosáhnout úhlového posunutí.

Modul MPU6050

MPU6050 pinout

Nyní, když víte, co jsou akcelerometr a gyroskop, modul MPU6050 je elektronická deska, která integruje tyto dva prvky, aby vám umožnila měřit tyto změny v poloze prvku a být tak schopna generovat reakci. Například, že když se objekt pohybuje, rozsvítí se LED nebo jiné mnohem složitější věci.

Jak jsem řekl, má 6 os svobody, DoF, 3osý akcelerometr zrychlení X, Y a Z a další 3osý gyroskop k měření úhlové rychlosti. Musíte vzít v úvahu, že neděláte chyby ve způsobu, jakým umístíte modul a směr otáčení pro měření, protože pokud uděláte špatné znamení, bude to trochu chaotické. Podívejte se na následující obrázek, kde určuje směr os (všimněte si však, že samotná deska plošných spojů ji má také vytištěnou na jedné straně):

Datový list MPU6050

Vzhledem k tomu a pinout, víceméně máte vše jasné, abyste mohli začít používat MPU6050. Jak vidíte na předchozím obrázku, připojení je poměrně jednoduché a umožňuje komunikaci I2C být kompatibilní s většinou mikrokontrolérů, včetně Arduina. Kolíky SCL a SDA mají na desce vytahovací rezistor pro přímé připojení k desce Arduino, takže se nemusíte starat o jejich přidání sami.

Pro práci s oběma směry na sběrnici I2C můžete použít tyto kolíky a pokyny:

  • AD0 = 1 nebo High (5v): pro adresu I0C 69x2.
  • AD0 = 0 nebo nízká (GND nebo Nc): pro adresu 0x68 sběrnice I2C.

Nezapomeňte, že provozní napětí modelu je 3v3, ale naštěstí má zabudovaný regulátor, takže jej lze bez problémů přepnout na 5v Arduina a transformuje jej na 3.3v.

Mimochodem, s vnitřním odporem vůči GND, pokud tento pin není připojen, adresa ve výchozím nastavení to bude 0x68, protože bude ve výchozím nastavení připojen k zemi, interpretuje to jako logickou 0.

Integrace s Arduino

Připojení Arduino a MPU6050

Můžeš dostat více informací o sběrnici I2C v tomto článku. Už víte, že v závislosti na desce Arduino se kolíky použité pro sběrnici liší, ale v Arduino UNO je analogový pin A4 a A5, pro SDA (data) a SCL (hodiny) resp. Jsou to jediné piny Arduino, spolu s 5v a GND k napájení desky, které byste měli použít. Připojení je tedy co nejjednodušší.

Pro funkce MPU6050 můžete použít knihovny, o kterých získáte více informací v tomto odkazu pro I2C modulu a sběrnice MPU 6050.

Programování desek Arduino není s MPU6050 příliš jednoduché, takže to není pro začátečníky. Kromě toho, když znáte limity zrychlení nebo rozsahy úhlů, můžete kalibrovat a určit, jaký přesný pohyb nebo zrychlení bylo. Chcete-li však mít alespoň příklad, jak komentovat jeho používání, můžete tento kód vidět z Příklad náčrtu pro vaše Arduino IDE který načte hodnoty zaznamenané akcelerometrem a gyroskopem:

// 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);
}

Pokud jste začátečník a nevíte dobře jak programovat s Arduino IDE, bude pro vás obtížné to pochopit, takže si můžete zdarma prostudovat naši příručku s úvodním kurzem programování Arduina ...


Buďte první komentář

Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.