Satura rādītājs:

Kā lietot GY511 moduli ar Arduino [izveidot digitālo kompasu]: 11 soļi
Kā lietot GY511 moduli ar Arduino [izveidot digitālo kompasu]: 11 soļi

Video: Kā lietot GY511 moduli ar Arduino [izveidot digitālo kompasu]: 11 soļi

Video: Kā lietot GY511 moduli ar Arduino [izveidot digitālo kompasu]: 11 soļi
Video: Kā sākt lietot Accu-Chek Softclix 2024, Novembris
Anonim
Kā lietot GY511 moduli ar Arduino [Izveidojiet digitālo kompasu]
Kā lietot GY511 moduli ar Arduino [Izveidojiet digitālo kompasu]

Pārskats

Dažos elektronikas projektos mums jebkurā brīdī jāzina ģeogrāfiskā atrašanās vieta un attiecīgi jāveic konkrēta darbība. Šajā apmācībā jūs uzzināsit, kā izmantot LSM303DLHC GY-511 kompasa moduli kopā ar Arduino, lai izveidotu digitālo kompasu. Pirmkārt, jūs uzzināsit par šo moduli un tā darbību, un pēc tam redzēsit, kā savienot LSM303DLHC GY-511 moduli ar Arduino.

Ko Tu iemācīsies

  • Kas ir kompasa modulis?
  • Kompasa modulis un Arduino interfeiss.
  • Izveidojiet digitālo kompasu, izmantojot moduli GY-511 un Arduino.

1. darbība. Vispārīga informācija par kompasa moduli

Vispārīga informācija par kompasa moduli
Vispārīga informācija par kompasa moduli

GY-511 modulī ietilpst 3 asu akselerometrs un 3 asu magnetometrs. Šis sensors var izmērīt lineāro paātrinājumu pilnās skalās ± 2 g / ± 4 g / ± 8 g / ± 16 g un magnētiskos laukus pilnās skalās ± 1,3 / ± 1,9 / ± 2,5 / ± 4,0 / ± 4,7 / ± 5,6 / ± 8,1 Gauss.

Kad šis modulis ir ievietots magnētiskajā laukā, saskaņā ar Lorenca likumu mikroskopiskajā spolē tiek ierosināta ierosmes strāva. Kompasa modulis šo strāvu pārveido par diferenciālo spriegumu katram koordinātu virzienam. Izmantojot šos spriegumus, jūs varat aprēķināt magnētisko lauku katrā virzienā un iegūt ģeogrāfisko stāvokli.

Padoms

QMC5883L ir vēl viens plaši izmantots kompasa modulis. Šis modulis, kuram ir līdzīga struktūra un pielietojums kā modulim LMS303, nedaudz atšķiras pēc veiktspējas. Tātad, ja jūs veicat projektus, esiet piesardzīgs attiecībā uz moduļa veidu. Ja jūsu modulis ir QMC5882L, izmantojiet atbilstošo bibliotēku un kodus, kas ir iekļauti arī apmācībā.

2. darbība. Nepieciešamās sastāvdaļas

Nepieciešamās sastāvdaļas
Nepieciešamās sastāvdaļas

Aparatūras komponenti

Arduino UNO R3 *1

GY-511 3 asu akselerometrs + magnetometrs *1

TowerPro servomotors SG-90 *1

1602 LCD modulis *1

Džemperi *1

Programmatūras lietotnes

Arduino IDE

3. darbība: GY-511 kompasa moduļa saskarne ar Arduino

Saskarnes GY-511 kompasa modulis ar Arduino
Saskarnes GY-511 kompasa modulis ar Arduino
Saskarnes GY-511 kompasa modulis ar Arduino
Saskarnes GY-511 kompasa modulis ar Arduino

GY-511 kompasa modulim ir 8 tapas, bet jums ir nepieciešami tikai 4 no tiem, lai saskarne ar Arduino. Šis modulis sazinās ar Arduino, izmantojot I2C protokolu, tāpēc pievienojiet moduļa SDA (I2C izeja) un SCK (I2C pulksteņa ievade) tapas Arduino plates I2C tapām.

Piezīme. Kā redzat, šajā projektā esam izmantojuši moduli GY-511. Bet jūs varat izmantot šo instrukciju, lai iestatītu citus LMS303 kompasa moduļus.

