Innehållsförteckning:

LED -kompass och höjdmätare: 7 steg (med bilder)
LED -kompass och höjdmätare: 7 steg (med bilder)

Video: LED -kompass och höjdmätare: 7 steg (med bilder)

Video: LED -kompass och höjdmätare: 7 steg (med bilder)
Video: Victorinox Altimeter 2024, Juli
Anonim
Image
Image
Kretsschema och kretskort
Kretsschema och kretskort

Objekt med lysdioder fascinerar mig alltid. Därför är detta projekt att kombinera den populära digitala kompassensorn HMC5883L med 48 lysdioder. Genom att placera lysdioderna i en cirkel är lysdioden som belyser den riktning du är på väg. Var 7,5 grader driver en ny lysdiod som ger detaljerade resultat.

GY-86-kortet tillhandahåller också en MS5611 barometrisk trycksensor. Med hjälp av denna sensor är det möjligt att beräkna höjden. På grund av den höga upplösningen är den perfekt för höjdmätare.

MPU6050-sensorn på GY-86-kortet har både en 3-axlig accelerometer och ett 3-axligt gyroskop. Gyroskopet kan mäta vinkelpositionens hastighet över tid. Acceleratorn kan mäta gravitationell acceleration och med hjälp av trigonometri -matematik är det möjligt att beräkna vinkeln vid vilken sensorn är placerad. Genom att kombinera accelerometer- och gyroskopdata är det möjligt att få information om sensorriktningen. Detta kan användas för lutningskompensation för HMC5883L -kompassen (att göra).

De korta instruktionsfilmerna i den här instruktionsboken kommer att förklara i detalj hur det fungerar. Kalibreringsprocedurer är automatiserade så att framgång garanteras. Temperaturen är tillgänglig i Celsius (standard) eller Fahrenheit.

Ha så kul !!

Steg 1: Höjdmätare

Image
Image

Höjdmätaren använder sig av MS5611 barometrisk trycksensor. Höjd kan bestämmas utifrån mätningen av atmosfärstryck. Ju högre höjd desto lägre tryck. Vid start använder höjdmätaren standardtrycket på havsnivån på 1013,25 mbar. Genom att trycka på knappen vid stift 21 kommer trycket på din plats att användas som referens. På detta sätt är det möjligt att ungefär mäta vilken höjd något har (t.ex. när du kör uppför med en bil).

Den så kallade "hypsometriska formeln" används i detta projekt. Denna formel använder temperaturen för att kompensera mätningen.

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

Du kan hitta mer om den hypsometriska formeln här:

Hypsometrisk formel

Fabrikskalibreringsdata och sensortemperatur läses från MS5611 -sensorn och appliceras på koden för att få de mest exakta mätningarna. Under testet fann jag att MS5611-sensorn är känslig för luftflöden och skillnader i ljusintensitet. Det måste vara möjligt att få bättre resultat än i denna instruktionsvideo.

Steg 2: Delar

1 x Microchip 18f26k22 mikrokontroller 28-PIN PDIP

3 x MCP23017 16-bitars I/O-expander 28-polig SPDIP

48 x lysdioder 3 mm

1 x GY-86-modul med MS5611, HMC5883L och MPU6050 sensorer

1 x SH1106 OLED 128x64 I2C

1 x keramisk kondensator 100nF

1 x 100 Ohm motstånd

Steg 3: Kretsdiagram och kretskort

Kretsschema och kretskort
Kretsschema och kretskort

Allt passar på ett ensidigt kretskort. Hitta Eagle- och Gerber -filerna så att du kan göra det själv eller fråga en PCB -tillverkare.

Jag använder LED -kompassen och höjdmätaren i min bil och använder OBD2 -gränssnittet som strömförsörjning. Mikrocontrollern passar perfekt i kontakten.

Steg 4: Hur man perfekt anpassar lysdioder i en cirkel på några sekunder med Eagle PCB Design Software

