Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Objekty s LED diodami mě vždy fascinují. Proto tento projekt spojil populární snímač digitálního kompasu HMC5883L se 48 LED diodami. Umístěním LED do kruhu se LED dioda, která svítí, pohybuje ve směru, kterým směřujete. Každých 7,5 stupňů bude pohánět nová LED, která poskytuje podrobné výsledky.
Deska GY-86 je také vybavena snímačem barometrického tlaku MS5611. Pomocí tohoto senzoru je možné vypočítat nadmořskou výšku. Díky vysokému rozlišení je ideální pro výškoměry.
Snímač MPU6050 na desce GY-86 má jak 3osý akcelerometr, tak 3osý gyroskop. Gyroskop dokáže měřit rychlost úhlové polohy v čase. Akcelerometr může měřit gravitační zrychlení a pomocí goniometrické matematiky je možné vypočítat úhel, pod kterým je senzor umístěn. Kombinací dat akcelerometru a gyroskopu je možné získat informace o orientaci senzoru. To lze použít pro kompenzaci náklonu kompasu HMC5883L (k provedení).
Krátká instruktážní videa v tomto návodu podrobně vysvětlí, jak to funguje. Kalibrační postupy jsou automatizovány, takže úspěch je zaručen. Teplota je k dispozici ve stupních Celsia (výchozí) nebo Fahrenheita.
Bavte se !!
Krok 1: Výškoměr
Výškoměr využívá snímač barometrického tlaku MS5611. Nadmořskou výšku lze určit na základě měření atmosférického tlaku. Čím větší nadmořská výška, tím nižší tlak. Při spuštění používá výškoměr výchozí tlak mořské hladiny 1013,25 mbar. Stisknutím tlačítka na kolíku 21 bude tlak ve vašem místě použit jako referenční. Tímto způsobem je možné přibližně změřit, jakou výšku něco má (např. Při jízdě do kopce s autem).
V tomto projektu je použit takzvaný „Hypsometrický vzorec“. Tento vzorec využívá teplotu ke kompenzaci měření.
float alt=((powf (zdroj / ((float) P / 100,0), 0,19022256) - 1,0) * ((float) TEMP / 100 + 273,15)) / 0,0065;
Více o hypsometrickém vzorci najdete zde:
Hypsometrický vzorec
Tovární kalibrační data a teplota čidla se načítají ze snímače MS5611 a aplikují se na kód, aby byla získána nejpřesnější měření. Během testu jsem zjistil, že senzor MS5611 je citlivý na proudění vzduchu a rozdíly v intenzitě světla. Musí být možné dosáhnout lepších výsledků než v tomto instruktážním videu.
Krok 2: Díly
1 x mikrokontrolér Microchip 18f26k22 28-PIN PDIP
3 x MCP23017 16bitový I/O expandér 28kolíkový SPDIP
48 x LED 3 mm
1 x modul GY-86 se senzory MS5611, HMC5883L a MPU6050
1 x SH1106 OLED 128x64 I2C
1 x keramický kondenzátor 100nF
1 x odpor 100 ohmů
Krok 3: Schéma zapojení a PCB
Vše se vejde na jednostrannou desku plošných spojů. Zde najdete soubory Eagle a Gerber, abyste si je mohli vyrobit sami nebo se zeptat výrobce desek plošných spojů.
V autě používám LED kompas a výškoměr a jako napájecí zdroj používám rozhraní OBD2. Mikrokontrolér se perfektně hodí do konektoru.
Krok 4: Jak perfektně sladit LED diody v kruhu během několika sekund pomocí softwaru Eagle PCB Design Software
Tuto opravdu pěknou funkci musíte vidět v softwaru Eagle PCB Design Software, který vám ušetří hodiny práce. S touto funkcí Eagle můžete dokonale zarovnat LED v kruhu během několika sekund.
Stačí kliknout na kartu „Soubor“a poté na „Spustit ULP“. Odtud klikněte na "cmd-draw.ulp". Vyberte „Přesunout“, „Stupeň stupně“a „Kruh“. Do pole „název“vyplňte název první LED diody. Nastavte souřadnice středu kruhu na mřížce v polích „středový středník X“a „středový středník Y“. V tomto projektu je 48 LED diod, takže 360 děleno 48 dělá 7,5 pro pole „Úhlový krok“. Poloměr této kružnice je 1,4 palce. Stiskněte Enter a máte perfektní kruh LED diod.
Krok 5: Proces kalibrace kompasu
HMC5883L obsahuje 12bitový ADC, který umožňuje přesnost směru kompasu 1 až 2 stupně Celsia. Než ale poskytne použitelná data, musí být zkalibrována. Aby tento projekt fungoval hladce, existuje tato kalibrační metoda, která poskytuje posunutí x a y. Není to nejsofistikovanější metoda, ale pro tento projekt je dostačující. Tento postup vás bude stát jen několik minut a přinese pěkné výsledky.
Načtením a spuštěním tohoto softwaru budete provedeni tímto procesem kalibrace. OLED displej vám řekne, kdy proces začne a kdy skončí. Tento kalibrační proces vás vyzve k otočení senzoru o 360 stupňů, zatímco jej budete držet zcela rovný (vodorovně k zemi). Namontujte jej na stativ nebo něco podobného. Dělat to držením v ruce nefunguje. Na konci budou offsety prezentovány na OLED. Pokud tento postup spustíte několikrát, musíte vidět téměř stejné výsledky.
Shromážděná data jsou volitelně dostupná také přes RS232 přes pin 27 (9600 baudů). Stačí použít terminálový program, jako je Putty, a shromáždit všechna data v souboru protokolu. Tato data lze snadno importovat do aplikace Excel. Odtud můžete snáze vidět, jak vypadá offset vašeho HMC5883L.
Offsety jsou vloženy do EEPROM mikrokontroléru. Ty se načtou při spuštění softwaru kompasu a výškoměru, který najdete v kroku 7.
Krok 6: Kompenzujte magnetické deklinace vaší polohy
Existuje magnetický sever a geografický sever (severní pól). Váš kompas bude sledovat linie magnetického pole Země, takže směřujte na magnetický sever. Rozdíl mezi magnetickým severem a geografickým severem se nazývá magnetická deklinace. V mém místě je deklinace pouze 1 stupeň a 22 minut, takže to nemá cenu kompenzovat. Na jiných místech může být tato deklinace až 30 stupňů.
Najděte magnetickou deklinaci ve vašem místě
Pokud to chcete kompenzovat (je volitelné), můžete do EEPROM mikrokontroléru přidat deklinaci (stupně a minuty). Na místě 0x20 můžete přidat stupně v šestnáctkové podobě se znaménkem. Je podepsán, protože to může být také negativní deklinace. Na místě 0x21 můžete přidat minuty také v hexadecimální formě.
Krok 7: Sestavte kód
Zkompilujte tento zdrojový kód a naprogramujte svůj mikrokontrolér. Tento kód je správně kompilován pomocí kompilátoru MPLABX IDE v5.20 a XC8 v2.05 v režimu C99 (zahrňte tedy adresáře C99). K dispozici je také hexadecimální soubor, takže můžete kompilaci přeskočit. Ujistěte se, že zrušíte zaškrtnutí políčka „Data EEPROM povolena“, abyste zabránili přepsání kalibračních dat (viz krok 5). Nastavte programátor na 3,3 voltů!
Připojením kolíku 27 k zemi získáte teplotu ve Fahrenheite.
Díky Achimu Döblerovi za jeho grafickou knihovnu µGUI
Druhé místo v soutěži Senzory