Obsah:
- Krok 1: Návrh DPS pomocí Eagle
- Krok 2: Pájení DPS
- Krok 3: Software… Funkčnost… výsledky
- Krok 4: 3D tištěné pouzdro … Druh
- Krok 5: Co je třeba zlepšit…
Video: Monitorování GPS s projektem OLED Display: 5 kroků (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:20
Zdravím všechny, v tomto rychlém článku se s vámi podělím o svůj projekt: GPS modul ATGM332D s mikrokontrolérem SAMD21J18 a displejem SSD1306 OLED 128*64, vytvořil jsem pro něj speciální desku plošných spojů na Eagle Autodesk a programuji ji pomocí Atmel studio 7.0 a ASF4, takže v tomto článku se s vámi podělím o tuto cestu a soubory, které jsem použil, pokud vás zajímá, jak to udělat sami.
Pokud nyní programujete svou MCU/vývojovou desku pomocí Arduina, tento projekt by pro vás měl být relativně snadný, ale zde použiji ASF4 (Advanced software framwork 4) od Atmel/Microchip, který je založen na jazyce C a dá vám představu jak číst zprávu GPS NMEA pomocí asynchronního ovladače USART (zpětné volání) a poskytnout vám jednoduchou knihovnu, kterou můžete použít s jakýmkoli mikrořadičem a jinou platformou, jednoduše přidáním příslušného ovladače, který používáte pro příjem zprávy z GPS (zpráva NMEA).
Tento článek rozdělím na:
- Design DPS.
- Kusovník, který potřebujete k sestavení desky plošných spojů
- Rychlý pohled na software a samotný kód a test hardwaru a softwaru.
- v neposlední řadě nějaký bod zlepšení tohoto projektu.
Veškerý materiál související s tímto projektem najdete na Githubu (zde)
Krok 1: Návrh DPS pomocí Eagle
Tento projekt byl založen hlavně na GPS modulu ATGM332D, jednoduchém použití GPS, protože ke své práci potřebuje pouze několik pasivních komponent, a mohli bychom přidat záložní baterii, která ušetří čas/datum, pokud vypneme hlavní zdroj napájení z modulu.
a pro ovládání všech signálů v obvodu jsem šel s mikrokontrolérem ATSAMD21J18B, balíčkem TQFP64, protože má 128 kBB paměti programové paměti a 32 kByte datové paměti (a mám jich spoustu na pracovním stole).
obvod bude napájen ze zdroje USB 5V, také USB může fungovat jako virtuální COM port (CDC USB) a můžete pro něj přidat kód, pokud chcete se zařízením komunikovat přes USB.
pro displej jsem vybral 0,96 'OLED displej SSD1306 se sběrnicí SPI, je malý, ale je vhodný pro velikost desky plošných spojů, kterou jsem chtěl, rozměr desky 100x31 mm.
Programování mikrokontroléru bude prostřednictvím programátoru SWD (používám Atmel ICE) a připojí jej přes 1,27 mm 10p pinový konektor.
Také jsem použil Fusion360 k získání 3D pohledu na desku a můžete také vidět nějaký vykreslený obrázek.
Krok 2: Pájení DPS
Máte možnost objednat si šablonu s deskou plošných spojů, je snadnější použít pájecí pastu na desku pomocí šablony, já jsem použil horkou desku k pájení součástí dohromady, použití horkého vzduchu je také v pořádku, ale při pájení LED dejte pozor jsou tak citliví na teplo.
pájení spodní strany je o něco jednodušší, protože má pouze konektor SWD pin a záložní baterii, kterou můžete pájet pomocí páječky.
než připojíte obvod k jakémukoli zdroji napájení USB, zkontrolujte, zda nedošlo ke zkratu.
připojte svou anténu GPS a ujistěte se, že jste správně připájili její konektor, anténu jsem upevnil na spodní stranu desky.
Krok 3: Software… Funkčnost… výsledky
Software bude rozdělen do 4 částí:
- USART pro komunikaci s GPS modulem ATGM332.
- SPI pro komunikaci s OLED.
- USB CDC.
- GPIO pro ovládání LED diod
nejprve připojte konektor USB k napájení obvodu a poté připojte plochý kabel s konektorem SWD.
Stáhněte si kód z github (odkaz zde).
Chcete-li získat geografickou polohu, máte 3 různé možnosti zpráv NMEA:
- GPGGA
- GPRMC
- GPGLL
Použil jsem větu GPRMC k získání polohy, času a data (čas je 0,0 GMT), takže v kódu najdete:
GPRMC. Enable = 1;/*0, pokud tato zpráva není potřeba*/
GPGGA. Enable = 0;/*0, pokud tato zpráva není potřeba*/
GPGLL. Enable = 0;/*0, pokud tato zpráva není potřeba*/
můžete je všechny povolit společně a číst je současně, abyste získali potřebná data.
jakmile existuje platná věta GPRMC, GPRMC. Ready se stane 1 a můžete získat všechna data dostupná v této větě, zaškrtnutím tohoto odkazu zobrazíte data dostupná v této větě.
jednoduše pokud je oprava „A“, znamená to, že je k dispozici poloha, pokud je oprava „V“, znamená to, že místo není k dispozici.
všimněte si, že ATSAMD21 má interní RTC, ale zde jej nepoužívám a místo toho používám čas a datum přímo z GPS, takže pokud nechcete používat záložní baterii CR1220, jakmile odpojíte napájecí zdroj USB, budete ztratíte čas/datum a při příštím zapnutí obvodu bude oblast času/data na displeji prázdná, dokud GPS nebude mít platnou hodnotu času/data.
displej vám ukáže aktuální stav GPS a zobrazí geografickou polohu, jakmile bude k dispozici, ale na desce jsou 3 LED diody:
- Zelená LED dioda připojena k PA06 a bude blikat, pokud existuje platná hodnota geografické polohy.
- Oranžová LED dioda připojena k PA07 a bude blikat jednou za sekundu, pokud neexistuje platné geografické umístění.
- Červená LED dioda připojená k PPS modulu GPS a bude blikat, pouze pokud je k poloze platný signál.
Výsledek
Obvod se mi velmi dobře osvědčil, získání geolokace z GPS trvalo 20-30 sekund venku s jasným výhledem na oblohu a mezi budovami bez problémů i s anténou na spodní straně desky.
Krok 4: 3D tištěné pouzdro … Druh
Připravil jsem pro tento okruh jednoduché pouzdro (přesnější držák), ale kvůli epidemii COVID-19 a zablokování, ve kterém se právě nacházím, jsem nemohl dosáhnout své 3D tiskárny a vytisknout ji, takže tuto sekci aktualizuji pomocí stl soubor a fotografie pro držitele, jakmile bude k dispozici.
Krok 5: Co je třeba zlepšit…
- Přesunutí konektoru SWD na horní stranu, protože je snazší jej připojit k programátoru.
- Napájení obvodu z lithiové baterie jsem provedl pájením propojky a fungovalo to dobře, bez ohledu na to, že lineární (LDO) regulátor má pokles napětí V, pokud (Vbat - Vout) menší než limit Vdrop obvod nemusí fungovat správně.
- tlačítko uživatele bude o něco větší, takže bude snazší ho stisknout.
- přidání USB CDC kódu, abyste mohli komunikovat/navrhnout speciální program pro MAC/PC/linux.
- Pro anténu GPS jsem pro tento projekt použil aktivní anténu, pomocí pasivní antény je to možné, přidáním nízkošumového operačního zesilovače jako AT2659 (podívejte se také na schéma na datovém listu ATGM332 P.14).
- u OLED 0,96 'SSD1306, oficiální knihovny z mikročipu původně pro zobrazení 128*32, chcete -li upravit kód tak, aby fungoval se 128*64, přejděte na ssd1306.c a upravte kód (zkontrolujte obrázek).
Doporučuje:
Jak byste měli začít s novým projektem: 7 kroků
Jak byste měli začít s novým projektem: Dobrý den, čtenáři, toto je můj návod, jak byste měli začít s novým projektem mikrokontroléru
Průvodce projektem Photojojo DIY: Vytvořte okno z vitráže: 5 kroků
Průvodce projektem Photojojo DIY: Vytvořte vitrážové okno: Kromě Instructables je jedním z mých oblíbených webů Photojojo.com (pokud jste o těchto super skvělých lidech ještě neslyšeli, měli byste je navštívit.) Asi před týdnem zveřejnili, http://content.photojojo.com/diy/diy-make-stained-glass-instagram-window
Monitorování terária Lizard pomocí Adosia IoT WiFi ovladače + detekce pohybu: 17 kroků (s obrázky)
Monitorování terária Lizard pomocí Adosia IoT WiFi ovladače + detekce pohybu: V tomto tutoriálu vám ukážeme, jak postavit jednoduché terarium ještěrky pro hrst skink vajec, která jsme omylem objevili a narušili při zahradničení venku. Chceme, aby se vajíčka vylíhla bezpečně, takže vše, co uděláme, je vytvořit bezpečný prostor pomocí plastového
„Ready Maker“- kontrola nad projektem „Lego Power Functions“: 9 kroků
„Ready Maker“- Ovládání projektu „Lego Power Functions“: Naučte se ovládat Lego " Výkonové funkce " komponenty s deskou Arduino a sestavte svůj projekt v " Ready Maker " editor (není vyžadován žádný kód) pro dálkové ovládání vašeho modelu
Mini CNC plotter Arduino (s projektem Proteus a PCB): 3 kroky (s obrázky)
Mini CNC plotter Arduino (s projektem Proteus a PCB): Tento mini CNC nebo XY plotter arduino může psát a vytvářet návrhy v rozsahu 40 x 40 mm. Ano, tento rozsah je krátký, ale je to dobrý začátek pro skok do světa arduino. [V tomto projektu jsem dal všechno, dokonce i PCB, Proteus File, příklad návrhu a