MPU6050: modul za pozicioniranje z Arduino

Plošča MPU6050

Če morate ustvariti projekt in ga postaviti, torej vedite kako je postavljen glede prostora lahko uporabite modul MPU6050. To pomeni, da je ta modul inercialna merska enota ali IMU (inercialne merilne enote) s 6 stopnjami svobode (DoF). To je zahvaljujoč 3-osni senzorjem pospeška in 3-osni žiroskopu, ki ga uporablja za delo.

Ta MPU6050 lahko ve, kako je postavljeni predmet za uporabo v aplikacije navigacija, goniometrija, stabilizacija, upravljanje z gestami itd. Mobilni telefoni običajno vključujejo tovrstne senzorje, na primer za nadzor nekaterih funkcij s kretnjami, na primer ustavljanje, če je pametni telefon obrnjen, vožnjo vozil v video igrah z obračanjem mobilnika, kot da bi bil volan itd.

Kaj sta merilnik pospeška in žiroskop?

Primeri MEMS

Primeri MEMS

No, gremo po delih. Najprej je treba ugotoviti, katere vrste senzorjev so to so sposobni zaznati pospeševanje in zavoje, kot je razbrati iz lastnih imen.

  • Akcelerometer: meri pospešek, to je spremembo hitrosti na enoto časa. Ne pozabite, da je v fiziki sprememba hitrosti s časom (a = dV / dt) definicija pospeška. Po Newtonovem drugem zakonu imamo tudi, da je a = F / m in to je tisto, kar merilniki pospeška uporabljajo za delo, torej uporabljajo parametre sile in mase predmeta. Da bi to lahko uporabili v elektroniki, se uporabljajo tehnike MEMS (Micro Electro Mechanical Systems), ki se razlikujejo od običajnih tehnik izdelave elektronskih čipov, saj so mehanski deli ustvarjeni v MEMS. V tem primeru se ustvarijo sledi ali elementi, ki lahko merijo pospeške. To pomeni, da je mogoče zajeti veliko drugih enot, na primer hitrost (če je pospešek integriran v času), če je spet integriran, imamo premik itd. Se pravi, zelo zanimivi parametri za poznavanje položaja ali zaznavanje gibanja predmeta.
  • Žiroskop: imenovan tudi žiroskop, je naprava, ki meri kotno hitrost predmeta, torej kotni premik na enoto časa ali kako hitro se telo vrti okoli svoje osi. V tem primeru se za merjenje te hitrosti uporabljajo tudi tehnike MEMS z učinkom, znanim kot Coriolis. Zahvaljujoč temu je mogoče izmeriti kotno hitrost ali pa z integracijo kotne hitrosti glede na čas doseči kotni premik.

Modul MPU6050

MPU6050 pinout

Zdaj, ko veste, kaj sta merilnik pospeška in žiroskop, modul MPU6050 je elektronska plošča, ki združuje ta dva elementa, da lahko izmerite te spremembe v položaju elementa in tako lahko sprožite reakcijo. Na primer, da se pri premikanju predmeta zasveti LED ali druge veliko bolj zapletene stvari.

Kot sem rekel, ima 6 osi svobode, DoF, 3-osni merilnik pospeška X, Y in Z ter drugi 3-osni žiroskop za merjenje kotne hitrosti. Upoštevati morate, da ne naredite napak pri načinu postavitve modula in smeri vrtenja meritev, saj bo, če naredite napačen znak, nekoliko kaotično. Oglejte si naslednjo sliko, kjer določa smer osi (vendar pazite, da jo ima tiskana vezja natisnjena tudi na eni strani):

Podatkovni list MPU6050

Glede na to in pinout, bolj ali manj imate vse jasno, da začnete uporabljati MPU6050. Kot lahko vidite na prejšnji sliki, so povezave precej preproste in omogoča komunikacijo I2C, da je združljiva z večino mikrokrmilnikov, vključno z Arduinom. Zatiči SCL in SDA imajo na plošči vlečni upor za neposredno povezavo z ploščo Arduino, zato vam ni treba skrbeti, da jih dodate sami.

Če želite delati v obeh smereh na vodilu I2C, jih lahko uporabite zatiči in navodila:

  • AD0 = 1 ali visoka (5v): za naslov I0C 69x2.
  • AD0 = 0 ali nizko (GND ali Nc): za naslov 0x68 vodila I2C.

Ne pozabite, da je delovna napetost modela 3v3, vendar ima na srečo vgrajen regulator, tako da ga je mogoče brez težav odšteti z Arduinovim 5v in ga bo preoblikoval v 3.3v.

Mimogrede, če imamo notranji upor proti GND, če ta nožica ni priključena, naslov privzeto bo 0x68, ker bo privzeto povezan z zemljo, kar razlaga kot logično 0.

Integracija z Arduinom

Povezava Arduino in MPU6050

Lahko dobiš več informacij o vodilu I2C v tem članku. Že veste, da se zatiči, ki se uporabljajo za avtobus, razlikujejo glede na ploščo Arduino, vendar v Arduino UNO je analogni zatič A4 in A5, za SDA (podatki) in SCL (ura) oz. So edini zatiči Arduino, skupaj s 5v in GND za napajanje plošče, ki bi jih morali uporabiti. Povezava je torej kar se da enostavna.

Za funkcije MPU6050 lahko uporabite knjižnice, katerih več informacij najdete na tej povezavi za I2C modula in vodila MPU6050.

Programiranje plošče Arduino z MPU6050 ni preveč enostavno, zato ni za začetnike. Poleg tega, če poznate meje pospeškov ali obsegov kotov, lahko umerite, da ugotovite, kakšno natančno je bilo gibanje ali pospešek. Da pa imate vsaj primer, kako komentirati njegovo uporabo, lahko to kodo vidite v Primer skice za vaš Arduino IDE ki bodo odčitale vrednosti, zabeležene s pospeškometrom in žiroskopom:

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

Če ste začetnik in ne veste dobro kako programirati z Arduino IDE, to boste težko razumeli, zato si lahko brezplačno ogledate naš priročnik z uvodnim tečajem programiranja Arduino ...


Bodite prvi komentar

Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.