Inhoudsopgave:
- Stap 1: Hoogtemeter
- Stap 2: Onderdelen
- Stap 3: Schakelschema en PCB
- Stap 4: Hoe LED's in enkele seconden perfect in een cirkel worden uitgelijnd met Eagle PCB-ontwerpsoftware
- Stap 5: Kompaskalibratieproces
- Stap 6: Compenseer de magnetische declinatie van uw locatie
- Stap 7: compileer de code
Video: LED-kompas en hoogtemeter - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
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
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
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
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
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
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
Tweede plaats in de sensorwedstrijd
Aanbevolen:
Hoe maak je een LED-kubus - LED-kubus 4x4x4: 3 stappen
Hoe maak je een LED-kubus | LED Cube 4x4x4: Een LED Cube kan worden gezien als een LED-scherm, waarin eenvoudige 5 mm LED's de rol van digitale pixels spelen. Met een LED-kubus kunnen we afbeeldingen en patronen creëren door gebruik te maken van het concept van een optisch fenomeen dat bekend staat als persistentie van het gezichtsvermogen (POV). Dus
DIY SCHIJNWERPER W/AC LED's (+EFFICIENCY VS DC LED's): 21 stappen (met afbeeldingen)
DIY FLOODLIGHT W/AC LED's (+EFFICIENCY VS DC LED's): In deze instructable/video maak ik een schijnwerper met extreem goedkope driverless AC LED-chips. Zijn ze goed? Of zijn het complete rommel? Om dat te beantwoorden, zal ik een volledige vergelijking maken met al mijn gemaakte DIY-lampen. Zoals gewoonlijk, voor goedkope
Eenvoudige LED-striplampen (upgrade van uw LED-strips): 4 stappen (met afbeeldingen)
Eenvoudige LED-striplampen (upgrade uw LED-strips): ik gebruik al een tijdje LED-strips en heb altijd genoten van de eenvoud ervan. Je knipt gewoon een stukje van een rol af, soldeert er wat draden aan, sluit een voeding aan en je hebt een lichtbron. Door de jaren heen heb ik een c
Muziek Reactieve Multicolor LED Verlichting - Arduino-geluidsdetectiesensor - RGB LED-strip: 4 stappen
Muziek Reactieve Multicolor LED Verlichting | Arduino-geluidsdetectiesensor | RGB LED Strip: Muziek-reactief meerkleurig LED-lichtproject. In dit project werden een eenvoudige 5050 RGB LED-strip (niet de adresseerbare LED WS2812), Arduino-geluidsdetectiesensor en 12V-adapter gebruikt
Maak draagbare digitale hoogtemeter. Gemaakt in TechShop Detroit.: 3 stappen (met afbeeldingen)
Maak draagbare digitale hoogtemeter. Gemaakt in TechShop Detroit.: Achtergrond: Tegenwoordig zijn digitale schuifmaten erg goedkoop en maken ze deel uit van de dagelijkse hulpmiddelen van makers bij het ontwerpen van dingen. Het is ook erg draagbaar. Af en toe zouden we een digitale hoogtemeter moeten gebruiken. Ik heb onlangs 2 halfronde par