Du måste se den här riktigt fina funktionen i Eagle PCB Design Software som sparar timmar av arbete. Med denna Eagle -funktion kan du perfekt justera lysdioder i en cirkel på några sekunder.

Klicka bara på fliken "Arkiv" och sedan "Kör ULP". Härifrån klickar du på "cmd-draw.ulp". Välj "Flytta", "gradsteg" och "Cirkel". Fyll i namnet på den första lysdioden i fältet "namn". Ställ in koordinaterna för cirkelns mitt på rutnätet vid fälten "X center coord" och "Y center coord". I detta projekt finns 48 lysdioder så 360 dividerat med 48 gör 7,5 för fältet "Vinkelsteg". Radien för denna cirkel är 1,4 tum. Tryck enter och du har en perfekt cirkel av lysdioder.

Steg 5: Kompasskalibreringsprocess

Image
Image

HMC5883L har en 12 -bitars ADC som möjliggör 1 till 2 graders Celsius kompassriktning. Men innan den ger användbar data måste den kalibreras. För att detta projekt ska fungera smidigt finns denna kalibreringsmetod som ger x- och y-förskjutning. Det är inte den mest sofistikerade metoden men det är tillräckligt för detta projekt. Detta förfarande kommer att kosta dig bara några minuter och ger dig fina resultat.

Genom att ladda och köra denna programvara guidas du i denna kalibreringsprocess. OLED -displayen kommer att berätta när processen startar och när den slutar. Denna kalibreringsprocess kommer att be dig att vrida sensorn 360 grader medan du håller den helt platt (horisontellt mot marken). Montera den på ett stativ eller något liknande. Att göra detta genom att hålla det i handen fungerar inte. I slutet kommer kompensationerna att presenteras på OLED. Om du kör denna procedur flera gånger måste du se nästan lika resultat.

Alternativt är den insamlade data också tillgänglig via RS232 via stift 27 (9600 baud). Använd bara ett terminalprogram som Putty och samla all data i loggfilen. Dessa data kan enkelt importeras i Excel. Härifrån kan du lättare se hur förskjutningen på din HMC5883L ser ut.

Förskjutningarna sätts i mikrokontrollerns EEPROM. Dessa kommer att laddas vid start av kompass- och höjdmätarprogramvaran som du hittar i steg 7.

Steg 6: Kompensera den magnetiska deklinationen för din plats

Image
Image
Sensors tävling
Sensors tävling

Det finns en magnetisk norr och en geografisk norr (nordpolen). Din kompass följer jordens magnetfältlinjer så pekar på den magnetiska norr. Skillnaden mellan den magnetiska norr och den geografiska norr kallas magnetisk deklination. På min plats är deklinationen bara 1 grad och 22 minuter så inte värt att kompensera detta. På andra platser kan denna deklination vara upp till 30 grader.

Hitta den magnetiska deklinationen på din plats

Om du vill kompensera detta (är valfritt) kan du lägga till deklinationen (grader och minuter) i EEPROM på mikrokontrollern. På plats 0x20 kan du lägga till graderna i signerad hexadecimal form. Det är signerat eftersom det också kan vara en negativ deklination. På plats 0x21 kan du lägga till minuter också i hexadecimal form.

Steg 7: Kompilera koden

Image
Image

Kompilera denna källkod och programmera din mikrokontroller. Denna kod kompilerar korrekt med MPLABX IDE v5.20 och XC8 compiler v2.05 i C99 -läge (inkludera C99 -katalogerna). Även hex -filen är tillgänglig så att du kan hoppa över kompileringsproceduren. Se till att du avmarkerar kryssrutan "EEPROM -data aktiverad" för att förhindra att kalibreringsdata (se steg 5) skrivs över. Ställ in din programmerare på 3,3 volt!

Genom att ansluta stift 27 till marken får du temperaturen i Fahrenheit.

Tack till Achim Döbler för hans µGUI grafiska bibliotek

Sensors tävling
Sensors tävling

Tvåa i sensortävlingen

Rekommenderad: