Senzor MPU6050 ima veliko funkcij v enem čipu. Sestavljen je iz merilnika pospeška MEMS, žiroskopa MEMS in temperaturnega senzorja. Ta modul je med pretvorbo analognih vrednosti v digitalne zelo natančen, saj ima za vsak kanal 16-bitno analogno-digitalno pretvorniško strojno opremo. Ta modul lahko hkrati zajema kanal x, y in z. Ima vmesnik I2C za komunikacijo z gostiteljskim krmilnikom. Ta modul MPU6050 je kompakten čip z merilnikom pospeška in žiroskopom. To je zelo uporabna naprava za številne aplikacije, kot so droni, roboti, senzorji gibanja. Imenuje se tudi žiroskop ali troosni merilnik pospeška.
Danes bomo v tem članku povezali ta žiroskop MPU6050 z Arduinom in prikazali vrednosti na LCD 16x2.
Zahtevane komponente:
- Arduino Uno
- MPU-6050
- 10K LONČEK
- Jumper žica
- Breadboard
- Kabel USB
- Napajanje
MPU6050 giro senzor:
MPU-6050 je 8-polni 6-osni žiroskop in merilnik pospeška v enem čipu. Ta modul privzeto deluje na serijski komunikaciji I2C, vendar ga je mogoče konfigurirati za vmesnik SPI z nastavitvijo registra. Za I2C ima ta SDA in SCL linije. Skoraj vsi zatiči so večnamenski, toda tu nadaljujemo samo z zatiči v načinu I2C.
Konfiguracija zatiča:
Vcc: - ta zatič se uporablja za napajanje modula MPU6050 glede na tla
GND: - to je ozemljeni čep
SDA: - Zatič SDA se uporablja za podatke med krmilnikom in modulom mpu6050
SCL: - Za vnos ure se uporablja zatič SCL
XDA: - To je podatkovna linija senzorja I2C SDA za konfiguriranje in branje z zunanjih senzorjev ((neobvezno), ki se v našem primeru ne uporablja)
XCL: - To je taktna linija I2C SCL za konfiguracijo in branje z zunanjih senzorjev ((neobvezno), ki se v našem primeru ne uporablja)
ADO: - I2C podrejeni naslov LSB (v našem primeru ni veljaven)
INT: - Prekinitveni zatič za prikaz pripravljenosti podatkov.
Opis:
V tem članku prikazujemo odčitke temperature, žiroskopa in merilnika pospeška na LCD zaslonu z uporabo MPU6050 z Arduino. Ta modul nam daje vrednosti vrstic in normalizirane vrednosti v izhodu, vendar vrednosti vrstic niso stabilne, zato tukaj prikazujemo normalizirane vrednosti na LCD-ju. Če želite le vrednost merilnika pospeška, lahko z merilnikom pospeška ADXL335 uporabite tudi Arduino.
V tem projektu smo najprej prikazali temperaturno vrednost na LCD-ju, po 10 sekundah pa giroskopske vrednosti, po 10 sekundah pa imamo odčitke merilnika pospeška, kot je prikazano na spodnjih slikah:
Shema vezja in razlaga:
Shema vezja za povezovanje MPU6050 z Arduino je zelo preprosta, tukaj smo uporabili LCD in MPU6050. In tu smo uporabili napajalnik USB za prenosni računalnik. Za nadzor svetlosti LCD se uporablja 10k lonec. V povezavi z MPU6050 smo izvedli 5 povezav, v katere smo 3.3v napajalnik in ozemljitev MPU6050 priključili na 3.3v in ozemljitev Arduina. Zatiči SCL in SDA v MPU6050 so povezani z Arduinovim zatičem A4 in A5. In INT-pin MPU6050 je povezan s prekinitvijo 0 Arduina (D2). LCD-ji RS, RW in EN so neposredno povezani z 8, gnd in 9 Arduino. Podatkovni zatiči so neposredno povezani z digitalnimi zatiči številke 10, 11, 12 in 13.
Pojasnilo programiranja
Programski del je tudi za ta projekt enostaven. Tu smo uporabili to knjižnico MPU6050 za povezavo z Arduino. Najprej moramo iz GitHub-a prenesti knjižnico MPU6050 in jo namestiti v Arduino IDE.
Po njem lahko v primeru najdemo primere kod. Uporabnik lahko to kodo preizkusi z neposrednim nalaganjem v Arduino in si lahko ogleda vrednosti preko serijskega monitorja. Ali pa uporabnik lahko z našo kodo, navedeno na koncu članka, prikaže vrednosti tudi na LCD-ju in serijskem monitorju.
Pri kodiranju smo vključili nekaj potrebnih knjižnic, kot sta MPU6050 in LCD.
#include
V nastavitveni funkciji inicializiramo obe napravi in preko LCD-ja napišemo pozdravno sporočilo
void setup () {lcd.begin (16,2); lcd.createChar (0, stopinja); Serial.begin (9600); Serial.println ("Inicializacija MPU6050"); while (! mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print ("Naprave ni mogoče najti"); Serial.println ("Nisem mogel najti veljavnega senzorja MPU6050, preverite ožičenje!"); zamuda (500); } štetje = 0; mpu.calibrateGyro (); mpu.setThreshold (3); Funkcija v zanki smo v vsakih 10 sekundah poklicali tri funkcije za prikaz temperature, girološkega in merilnika pospeška na LCD-prikazovalniku. Te tri funkcije so tempShow, gyroShow in accelShow , te funkcije lahko preverite v celotni kodi Arduino, podani na koncu tega članka:
void loop () {lcd.clear (); lcd.print ("Temperatura"); dolga st = milis (); Serial.println ("Temperatura"); medtem ko (milis ()
Žiroskop in merilnik pospeška MPU6050 se uporabljata za zaznavanje položaja in usmeritve katere koli naprave. Žiro uporablja zemeljsko gravitacijo za določanje položajev osi x, y in z, merilnik pospeška pa zazna na podlagi hitrosti spremembe gibanja. Merilnik pospeška z Arduinom smo že uporabljali pri mnogih naših projektih, kot so:
- Robot s krmiljenjem na merilniku pospeška
- Sistem za opozarjanje na nezgode na osnovi Arduina
- Alarm za detektor potresa z uporabo Arduina