Cuprins:

Compas LED și altimetru: 7 pași (cu imagini)
Compas LED și altimetru: 7 pași (cu imagini)

Video: Compas LED și altimetru: 7 pași (cu imagini)

Video: Compas LED și altimetru: 7 pași (cu imagini)
Video: How to use LED seven segment display and calculate its resistors value 2024, Iulie
Anonim
Image
Image
Diagrama circuitului și PCB
Diagrama circuitului și PCB

Obiectele cu LED-uri mă fascinează întotdeauna. Prin urmare, acest proiect de a combina popularul senzor digital de busolă HMC5883L cu 48 de LED-uri. Prin plasarea LED-urilor într-un cerc, ledul care luminează este direcția în care vă îndreptați. La fiecare 7,5 grade va conduce un nou LED care oferă rezultate detaliate.

Placa GY-86 oferă și un senzor de presiune barometrică MS5611. Cu ajutorul acestui senzor este posibil să se calculeze altitudinea. Datorită rezoluției ridicate, este perfect pentru altimetri.

Senzorul MPU6050 de pe placa GY-86 are atât un accelerometru pe 3 axe, cât și un giroscop pe 3 axe. Giroscopul poate măsura viteza poziției unghiulare în timp. Accelerometrul poate măsura accelerația gravitațională și prin utilizarea matematicii trigonometrice este posibil să se calculeze unghiul la care este poziționat senzorul. Combinând datele accelerometrului și giroscopului este posibil să obțineți informații despre orientarea senzorului. Aceasta poate fi utilizată pentru compensarea înclinării pentru busola HMC5883L (de făcut).

Videoclipurile cu instrucțiuni scurte din acest instructable vor explica în detaliu cum funcționează. Procedurile de calibrare sunt automatizate, astfel încât succesul este garantat. Temperatura este disponibilă în Celsius (implicit) sau Fahrenheit.

A se distra !!

Pasul 1: Altimetru

Image
Image

Altimetrul folosește senzorul de presiune barometrică MS5611. Altitudinea poate fi determinată pe baza măsurării presiunii atmosferice. Cu cât altitudinea este mai mare, cu atât este mai mică presiunea. La pornire, altimetrul folosește presiunea implicită la nivelul mării de 1013,25 mbar. Apăsând butonul de la pinul 21, presiunea din locația dvs. va fi utilizată ca referință. În acest fel, este posibilă măsurarea aproximativă a înălțimii pe care o are ceva (de exemplu, atunci când conduci în sus cu o mașină).

Așa-numita „formulă hipsometrică” este utilizată în acest proiect. Această formulă folosește temperatura pentru a compensa măsurarea.

float alt=((powf (sursă / ((float) P / 100.0), 0.19022256) - 1.0) * ((float) TEMP / 100 + 273.15)) / 0.0065;

Puteți găsi mai multe despre formula hipsometrică aici:

Formula hipometrică

Datele de calibrare din fabrică și temperatura senzorului sunt citite din senzorul MS5611 și aplicate codului pentru a obține cele mai precise măsurători. În timpul testului am constatat că senzorul MS5611 este sensibil la fluxurile de aer și la diferențele de intensitate a luminii. Trebuie să fie posibil să obțineți rezultate mai bune decât în acest videoclip cu instrucțiuni.

Pasul 2: Piese

1 x Microchip 18f26k22 microcontroler 28-PIN PDIP

3 x MCP23017 16-Bit I / O Expander 28-pin SPDIP

48 x LED-uri de 3 mm

1 x modul GY-86 cu senzori MS5611, HMC5883L și MPU6050

1 x SH1106 OLED 128x64 I2C

1 x condensator ceramic 100nF

Rezistor 1 x 100 Ohm

Pasul 3: Diagrama circuitului și PCB

Diagrama circuitului și PCB
Diagrama circuitului și PCB

Totul se potrivește pe un PCB cu o singură față. Găsiți aici fișierele Eagle și Gerber, astfel încât să le puteți crea singur sau să întrebați un producător de PCB.

Folosesc busola LED și altimetrul din mașină și folosesc interfața OBD2 ca sursă de alimentare. Microcontrolerul se potrivește perfect în conector.

Pasul 4: Cum să aliniați perfect LED-urile într-un cerc în câteva secunde cu software-ul Eagle PCB Design

