- Nepieciešamās sastāvdaļas:
- MPU6050 žiroskopu sensors:
- Apraksts:
- Shēmas shēma un skaidrojums:
- Programmēšanas skaidrojums
MPU6050 sensoram ir daudz funkciju vienā mikroshēmā. Tas sastāv no MEMS akselerometra, MEMS žiroskopa un temperatūras sensora. Šis modulis ir ļoti precīzs, pārvēršot analogās vērtības ciparu formātā, jo katram kanālam ir 16 bitu analogās uz digitālo pārveidotāju aparatūra. Šis modulis vienlaikus var uzņemt x, y un z kanālu. Tam ir I2C saskarne, lai sazinātos ar resursdatora kontrolieri. Šis modulis MPU6050 ir kompakta mikroshēma, kurā ir gan akselerometrs, gan žiroskopu. Šī ir ļoti noderīga ierīce daudzām lietojumprogrammām, piemēram, bezpilota lidaparātiem, robotiem, kustības sensoriem. To sauc arī par žiroskopu vai trīskāršu akselerometru.
Šodien šajā rakstā mēs sadarbosimies ar MPU6050 žiroskopu ar Arduino un parādīsim vērtības virs 16x2 LCD.
Nepieciešamās sastāvdaļas:
- Arduino Uno
- MPU-6050
- 10K POT
- Džempera vads
- Maizes dēlis
- USB kabelis
- Enerģijas padeve
MPU6050 žiroskopu sensors:
MPU-6050 ir 8 kontaktu 6 asu žiroskopu un akselerometrs vienā mikroshēmā. Šis modulis pēc noklusējuma darbojas I2C seriālajā komunikācijā, taču to var konfigurēt SPI interfeisam, konfigurējot tā reģistru. Attiecībā uz I2C tam ir SDA un SCL līnijas. Gandrīz visas tapas ir daudzfunkcionālas, bet šeit mēs strādājam tikai ar I2C režīma tapām.
Piespraudes konfigurācija:
Vcc: - šo tapu izmanto, lai darbinātu MPU6050 moduli attiecībā pret zemi
GND: - tas ir zemes tapas
SDA: - SDA tapa tiek izmantota datiem starp kontrolieri un mpu6050 moduli
SCL: - SCL tapa tiek izmantota pulksteņa ievadei
XDA: - šī ir sensora I2C SDA datu līnija, lai konfigurētu un nolasītu no ārējiem sensoriem ((pēc izvēles) mūsu gadījumā netiek izmantota)
XCL: - Šī ir sensora I2C SCL pulksteņa līnija ārējo sensoru konfigurēšanai un nolasīšanai ((pēc izvēles), ko mūsu gadījumā neizmanto)
ADO: - I2C vergu adrese LSB (mūsu gadījumā nav piemērojama)
INT: - pārtraukuma tapa, lai norādītu, ka dati ir gatavi.
Apraksts:
Šajā rakstā mēs parādām temperatūras, žiroskopu un akselerometra rādījumus, izmantojot LCD, izmantojot MPU6050 ar Arduino. Šis modulis dod mums rindas vērtības un normalizētās vērtības izvadā, bet rindu vērtības nav stabilas, tāpēc šeit mēs parādām normalizētās vērtības, izmantojot LCD. Ja vēlaties tikai akselerometra vērtību, varat arī izmantot akselerometru ADXL335 ar Arduino.
Šajā projektā mēs vispirms parādījām temperatūras vērtību, izmantojot LCD, un pēc 10 sekundēm parādām žiroskopu vērtības, un pēc 10 sekundēm mums ir akselerometra rādījumi, kā parādīts zemāk esošajos attēlos:
Shēmas shēma un skaidrojums:
Ķēdes shēma MPU6050 saskarnei ar Arduino ir ļoti vienkārša, šeit mēs izmantojām LCD un MPU6050. Un šeit mēs esam izmantojuši klēpjdatora USB barošanas avotu. LCD spilgtuma kontrolei tiek izmantots 10k katls. Saistībā ar MPU6050 mēs esam veikuši 5 savienojumus, kuros mēs esam savienojuši MPV6050 3.3v barošanas avotu un zemi ar Arduino 3.3v un zemi. MPU6050 SCL un SDA tapas ir savienotas ar Arduino A4 un A5 tapām. MPU6050 INT tapa ir savienota ar Arduino 0 pārtraukumu (D2). LCD RS, RW un EN ir tieši savienoti ar Arduino 8, gnd un 9. Datu tapa ir tieši savienota ar digitālo tapu numuriem 10, 11, 12 un 13.
Programmēšanas skaidrojums
Arī šim projektam ir viegli ieprogrammēt daļu. Šeit mēs izmantojām šo MPU6050 bibliotēku, lai to saskarnei pievienotu Arduino. Tāpēc vispirms mums ir jālejupielādē MPU6050 bibliotēka no GitHub un jāinstalē Arduino IDE.
Pēc tā mēs varam atrast piemēru kodus. Lietotājs var pārbaudīt šo kodu, tieši augšupielādējot tos Arduino, un var redzēt vērtības, izmantojot seriālo monitoru. Vai arī lietotājs var izmantot mūsu kodu, kas norādīts raksta beigās, lai parādītu vērtības arī LCD un sērijveida monitorā.
Kodēšanā mēs esam iekļāvuši dažas nepieciešamās bibliotēkas, piemēram, MPU6050 un LCD.
# iekļaut
Pēc iestatīšanas funkciju, mēs sāktu abas ierīces un rakstīt sveiciena ziņu nekā LCD
void setup () {lcd.begin (16,2); lcd.createChar (0, grāds); Sērijas sākums (9600); Serial.println ("Inicializēt MPU6050"); while (! mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print ("Ierīce nav atrasta"); Serial.println ("Nevarēja atrast derīgu MPU6050 sensoru, pārbaudiet elektroinstalāciju!"); kavēšanās (500); } skaits = 0; mpu.calibrateGyro (); mpu.setThreshold (3); In loop Function, mēs esam izsaukuši trīs funkcijas ik pēc 10 sekundēm temperatūras, žiroskopu un akselerometra rādījumu parādīšanai LCD. Šīs trīs funkcijas ir tempShow, gyroShow un accelShow , jūs varat pārbaudīt šīs funkcijas pilnā Arduino kodā, kas norādīts šī raksta beigās:
void loop () {lcd.clear (); lcd.print ("Temperatūra"); garais st = milis (); Serial.println ("Temperatūra"); kamēr (milis ()
MPU6050 žiroskopu un akselerometru izmanto, lai noteiktu jebkuras ierīces atrašanās vietu un orientāciju. Žiro izmanto zemes gravitāciju, lai noteiktu x, y un z ass pozīcijas, un akselerometrs nosaka, pamatojoties uz kustības izmaiņu ātrumu. Mēs jau izmantojām akselerometru kopā ar Arduino daudzos mūsu projektos, piemēram:
- Akselerometra vadīts robots ar rokas žestu
- Arduino balstīta transportlīdzekļu trauksmes trauksmes sistēma
- Zemestrīces detektora trauksme, izmantojot Arduino