Č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?
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
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):
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
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 ...