Trebuie să vedeți această caracteristică foarte frumoasă în software-ul Eagle PCB Design, care vă economisește ore de muncă. Cu această caracteristică Eagle puteți alinia perfect LED-urile într-un cerc în câteva secunde.

Doar faceți clic pe fila „Fișier” și apoi „Rulați ULP”. De aici faceți clic pe „cmd-draw.ulp”. Selectați „Mutare”, „grad grad” și „Cerc”. Completați numele primului LED în câmpul „nume”. Setați coordonatele centrului cercului pe grilă la câmpurile „X center coord” și „Y center coord”. În acest proiect sunt 48 de LED-uri deci 360 împărțit la 48 face 7,5 pentru câmpul "Unghi pas". Raza acestui cerc este de 1,4 inci. Apăsați Enter și aveți un cerc perfect de LED-uri.

Pasul 5: Procesul de calibrare a busolei

Image
Image

HMC5883L include un ADC de 12 biți care permite precizia de direcție a busolei de la 1 la 2 grade Celsius. Dar, înainte de a oferi date utilizabile, trebuie să fie calibrate. Pentru ca acest proiect să funcționeze fără probleme, există această metodă de calibrare care oferă offset x și y. Nu este cea mai sofisticată metodă, dar este suficientă pentru acest proiect. Această procedură vă va costa doar câteva minute și vă va oferi rezultate frumoase.

Prin încărcarea și rularea acestui software veți fi ghidați în acest proces de calibrare. Afișajul OLED vă va spune când va începe procesul și când se va termina. Acest proces de calibrare vă va cere să rotiți senzorul la 360 de grade, în timp ce îl țineți absolut plat (orizontal față de sol). Montați-l pe un trepied sau așa ceva. A face acest lucru ținându-l în mână nu funcționează. La final, compensările vor fi prezentate pe OLED. Dacă executați această procedură de mai multe ori, trebuie să vedeți rezultate aproape egale.

Opțional, datele colectate sunt disponibile și prin RS232 prin pinul 27 (9600 baud). Folosiți doar un program terminal precum Putty și colectați toate datele din fișierul jurnal. Aceste date pot fi importate cu ușurință în Excel. De aici puteți vedea mai ușor cum arată decalajul HMC5883L.

Compensările sunt introduse în EEPROM a microcontrolerului. Acestea vor fi încărcate la pornirea software-ului busolei și altimetrului pe care le veți găsi la pasul 7.

Pasul 6: Compensați declinarea magnetică a locației dvs

Image
Image
Concurs de senzori
Concurs de senzori

Există un nord magnetic și un nord geografic (Polul Nord). Busola dvs. va urma liniile câmpului magnetic al pământului, așa că îndreaptă spre nordul magnetic. Diferența dintre nordul magnetic și nordul geografic se numește declinație magnetică. La locația mea, declinul este de doar 1 grad și 22 de minute, deci nu merită să compensați acest lucru. În alte locații, această declinare poate fi de până la 30 de grade.

Găsiți declinația magnetică la locația dvs.

Dacă doriți să compensați acest lucru (este opțional) puteți adăuga declinarea (grade și minute) în EEPROM a microcontrolerului. La locația 0x20 puteți adăuga gradele în formă hexazecimală semnată. Este semnat deoarece poate fi și o declinare negativă. La locația 0x21 puteți adăuga minutele și în formă hexazecimală.

Pasul 7: Compilați codul

Image
Image

Compilați acest cod sursă și programați microcontrolerul. Acest cod se compilează corect cu MPLABX IDE v5.20 și compilatorul XC8 v2.05 în modul C99 (deci includeți directoarele C99). De asemenea, fișierul hex este disponibil, astfel încât să puteți sări peste procedura de compilare. Asigurați-vă că debifați caseta de selectare „Date EEPROM activate” pentru a preveni suprascrierea datelor de calibrare (consultați pasul 5). Setați programatorul la 3,3 volți!

Conectând pinul 27 la masă obțineți temperatura în Fahrenheit.

Mulțumim lui Achim Döbler pentru biblioteca sa grafică µGUI

Concurs de senzori
Concurs de senzori

Locul doi în concursul de senzori

Recomandat: