- Szükséges alkatrészek:
- MPU6050 giroszkóp érzékelő:
- Leírás:
- Áramkör és magyarázat:
- Programozási magyarázat
Az MPU6050 érzékelőnek számos funkciója van egyetlen chipen keresztül. MEMS-gyorsulásmérőből, MEMS-giroszkópból és hőmérséklet-érzékelőből áll. Ez a modul nagyon pontos, miközben az analóg értékeket digitálisra konvertálja, mivel minden csatornához tartozik egy 16 bites analóg-digitális átalakító hardver. Ez a modul képes egyszerre rögzíteni az x, y és z csatornákat. I2C interfésszel rendelkezik a gazda vezérlővel való kommunikációhoz. Ez az MPU6050 modul egy kompakt chip, gyorsulásmérővel és giroszkóppal egyaránt. Ez egy nagyon hasznos eszköz számos alkalmazáshoz, például drónokhoz, robotokhoz, mozgásérzékelőkhöz. Giroszkópnak vagy hármas tengelyes gyorsulásmérőnek is nevezik.
Ma ebben a cikkben összekapcsoljuk ezt az MPU6050 giroszkópot az Arduinóval, és megmutatjuk az értékeket 16x2 LCD-n keresztül.
Szükséges alkatrészek:
- Arduino Uno
- MPU-6050
- 10K POT
- Jumper huzal
- Kenyérlemez
- USB kábel
- Tápegység
MPU6050 giroszkóp érzékelő:
Az MPU-6050 egy 8 tűs 6 tengelyes giroszkóp és gyorsulásmérő egyetlen chipben. Ez a modul alapértelmezés szerint az I2C soros kommunikáción működik, de az SPI interfészhez a regisztráció konfigurálásával konfigurálható. Az I2C esetében ez SDA és SCL vonallal rendelkezik. Szinte az összes tüske multifunkcionális, de itt csak az I2C módú csapokkal folytatjuk a munkát.
PIN konfiguráció:
Vcc: - ezt a csapot használják az MPU6050 modul földeléshez történő táplálásához
GND: - ez őrölt csap
SDA: - Az SDA csapot a vezérlő és az mpu6050 modul közötti adatokhoz használják
SCL: - Az SCL tű az óra bemenetére szolgál
XDA: - Ez az I2C érzékelő SDA adatsor a külső érzékelők konfigurálásához és beolvasásához ((esetenként nem használatos))
XCL: - Ez az I2C érzékelő SCL óra vonala a külső érzékelők konfigurálásához és leolvasásához ((opcionális), esetünkben nem használatos)
ADO: - I2C Slave Address LSB (esetünkben nem alkalmazható)
INT: - Megszakító tű az adatok készenlétének jelzésére.
Leírás:
Ebben a cikkben az MPU6050 és az Arduino közötti LCD-n keresztül mutatjuk be a hőmérséklet, a giroszkóp és a gyorsulásmérő értékeit. Ez a modul sorértékeket és normalizált értékeket ad meg a kimenetben, de a sorértékek nem stabilak, ezért itt normalizált értékeket mutatunk az LCD-n keresztül. Ha csak gyorsulásmérőre vágyik, használhatja az ADXL335 gyorsulásmérőt az Arduinóval is.
Ebben a projektben először egy hőmérsékleti értéket mutattunk az LCD-n, 10 másodperc múlva pedig giroszkóp értékeket, 10 másodperc múlva pedig az alábbi képeken látható gyorsulásmérő leolvasásait mutatjuk be:
Áramkör és magyarázat:
Az MPU6050 és az Arduino összekapcsolására szolgáló kapcsolási rajz nagyon egyszerű, itt LCD-t és MPU6050-et használtunk. És itt egy laptop USB tápegységét használtuk. 10k potot használnak az LCD fényerejének szabályozására. Az MPU6050 kapcsán 5 olyan csatlakozást hajtottunk végre, amelyekben az MPU6050 3,3 V-os tápegységét és földelését csatlakoztattuk az Arduino 3,3 V-os és földeléséhez. Az MPU6050 SCL és SDA csapjai az Arduino A4 és A5 tűjével vannak összekötve. Az MPU6050 INT tűje pedig az Arduino (D2) 0 megszakításához csatlakozik. Az LCD RS, RW és EN közvetlenül kapcsolódnak az Arduino 8, gnd és 9-hez. Az adatcsapok közvetlenül csatlakoznak a 10., 11., 12. és 13. digitális tűhöz.
Programozási magyarázat
A programozási rész szintén egyszerű ehhez a projekthez. Itt használtuk ezt az MPU6050 könyvtárat, hogy összekapcsoljuk az Arduino-val. Tehát először le kell töltenünk az MPU6050 könyvtárat a GitHubról, és telepítenünk kell az Arduino IDE-be.
Utána a példában találhatunk példakódokat. A felhasználó tesztelheti a kódot az Arduino alkalmazásba történő közvetlen feltöltéssel, és a soros monitoron keresztül láthatja az értékeket. Vagy a felhasználó felhasználhatja a cikk végén megadott kódunkat az értékek megjelenítésére az LCD-n és a soros monitoron keresztül is.
A kódolás során felvettünk néhány szükséges könyvtárat, például MPU6050 és LCD-t.
#include
A beállítási funkcióban mindkét eszközt inicializáljuk, és üdvözlő üzenetet írunk az LCD-re
void setup () {lcd.begin (16,2); lcd.createChar (0, fok); Soros kezdet (9600); Serial.println ("Az MPU6050 inicializálása"); while (! mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print ("Az eszköz nem található"); Serial.println ("Nem található érvényes MPU6050 érzékelő, ellenőrizze a vezetékeket!"); késés (500); } szám = 0; mpu.calibrateGyro (); mpu.setThreshold (3); A hurokfunkcióban 10 másodpercenként három funkciót hívtunk meg a hőmérséklet, a giroszkóp és a gyorsulásmérő leolvasásának kijelzésére az LCD-n. Ez a három függvény a tempShow, a gyroShow és az accelShow , ezeket a függvényeket a cikk végén megadott teljes Arduino kódban ellenőrizheti:
void loop () {lcd.clear (); lcd.print ("Hőmérséklet"); hosszú st = millis (); Serial.println ("Hőmérséklet"); míg (millis ()
Az MPU6050 giroszkópot és a gyorsulásmérőt egyaránt használják bármely eszköz helyzetének és helyzetének detektálására. Gyro a föld gravitációjával határozza meg az x, y és z tengely helyzetét, a gyorsulásmérő pedig a mozgás változásának sebessége alapján érzékeli. Számos projektünkben már használtuk a gyorsulásmérőt az Arduinóval:
- Gyorsulásmérő alapú kézmozdulattal vezérelt robot
- Arduino alapú járműbaleset-riasztó rendszer
- Földrengés-érzékelő riasztás az Arduino segítségével