Indholdsfortegnelse:
- Trin 1: Højdemåler
- Trin 2: Dele
- Trin 3: Kredsløbsdiagram og printkort
- Trin 4: Sådan perfekt justeres LED'er i en cirkel på sekunder med Eagle PCB Design Software
- Trin 5: Kompasskalibreringsproces
- Trin 6: Kompensér den magnetiske deklination af din placering
- Trin 7: Kompilér koden
Video: LED -kompas og højdemåler: 7 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
Objekter med lysdioder fascinerer mig altid. Derfor er dette projekt at kombinere den populære digitale kompassensor HMC5883L med 48 lysdioder. Ved at placere LED'erne i en cirkel er LED'en, der lyser, den retning, du er på vej hen. Hver 7,5 grader driver en ny LED, som giver detaljerede resultater.
GY-86-kortet har også en MS5611 barometrisk trykføler. Ved hjælp af denne sensor er det muligt at beregne højden. På grund af den høje opløsning er den perfekt til højdemålere.
MPU6050-sensoren på GY-86-kortet har både et 3-akset accelerometer og et 3-akset gyroskop. Gyroskopet kan måle vinkelpositionens hastighed over tid. Accelerometeret kan måle gravitationsacceleration og ved hjælp af trigonometri -matematik er det muligt at beregne den vinkel, sensoren er placeret ved. Ved at kombinere accelerometer og gyroskopdata er det muligt at få information om sensororienteringen. Dette kan bruges til vippekompensation for HMC5883L kompas (at gøre).
De korte instruktionsvideoer i denne instruktionsbog forklarer detaljeret, hvordan det fungerer. Kalibreringsprocedurer er automatiserede, så succes garanteres. Temperaturen er tilgængelig i Celsius (standard) eller Fahrenheit.
Hav det sjovt !!
Trin 1: Højdemåler
Højdemåleren gør brug af MS5611 barometrisk trykføler. Højde kan bestemmes ud fra måling af atmosfærisk tryk. Jo større højde, jo lavere tryk. Ved opstart bruger højdemåleren standardtrykket på havniveau på 1013,25 mbar. Ved at trykke på knappen ved pin 21 vil trykket på din placering blive brugt som reference. På denne måde gør det det muligt cirka at måle, hvilken højde noget har (f.eks. Når du kører op ad bakke med en bil).
Den såkaldte "hypsometriske formel" bruges i dette projekt. Denne formel gør brug af temperaturen til at kompensere for målingen.
float alt=((powf (source / ((float) P / 100.0), 0.19022256) - 1.0) * ((float) TEMP / 100 + 273.15)) / 0.0065;
Du kan finde mere om den hypsometriske formel her:
Hypsometrisk formel
Fabrikskalibreringsdata og sensortemperatur læses fra MS5611 -sensoren og anvendes på kode for at få de mest nøjagtige målinger. Under testen fandt jeg ud af, at MS5611-sensoren er følsom over for luftstrømme og forskelle i lysintensitet. Det skal være muligt at få bedre resultater end i denne instruktionsvideo.
Trin 2: Dele
1 x Microchip 18f26k22 mikrokontroller 28-PIN PDIP
3 x MCP23017 16-bit I/O-udvidelse 28-benet SPDIP
48 x LED'er 3 mm
1 x GY-86 modul med MS5611, HMC5883L og MPU6050 sensorer
1 x SH1106 OLED 128x64 I2C
1 x Keramisk kondensator 100nF
1 x 100 Ohm modstand
Trin 3: Kredsløbsdiagram og printkort
Alt passer på et enkeltsidet printkort. Find Eagle- og Gerber -filerne her, så du kan lave det selv eller spørge en PCB -producent.
Jeg bruger LED -kompas og højdemåler i min bil og bruger OBD2 -grænsefladen som en strømforsyning. Mikrocontrolleren passer perfekt i stikket.
Trin 4: Sådan perfekt justeres LED'er i en cirkel på sekunder med Eagle PCB Design Software
Du skal se denne virkelig flotte funktion i Eagle PCB Design Software, som sparer dig for mange timers arbejde. Med denne Eagle -funktion kan du perfekt justere LED'er i en cirkel på få sekunder.
Bare klik på fanen "Fil" og derefter "Kør ULP". Klik herfra på "cmd-draw.ulp". Vælg "Move", "degree step" og "Circle". Udfyld navnet på den første LED i feltet "navn". Indstil koordinaterne for midten af cirklen på gitteret ved felterne "X center coord" og "Y center coord". I dette projekt er 48 lysdioder, så 360 divideret med 48 gør 7,5 til feltet "Vinkeltrin". Radius af denne cirkel er 1,4 tommer. Tryk på enter, og du har en perfekt cirkel af lysdioder.
Trin 5: Kompasskalibreringsproces
HMC5883L indeholder en 12 bit ADC, der muliggør 1 til 2 graders Celsius kompasskursens nøjagtighed. Men før det giver brugbare data, skal det kalibreres. For at dette projekt kan fungere problemfrit, er der denne kalibreringsmetode, der giver x- og y-forskydning. Det er ikke den mest sofistikerede metode, men det er tilstrækkeligt til dette projekt. Denne procedure koster dig kun et par minutter og giver dig gode resultater.
Ved at indlæse og køre denne software bliver du guidet i denne kalibreringsproces. OLED -displayet fortæller dig, hvornår processen starter, og hvornår den slutter. Denne kalibreringsproces beder dig om at dreje sensoren 360 grader, mens du holder den helt flad (vandret mod jorden). Monter den på et stativ eller lignende. At gøre dette ved at holde det i hånden virker ikke. I slutningen præsenteres forskydningerne på OLED. Hvis du kører denne procedure flere gange, skal du se næsten ens resultater.
Eventuelt er de indsamlede data også tilgængelige via RS232 via pin 27 (9600 baud). Brug bare et terminalprogram som Putty og indsaml alle data i logfilen. Disse data kan let importeres i Excel. Herfra kan du lettere se, hvordan forskydningen af din HMC5883L ser ud.
Forskydningerne sættes i mikrokontrollerens EEPROM. Disse indlæses ved opstart af kompass- og højdemåler -softwaren, som du finder i trin 7.
Trin 6: Kompensér den magnetiske deklination af din placering
Der er et magnetisk nord og et geografisk nord (nordpolen). Dit kompas følger jordens magnetfeltlinjer, så peger på det magnetiske nord. Forskellen mellem det magnetiske nord og det geografiske nord kaldes den magnetiske deklination. På min placering er deklinationen kun 1 grad og 22 minutter, så det er ikke værd at kompensere dette. Andre steder kan denne tilbagegang være op til 30 grader.
Find den magnetiske deklination på din placering
Hvis du vil kompensere dette (er valgfrit), kan du tilføje deklinationen (grader og minutter) i EEPROM på mikrokontrolleren. På placering 0x20 kan du tilføje grader i signeret hexadecimal form. Det er underskrevet, fordi det også kan være en negativ deklination. På placering 0x21 kan du også tilføje minutter i hexadecimal form.
Trin 7: Kompilér koden
Kompilér denne kildekode, og programmer din mikrokontroller. Denne kode kompileres korrekt med MPLABX IDE v5.20 og XC8 compiler v2.05 i C99 -tilstand (så inkluder C99 -mapperne). Også hex -filen er tilgængelig, så du kan springe kompileringsproceduren over. Sørg for, at du fjerner markeringen i afkrydsningsfeltet "EEPROM -data aktiveret" for at forhindre, at kalibreringsdata (se trin 5) overskrives. Indstil din programmør til 3,3 volt!
Ved at tilslutte pin 27 til jorden får du temperaturen i Fahrenheit.
Tak til Achim Döbler for hans µGUI grafiske bibliotek
Nummer to i sensorkonkurrencen
Anbefalede:
Højdemåler (højdemeter) Baseret på atmosfæretryk: 7 trin (med billeder)
Højdemåler (højdemeter) Baseret på atmosfæretryk: [Rediger]; Se version 2 i trin 6 med manuel baseline højde input.Dette er bygningsbeskrivelsen af en højdemåler (højdemeter) baseret på en Arduino Nano og en Bosch BMP180 atmosfærisk tryk sensor. Designet er enkelt, men målingerne
Dirt-billigt Dirt-O-Meter-$ 9 Arduino-baseret hørbar højdemåler: 4 trin (med billeder)
Dirt-billig Dirt-O-Meter-$ 9 Arduino-baseret hørbar højdemåler: Dytters (A.K.A Audible Altimeters) reddede faldskærmsudspringers liv i så mange år. Nu vil Audible Abby også spare dem penge. Basic Dytters har fire alarmer, en på vej op og tre på vej ned. Når flyet kører op, skal skydiverne vide, hvornår
PropVario, et DIY Variometer/højdemåler med stemmeudgang til RC -sejlplaner: 7 trin (med billeder)
PropVario, et DIY Variometer/højdemåler med stemmeudgang til RC -sejlplaner: Denne instruktør viser dig, hvordan du bygger en billig Vario, der kunne tale højden og selvfølgelig sende forskellige toner, når du ændrer højden på dit sejlfly. Nogle funktioner: - stemme og tone - brug dine egne (bølge-) prøver i dit
Elektronisk barometrisk højdemåler til stratosfæreballoner: 9 trin (med billeder)
Elektronisk barometrisk højdemåler til stratosfæreballoner: Vores team, RandomRace.ru, lancerer heliumballoner. Små og store, med kameraer og uden. Vi lancerer små for tilfældigt at slippe kontrolpunkter for eventyrløbskonkurrencer, og store for at lave fantastiske videoer og fotos fra toppen af atmoen
Arduino højdemåler ved hjælp af BMP og SPI eller I2C OLED: 5 trin
Arduino højdemåler ved hjælp af BMP og SPI eller I2C OLED: I lang tid har jeg ledt efter højdemåler og temperatur ved hjælp af en enkelt sensor og vist det til SPI -baseret OLED. Da jeg ikke kunne finde noget præcist, troede jeg, at jeg ville bygge mit eget ved hjælp af U8glib -biblioteket. Der er en tutorial i youtub