4. solis: GY-511 kompasa moduļa kalibrēšana

Lai pārvietotos, vispirms ir jākalibrē modulis, kas nozīmē mērīšanas diapazona iestatīšanu no 0 līdz 360 grādiem. Lai to izdarītu, pievienojiet moduli Arduino, kā parādīts zemāk, un augšupielādējiet šādu kodu savā panelī. Pēc koda izpildes sērijveida monitora logā var redzēt X, Y un Z ass mērīšanas diapazona minimālās un maksimālās vērtības. Šie skaitļi jums būs nepieciešami nākamajā daļā, tāpēc pierakstiet tos.

5. solis: ķēde

Ķēde
Ķēde

6. darbība: kods

Šajā kodā jums ir nepieciešama bibliotēka Wire.h I2C komunikācijai un LMS303.h bibliotēka kompasa modulim. Šīs bibliotēkas varat lejupielādēt no šīm saitēm.

LMS303.h bibliotēka

Wire.h bibliotēka

Piezīme. Ja izmantojat QMC5883, jums būs nepieciešama šāda bibliotēka:

MechaQMC5883L.h

Šeit mēs izskaidrojam LMS303 kodu, bet jūs varat lejupielādēt arī QMC moduļa kodus.

Apskatīsim dažas jaunās funkcijas:

kompass.enableDefault ();

Moduļa inicializācija

kompass.lasīt ();

Kompasa moduļa izejas vērtību nolasīšana

running_min.z = min (running_min.z, kompass.m.z); running_max.x = max (darbojas_max.x, kompass.m.x);

Mērījumu diapazona minimālās un maksimālās vērtības noteikšana, salīdzinot izmērītās vērtības.

7. darbība: digitālā kompasa izgatavošana

Pēc moduļa kalibrēšanas mēs izveidosim kompasu, pievienojot modulim servomotoru. Lai servo indikators vienmēr parādītu mums ziemeļu virzienu, piemēram, sarkano bultiņu uz kompasa. Lai to izdarītu, vispirms kompasa modulis vispirms aprēķina ģeogrāfisko virzienu un nosūta to Arduino, un pēc tam, piemērojot atbilstošu koeficientu, jūs aprēķināsit leņķi, kas jāpārvērš servodzinējam tā, lai tā indikators būtu vērsts uz magnētisko ziemeļu pusi. Galu galā mēs šo leņķi attiecinām uz servomotoru.

8. solis: ķēde

Ķēde
Ķēde

9. solis: kods

Kods
Kods

Šai daļai jums nepieciešama arī bibliotēka Servo.h, kas pēc noklusējuma ir instalēta jūsu Arduino programmatūrā.

Apskatīsim dažas no jaunajām funkcijām:

Servo Servo1;

Moduļa inicializācija

kompass.lasīt ();

Iepazīstinām ar servomotoru objektu

Servo1.attach (servoPin); kompass.init (); kompass.enableDefault ();

Inicializējiet kompasa moduli un servomotoru

Arguments Servo1.attach () ir servodzinējam pievienotās tapas numurs.

kompass.m_min = (LSM303:: vektors) { -32767, -32767, -32767}; kompass.m_max = (LSM303:: vektors) { +32767, +32767, +32767};

Izmantojot šīs līnijas, jūs definējat minimālās un maksimālās vērtības iepriekšējā daļā iegūtā diapazona mērīšanai.

pludiņa virsraksts = kompass.virsraksts ((LSM303:: vektors) {0, 0, 1});

Funkcija virsraksts () atgriež leņķi starp koordinātu asi un fiksēto asi. Jūs varat definēt fiksēto asi ar vektoru funkcijas argumentā. Piemēram, šeit, definējot (LSM303:: vektoru) {0, 0, 1}, Z ass tiek uzskatīta par nemainīgu asi.

Servo1.write (virsraksts);

Funkcija Servo1.write () piemēro servomotoram kompasa moduļa nolasīto vērtību.

Piezīme. Ņemiet vērā, ka servomotorei var būt magnētiskais lauks, tāpēc labāk ir novietot servomotoru piemērotā attālumā no kompasa moduļa, lai tas neizraisītu kompasa moduļa novirzi.

Ieteicams: