- Požadované komponenty:
- Gyroskopický senzor MPU6050:
- Popis:
- Schéma zapojenia a vysvetlenie:
- Vysvetlenie programovania
Snímač MPU6050 má mnoho funkcií oproti jedinému čipu. Skladá sa z akcelerometra MEMS, gyroskopu MEMS a teplotného snímača. Tento modul je veľmi presný pri prevode analógových hodnôt na digitálne, pretože má 16-bitový hardvér analógovo-digitálneho prevodu pre každý kanál. Tento modul je schopný snímať kanály x, yaz súčasne. Má rozhranie I2C na komunikáciu s hostiteľským radičom. Tento modul MPU6050 je kompaktný čip s akcelerometrom aj gyroskopom. Toto je veľmi užitočné zariadenie pre mnoho aplikácií ako drony, roboty, snímače pohybu. Tiež sa nazýva gyroskop alebo trojosový akcelerometer.
Dnes v tomto článku sa chystáme prepojiť tento gyroskop MPU6050 s Arduinom a ukazovať hodnoty na 16x2 LCD.
Požadované komponenty:
- Arduino Uno
- MPU-6050
- 10K POT
- Prepojovací drôt
- Nepál
- USB kábel
- Zdroj
Gyroskopický senzor MPU6050:
MPU-6050 je 8-pinový 6-osový gyroskop a akcelerometer v jednom čipe. Tento modul štandardne pracuje na sériovej komunikácii I2C, ale je možné ho nakonfigurovať pre rozhranie SPI nakonfigurovaním jeho registra. Pre I2C má vedenie SDA a SCL. Takmer všetky kolíky sú multifunkčné, ale tu postupujeme iba s kolíkmi v režime I2C.
Konfigurácia kolíka:
Vcc: - tento pin sa používa na napájanie modulu MPU6050 vzhľadom na zem
GND: - toto je uzemňovací kolík
SDA: - Pin SDA sa používa na údaje medzi radičom a modulom mpu6050
SCL: - SCL pin sa používa pre vstup hodín
XDA: - Toto je dátová linka I2C SDA senzora na konfiguráciu a čítanie z externých senzorov (v našom prípade sa nepoužíva) (voliteľné).
XCL: - Jedná sa o hodinovú linku I2C SCL snímača na konfiguráciu a čítanie z externých snímačov (v našom prípade sa nepoužíva) (voliteľné).
ADO: - I2C Slave Address LSB (v našom prípade neplatí)
INT: - Prerušovací kolík na indikáciu pripravenosti údajov.
Popis:
V tomto článku ukazujeme hodnoty teploty, gyroskopu a akcelerometra na LCD displeji pomocou MPU6050 s Arduino. Tento modul nám dáva na výstupe riadkové hodnoty a normalizované hodnoty, ale riadkové hodnoty nie sú stabilné, takže tu zobrazujeme normalizované hodnoty cez LCD. Ak chcete iba hodnotu akcelerometra, môžete použiť aj akcelerometer ADXL335 s Arduinom.
V tomto projekte sme najskôr zobrazili hodnotu teploty na displeji LCD a po 10 sekundách zobrazujeme hodnoty gyra a po 10 sekundách máme hodnoty akcelerometra, ako je znázornené na obrázkoch nižšie:
Schéma zapojenia a vysvetlenie:
Schéma zapojenia, ktorá slúži na prepojenie MPU6050 s Arduinom, je veľmi jednoduchá, tu sme použili LCD a MPU6050. A tu sme použili napájací zdroj USB pre notebook. Na kontrolu jasu LCD sa používa hrniec 10k. V súvislosti s MPU6050 sme vykonali 5 pripojení, v ktorých sme pripojili napájací zdroj a uzemnenie 3,3 V MPU6050 a uzemnenie 3,3 V a zem Arduino. Kolíky SCL a SDA MPU6050 sú spojené s pinmi Arduino A4 a A5. A INT pin MPU6050 je pripojený k prerušeniu 0 na Arduine (D2). LCD, RS, RW a EN sú priamo spojené s 8, GND a 9 Arduina. Dátový kolík je priamo pripojený k digitálnemu kolíku číslo 10, 11, 12 a 13.
Vysvetlenie programovania
Programová časť je pre tento projekt tiež ľahká. Tu sme použili túto knižnicu MPU6050 na jej prepojenie s Arduinom. Najprv si teda musíme stiahnuť knižnicu MPU6050 z GitHubu a nainštalovať ju do Arduino IDE.
Potom v príklade nájdeme ukážkové kódy. Užívateľ môže tento kód otestovať priamym nahraním do Arduina a môže vidieť hodnoty na sériovom monitore. Alebo môže užívateľ použiť náš kód uvedený na konci článku na zobrazenie hodnôt aj na LCD a sériovom monitore.
Pri kódovaní sme zahrnuli niektoré požadované knižnice ako MPU6050 a LCD.
#include
Vo funkcii nastavenia inicializujeme obe zariadenia a cez LCD napíšeme uvítaciu správu
void setup () {lcd.begin (16,2); lcd.createChar (0, stupeň); Serial.begin (9600); Serial.println ("Inicializovať MPU6050"); while (! mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print ("Zariadenie nebolo nájdené"); Serial.println ("Nenašiel som platný snímač MPU6050, skontrolujte zapojenie!"); oneskorenie (500); } pocet = 0; mpu.calibrateGyro (); mpu.setThreshold (3); V slučke Loop Function sme zavolali tri funkcie každých 10 sekúnd na zobrazenie teploty, gyra a akcelerometra na LCD displeji. Tieto tri funkcie sú tempShow, gyroShow a accelShow , tieto funkcie môžete skontrolovať v úplnom kóde Arduino uvedenom na konci tohto článku:
void loop () {lcd.clear (); lcd.print ("teplota"); long st = millis (); Serial.println ("teplota"); while (millis ()
Gyroskop a akcelerometer MPU6050 sa používajú na zisťovanie polohy a orientácie ľubovoľného zariadenia. Gyroskop využíva zemskú gravitáciu na určenie polôh osi x, y a z a detekuje akcelerometer na základe rýchlosti zmeny pohybu. Akcelerometer sme už s Arduinom používali v mnohých našich projektoch, ako napríklad:
- Robot riadený gestami pomocou akcelerometra
- Výstražný systém o nehode vozidla založený na Arduine
- Alarm detektora zemetrasenia pomocou Arduina