Cuprins:
- Pasul 1: Informații generale despre modulul Compass
- Pasul 2: Componente necesare
- Pasul 3: interfațarea modulului de busolă GY-511 cu Arduino
- Pasul 4: Calibrarea modulului busolei GY-511
- Pasul 5: Circuit
- Pasul 6: Cod
- Pasul 7: Realizarea unei busole digitale
- Pasul 8: Circuit
- Pasul 9: Cod
- Pasul 10: Ce urmează?
Video: Cum se folosește modulul GY511 cu Arduino [Faceți o busolă digitală]: 11 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Prezentare generală
În unele proiecte electronice, trebuie să cunoaștem locația geografică în orice moment și să facem o operație specifică în consecință. În acest tutorial, veți afla cum să utilizați modulul de busolă LSM303DLHC GY-511 cu Arduino pentru a crea o busolă digitală. Mai întâi, veți afla despre acest modul și cum funcționează, apoi veți vedea cum să interfațați modulul LSM303DLHC GY-511 cu Arduino.
Ce vei învăța
- Ce este modulul busolă?
- Modul busolă și interfață Arduino.
- Faceți o busolă digitală cu modulul GY-511 și Arduino.
Pasul 1: Informații generale despre modulul Compass
Modulul GY-511 include un accelerometru pe 3 axe și un magnetometru pe 3 axe. Acest senzor poate măsura accelerația liniară la scări complete de ± 2 g / ± 4 g / ± 8 g / ± 16 g și câmpuri magnetice la scări complete de ± 1,3 / ± 1,9 / ± 2,5 / ± 4,0 / ± 4,7 / ± 5,6 / ± 8,1 Gauss.
Când acest modul este plasat într-un câmp magnetic, conform legii Lorentz, un curent de excitație induce în bobina sa microscopică. Modulul busolei convertește acest curent în tensiunea diferențială pentru fiecare direcție de coordonate. Folosind aceste tensiuni, puteți calcula câmpul magnetic în fiecare direcție și puteți obține poziția geografică.
Bacsis
QMC5883L este un alt modul de busolă utilizat în mod obișnuit. Acest modul, care are o structură și o aplicație similare cu modulul LMS303, este ușor diferit ca performanță. Deci, dacă faceți proiectele, fiți atenți la tipul de modul. Dacă modulul dvs. este QMC5882L, utilizați biblioteca și codurile corespunzătoare care sunt, de asemenea, incluse în tutorial.
Pasul 2: Componente necesare
Componente hardware
Arduino UNO R3 * 1
Accelerometru cu 3 axe GY-511 + magnetometru * 1
Servomotor TowerPro SG-90 * 1
Modul LCD 1602 * 1
Jumpers * 1
Aplicații software
IDE Arduino
Pasul 3: interfațarea modulului de busolă GY-511 cu Arduino
Modulul de busolă GY-511 are 8 pini, dar aveți nevoie doar de 4 dintre ei pentru a interfața cu Arduino. Acest modul comunică cu Arduino utilizând protocolul I2C, deci conectați pinii SDA (I2C output) și SCK (I2C clock input) ai modulului la pinii I2C de pe placa Arduino.
Notă După cum puteți vedea, am utilizat modulul GY-511 în acest proiect. Dar puteți utiliza această instrucțiune pentru configurarea altor module de busolă LMS303.
Pasul 4: Calibrarea modulului busolei GY-511
Pentru a naviga, trebuie mai întâi să calibrați modulul, ceea ce înseamnă că setați domeniul de măsurare de la 0 la 360 de grade. Pentru a face acest lucru, conectați modulul la Arduino așa cum se arată mai jos și încărcați următorul cod pe placa dvs. După executarea codului, puteți vedea valorile minime și maxime ale domeniului de măsurare pentru axele X, Y și Z în fereastra monitorului serial. Veți avea nevoie de aceste numere în partea următoare, așa că notați-le.
Pasul 5: Circuit
Pasul 6: Cod
În acest cod, aveți nevoie de biblioteca Wire.h pentru comunicarea I2C și de biblioteca LMS303.h pentru modulul busolă. Puteți descărca aceste biblioteci din următoarele linkuri.
Biblioteca LMS303.h
Wire.h Library
Notă Dacă utilizați QMC5883, veți avea nevoie de următoarea bibliotecă:
MechaQMC5883L.h
Aici, vă explicăm codul pentru LMS303, dar puteți descărca și codurile pentru modulul QMC.
Să vedem câteva dintre noile funcții:
compass.enableDefault ();
Inițializarea modulului
busola.citește ();
Citirea valorilor de ieșire ale modulului busolă
running_min.z = min (running_min.z, busola.m.z); running_max.x = max (running_max.x, busola.m.x);
Determinarea valorilor minime și maxime ale intervalului de măsurare prin compararea valorilor măsurate.
Pasul 7: Realizarea unei busole digitale
După calibrarea modulului, vom construi o busolă conectând un servomotor la modul. Astfel, indicatorul servo ne arată întotdeauna direcția nord, ca săgeata roșie de pe busolă. Pentru a face acest lucru, mai întâi modulul busolei calculează mai întâi direcția geografică și îl trimite la Arduino și apoi, aplicând un coeficient adecvat, veți calcula unghiul pe care servomotorul ar trebui să îl rotească astfel încât indicatorul său să indice spre nordul magnetic. În cele din urmă, aplicăm acel unghi la servomotor.
Pasul 8: Circuit
Pasul 9: Cod
Pentru această parte aveți nevoie și de biblioteca Servo.h, care este instalată în mod implicit pe software-ul dvs. Arduino.
Să vedem câteva dintre noile funcții:
Servo Servo1;
Inițializarea modulului
busola.citește ();
Prezentarea obiectului servomotor
Servo1.attach (servoPin); busolă.init (); compass.enableDefault ();
Inițializarea modulului busolei și servomotorului
Argumentul Servo1.attach () este numărul pinului conectat la servomotor.
busola.m_min = (LSM303:: vector) {- 32767, -32767, -32767}; busola.m_max = (LSM303:: vector) {+ 32767, +32767, +32767};
Folosind aceste linii definiți valorile minime și maxime pentru măsurarea intervalului obținut în partea anterioară.
float heading = compass.heading ((LSM303:: vector) {0, 0, 1});
Funcția heading () returnează unghiul dintre axa de coordonate și o axă fixă. Puteți defini axa fixă cu un vector în argumentul funcției. De exemplu, aici, prin definirea (LSM303:: vector) {0, 0, 1}, axa Z este considerată axa constantă.
Servo1.write (antet);
Funcția Servo1.write () aplică valoarea citită de modulul busolei servomotorului.
Notă Rețineți că servomotorul poate avea un câmp magnetic, deci este mai bine să plasați servomotorul la o distanță adecvată față de modulul busolei, pentru a nu se abate de la modulul busolei.
Recomandat:
Cum se folosește modulul RFID-RC522 cu Arduino: 5 pași
Cum se folosește modulul RFID-RC522 cu Arduino: În acest manual de instruire, voi oferi o prezentare generală asupra principiului fundamental de funcționare al modulului RFID, împreună cu etichetele și cipurile sale. De asemenea, voi oferi un scurt exemplu de proiect pe care l-am realizat folosind acest modul RFID cu LED RGB. Ca de obicei cu Ins-urile mele
Cum să controlați becul folosind modulul Arduino UNO și modulul de releu de stat solid cu un singur canal 5V: 3 pași
Cum să controlați becul utilizând modulul de releu de stare solidă Arduino UNO și un canal 5V: Descriere: Comparativ cu releul mecanic tradițional, releul de stare solidă (SSR) are multe avantaje: are o durată de viață mai lungă, cu o pornire mult mai mare / viteza de oprire și fără zgomot. În plus, are și o rezistență mai bună la vibrații și mecanică
Cum se folosește modulul buton cu SkiiiD: 9 pași
Cum se folosește modulul de butoane cu SkiiiD: Acest proiect este o instrucțiune despre „cum se utilizează Buzzer HW-508 (aplicabil pentru KY-006) cu Arduino prin skiiiD Înainte de început, mai jos este un tutorial de bază pentru modul de utilizare a skiiiD https: // www.instructables.com/id/Getting-Started-With-SkiiiD-Editor
Busolă digitală utilizând magnetometrul Arduino și HMC5883L: 6 pași
Busolă digitală utilizând magnetometrul Arduino și HMC5883L: Bună, băieți, acest senzor ar putea indica nordul, sudul, estul și vestul geografic, și noi, oamenii, îl putem folosi, uneori, când este necesar. Asa de. În acest articol, să încercăm să înțelegem cum funcționează senzorul magnetometrului și cum să-l interfațăm cu un microcontro
Cum se folosește modulul de circuit luminos fluorescent compact ars: 6 pași
Cum se folosește modulul circuitului de lumină fluorescentă compactă arsă: Notă și precauții: CFL-urile conțin mercur care este un material periculos, deci ar trebui manipulat în consecință Majoritatea lămpilor CFL, circuitele electronice funcționează perfect și sunt încă utilizabile, doar becul este defect. Circuitul CFL de 18-24 wați este