Inhoudsopgave:

LED-kompas en hoogtemeter - Ajarnpa
LED-kompas en hoogtemeter - Ajarnpa

Video: LED-kompas en hoogtemeter - Ajarnpa

Video: LED-kompas en hoogtemeter - Ajarnpa
Video: Multifunction GPS altimeter GPS track indication from sunroad 2024, Juli-
Anonim
Image
Image
Schakelschema en PCB
Schakelschema en PCB

Objecten met LED's fascineren me altijd. Daarom dit project om de populaire digitale kompassensor HMC5883L te combineren met 48 LED's. Door de LED's in een cirkel te plaatsen, is de led die oplicht de richting waarin je gaat. Elke 7,5 graden zal een nieuwe LED aansturen die gedetailleerde resultaten geeft.

Het GY-86-bord biedt ook een MS5611-luchtdruksensor. Met behulp van deze sensor is het mogelijk om de hoogte te berekenen. Door de hoge resolutie is hij perfect voor hoogtemeters.

De MPU6050-sensor op het GY-86-bord heeft zowel een 3-assige versnellingsmeter als een 3-assige gyroscoop. De gyroscoop kan de snelheid van de hoekpositie in de tijd meten. De versnellingsmeter kan zwaartekrachtversnelling meten en door trigonometrie te gebruiken, is het mogelijk om de hoek te berekenen waaronder de sensor is geplaatst. Door de versnellingsmeter- en gyroscoopgegevens te combineren, is het mogelijk om informatie over de sensororiëntatie te krijgen. Deze kan gebruikt worden voor de tilt compensatie voor het HMC5883L kompas (to do).

De korte instructievideo's in deze instructable leggen in detail uit hoe het werkt. Kalibratieprocedures zijn geautomatiseerd, dus succes gegarandeerd. De temperatuur is beschikbaar in Celsius (standaard) of Fahrenheit.

Veel plezier !!

Stap 1: Hoogtemeter

Image
Image

De hoogtemeter maakt gebruik van de MS5611 luchtdruksensor. De hoogte kan worden bepaald op basis van de meting van de atmosferische druk. Hoe groter de hoogte, hoe lager de druk. Bij het opstarten gebruikt de hoogtemeter de standaarddruk op zeeniveau van 1013,25 mbar. Door op de knop bij pin 21 te drukken, wordt de druk op uw locatie als referentie gebruikt. Op deze manier is het mogelijk om bij benadering te meten welke hoogte iets heeft (bijvoorbeeld bij het bergop rijden met een auto).

In dit project wordt de zogenaamde "Hypsometrische formule" gebruikt. Deze formule maakt gebruik van de temperatuur om de meting te compenseren.

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

U kunt hier meer vinden over de hypsometrische formule:

Hypsometrische formule

Fabriekskalibratiegegevens en sensortemperatuur worden gelezen van de MS5611-sensor en toegepast op code om de meest nauwkeurige metingen te krijgen. Tijdens de test ontdekte ik dat de MS5611-sensor gevoelig is voor luchtstromen en verschillen in lichtintensiteit. Het moet mogelijk zijn om betere resultaten te krijgen dan in deze instructievideo.

Stap 2: Onderdelen

1 x Microchip 18f26k22 microcontroller 28-PIN PDIP

3 x MCP23017 16-bits I/O-uitbreiding 28-pins SPDIP

48 x LED's 3 mm

1 x GY-86 module met MS5611, HMC5883L en MPU6050 sensoren

1 x SH1106 OLED 128x64 I2C

1 x Keramische condensator 100nF

1 x 100 Ohm weerstand

Stap 3: Schakelschema en PCB

Schakelschema en PCB
Schakelschema en PCB

Alles past op een enkelzijdige print. Vind hier de Eagle- en Gerber-bestanden zodat u deze zelf kunt maken of vraag een PCB-fabrikant.

Ik gebruik het LED-kompas en de hoogtemeter in mijn auto en gebruik de OBD2-interface als voeding. De microcontroller past perfect in de connector.

Stap 4: Hoe LED's in enkele seconden perfect in een cirkel worden uitgelijnd met Eagle PCB-ontwerpsoftware

U moet deze echt leuke functie in Eagle PCB Design Software zien, die u uren werk bespaart. Met deze Eagle-functie kunt u binnen enkele seconden LED's in een cirkel perfect uitlijnen.

Klik gewoon op het tabblad "Bestand" en vervolgens op "ULP uitvoeren". Klik vanaf hier op "cmd-draw.ulp". Selecteer "Verplaatsen", "gradenstap" en "Cirkel". Vul in het veld "naam" de naam van de eerste LED in. Zet de coördinaten van het middelpunt van de cirkel op het raster bij de velden "X center coördinaat" en "Y center coördinaat". In dit project zitten 48 LED's dus 360 gedeeld door 48 maakt 7,5 voor veld "Hoekstap". De straal van deze cirkel is 1,4 inch. Druk op enter en je hebt een perfecte cirkel van LED's.

Stap 5: Kompaskalibratieproces

Image
Image

De HMC5883L bevat een 12 bit ADC die een nauwkeurigheid van 1 tot 2 graden Celsius mogelijk maakt. Maar voordat het bruikbare gegevens geeft, moet het worden gekalibreerd. Om dit project soepel te laten verlopen, is er deze kalibratiemethode die x- en y-offset biedt. Het is niet de meest geavanceerde methode, maar het is voldoende voor dit project. Deze procedure kost u slechts een paar minuten en geeft u mooie resultaten.

Door deze software te laden en uit te voeren, wordt u begeleid in dit kalibratieproces. Het OLED-display geeft aan wanneer het proces begint en wanneer het eindigt. Bij dit kalibratieproces wordt u gevraagd de sensor 360 graden te draaien terwijl u deze absoluut plat houdt (horizontaal ten opzichte van de grond). Monteer hem op een statief of iets dergelijks. Dit doen door het in je hand te houden werkt niet. Aan het einde worden de offsets weergegeven op de OLED. Als u deze procedure meerdere keren uitvoert, moet u bijna gelijke resultaten zien.

Optioneel zijn de verzamelde gegevens ook beschikbaar via RS232 via pin 27 (9600 baud). Gebruik gewoon een terminalprogramma zoals Putty en verzamel alle gegevens in het logbestand. Deze gegevens kunnen eenvoudig worden geïmporteerd in Excel. Vanaf hier kunt u gemakkelijker zien hoe de offset van uw HMC5883L eruit ziet.

De offsets worden in de EEPROM van de microcontroller gezet. Deze worden geladen bij het opstarten van de kompas- en hoogtemetersoftware die u in stap 7 vindt.

Stap 6: Compenseer de magnetische declinatie van uw locatie

Image
Image
Sensoren wedstrijd
Sensoren wedstrijd

Er is een magnetisch noorden en een geografisch noorden (noordpool). Je kompas zal de magnetische veldlijnen van de aarde volgen, dus wijs naar het magnetische noorden. Het verschil tussen het magnetische noorden en het geografische noorden wordt de magnetische declinatie genoemd. Op mijn locatie is de declinatie slechts 1 graad en 22 minuten dus niet de moeite waard om dit te compenseren. Op andere locaties kan deze declinatie oplopen tot 30 graden.

Vind de magnetische declinatie op uw locatie

Als je dit wilt compenseren (is optioneel) kun je de declinatie (graden en minuten) toevoegen in de EEPROM van de microcontroller. Op locatie 0x20 kun je de graden in getekende hexadecimale vorm toevoegen. Het is ondertekend omdat het ook een negatieve declinatie kan zijn. Op locatie 0x21 kunt u de minuten ook in hexadecimale vorm toevoegen.

Stap 7: compileer de code

Image
Image

Compileer deze broncode en programmeer uw microcontroller. Deze code compileert correct met MPLABX IDE v5.20 en XC8-compiler v2.05 in C99-modus (dus inclusief de C99-directory's). Ook het hex-bestand is beschikbaar, zodat u de compilatieprocedure kunt overslaan. Zorg ervoor dat u het selectievakje "EEPROM-gegevens ingeschakeld" uitschakelt om te voorkomen dat kalibratiegegevens (zie stap 5) worden overschreven. Zet je programmer op 3,3 volt!

Door pin 27 met massa te verbinden krijg je de temperatuur in Fahrenheit.

Met dank aan Achim Döbler voor zijn µGUI grafische bibliotheek

Sensoren wedstrijd
Sensoren wedstrijd

Tweede plaats in de sensorwedstrijd

Aanbevolen: