INHOUDSOPGAWE:
- Stap 1: PCB -ontwerp met behulp van Eagle
- Stap 2: Soldeer die PCB
- Stap 3: sagteware … funksionaliteit … resultate
- Stap 4: 3D -gedrukte tas … Soort
- Stap 5: dinge om te verbeter …
Video: GPS -monitering met OLED -skermprojek: 5 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Hallo almal, in hierdie vinnige artikel deel ek u projek met u: ATGM332D GPS -module met SAMD21J18 -mikrokontroller en SSD1306 OLED 128*64 -skerm, ek het 'n spesiale PCB daarvoor op Eagle Autodesk gebou en dit met Atmel studio 7.0 en ASF4 geprogrammeer in hierdie artikel sal ek hierdie reis en die lêers wat ek gebruik het, met u deel, as u dit self wil doen.
As u u MCU/ontwikkelingsbord met Arduino programmeer, behoort hierdie projek vir u relatief maklik te wees, maar hier sal ek ASF4 (Advanced software frame 4) van Atmel/Microchip gebruik wat op C -taal gebaseer is en u 'n idee sou gee hoe u die GPS NMEA-boodskap kan lees met behulp van USART Asynchrone bestuurder (terugbel) en u 'n eenvoudige biblioteek kan voorsien wat u met enige mikrobeheerder en ander platform kan gebruik deur eenvoudig die toepaslike bestuurder by te voeg wat u gebruik om die boodskap van die GPS (NMEA -boodskap).
Ek sal hierdie artikel verdeel in:
- PCB ontwerp.
- BOM wat jy nodig het om die PCB te monteer
- Kyk vinnig na die sagteware en die kode self en 'n toets vir die hardeware en sagteware.
- laastens, maar nie die minste nie, 'n punt van verbetering vir hierdie projek.
U vind al die materiaal wat verband hou met hierdie projek op Github (hier)
Stap 1: PCB -ontwerp met behulp van Eagle
Hierdie projek is hoofsaaklik gebaseer op die ATGM332D GPS -module, eenvoudige GPS om te gebruik, aangesien dit slegs 'n paar passiewe komponente benodig om te werk, en ons kan 'n rugsteunbattery byvoeg om die tyd/datum te bespaar as ons die hoofbron van die module afskakel.
en om al die seine in die stroombaan te beheer, het ek gegaan met die ATSAMD21J18B -mikrobeheerder, die TQFP64 -pakket, aangesien dit 128KByte programgeheue -berging en 32KByte data -geheue het (en ek het baie daarvan om my werkbank).
die stroombaan word aangedryf deur 'n USB 5V -bron, die USB kan ook dien as 'n virtuele COM -poort (CDC USB) en u kan 'n kode daarvoor byvoeg as u met die toestel via USB wil kommunikeer.
Vir die skerm het ek SSD1306 0,96 'OLED -skerm met SPI -bus gekies, dit is klein, maar dit is geskik vir die PCB -grootte wat ek wil hê, die bordafmeting 100x31 mm.
Die programmering van die mikrobeheerder geskied deur middel van SWD -programmeerder (ek gebruik Atmel ICE) en verbind dit deur middel van 'n 1.27 mm 10p -penkop.
Ek het ook Fusion360 gebruik om 'n 3D -aansig vir die bord te kry, en u kan ook 'n weergegee beeld daarvoor sien.
Stap 2: Soldeer die PCB
U het die keuse om 'n stensil met u PCB te bestel; dit is makliker om die soldeerpasta op die bord aan te bring met behulp van die stensil; ek het 'n kookplaat gebruik om die komponente saam te soldeer. hulle is so sensitief vir hitte.
soldering aan die onderkant is 'n bietjie makliker, aangesien dit slegs die SWD -penkop en die rugsteunbattery het, wat u met soldeerbout kan soldeer.
Kontroleer of daar 'n kortsluiting is voordat u die stroombaan met 'n USB -kragbron aansluit.
Koppel u GPS -antenna aan en maak seker dat u die aansluiting behoorlik soldeer; ek het die antenne aan die onderkant van die bord vasgemaak.
Stap 3: sagteware … funksionaliteit … resultate
Die sagteware sal in 4 dele verdeel word:
- USART om met die ATGM332 GPS -module te kommunikeer.
- SPI om met OLED te kommunikeer.
- USB CDC.
- GPIO om LED's te beheer
Sluit eers die USB -aansluiting aan om die kring aan te skakel en koppel dan die lintkabel met SWD -aansluiting.
Laai die kode af van github (skakel hier).
Om die geografiese ligging te kry, het u drie verskillende NMEA-boodskappe:
- GPGGA
- GPRMC
- GPGLL
Ek het GPRMC -sin gebruik om die ligging, tyd en datum (tyd is 0,0 GMT) te kry, so in die kode vind u:
GPRMC. Enable = 1;/*0 as hierdie boodskap nie nodig is nie/
GPGGA. Enable = 0;/*0 as hierdie boodskap nie nodig is nie/
GPGLL. Enable = 0;/*0 as hierdie boodskap nie nodig is nie/
u kan hulle almal saam aktiveer en terselfdertyd lees wat u benodig.
sodra daar 'n geldige GPRMC -sin is, word theGPRMC. Ready 1 en kan u al die beskikbare data in hierdie sin verkry, kyk na hierdie skakel om die beskikbare data in hierdie sin te sien.
eenvoudig as Fix 'A' is, beteken dit dat die ligging beskikbaar is, as Fix 'V' is, beteken dit dat die ligging nie beskikbaar is nie.
let op dat ATSAMD21 'n interne RTC het, maar hier gebruik ek dit nie, maar ek gebruik tyd en datum direk vanaf die GPS, dus as u nie die CR1220 -rugsteunbattery wil gebruik nie, sal u die USB -kragbron ontkoppel as u die USB -kragbron ontkoppel verloor die tyd/datum en vir die volgende keer dat u die kring aanskakel, sal die tyd/datum -area op die skerm leeg wees totdat die GPS 'n geldige tyd-/datumwaarde het.
die skerm sal u die huidige status van die GPS wys en die geografiese ligging wys sodra dit beskikbaar is, maar daar is 3 LED's op die bord:
- Groen LED gekoppel aan PA06, en sal knip as daar 'n geldige geografiese liggingwaarde is.
- Oranje LED is gekoppel aan PA07 en sal een keer per sekonde flikker as daar geen geldige geografiese ligging is nie.
- Rooi LED hierdie een is gekoppel aan die PPS -pen van die GPS -module en sal slegs flikker as daar 'n geldige sein is wat verband hou met die ligging.
Resultate
Die kring het baie goed met my gewerk. Die geografiese ligging van die GPS het 20-30 sekondes buite geneem met 'n duidelike blik op die lug en tussen die geboue sonder enige probleme, selfs met die antenna aan die onderkant van die bord.
Stap 4: 3D -gedrukte tas … Soort
Ek het 'n eenvoudige omhulsel (meer presiese houer) vir hierdie kring voorberei, maar as gevolg van COVID-19-epidemie en die ineenstorting waarin ek tans is, kon ek nie my 3D-drukker bereik om dit te druk nie, so ek sal hierdie afdeling opdateer met stl lêer en foto's vir die houer sodra dit beskikbaar is.
Stap 5: dinge om te verbeter …
- Beweeg die SWD -aansluiting na die bokant, aangesien dit makliker is om dit met u programmeerder te koppel.
- Ek het die stroombaan met 'n litiumbattery aangedryf deur 'n springer te soldeer, en dit het goed gewerk, met in gedagte dat die lineêre (LDO) reguleerder 'n V -drukspanning het as die (Vbat - Vout) kleiner as die Vdrop -limiet die kring moontlik nie werk nie behoorlik.
- om 'n gebruikersknoppie 'n bietjie groter te maak, sodat dit makliker sal wees om te druk.
- USB CDC -kode byvoeg sodat u 'n spesiale program vir MAC/PC/Linux kan kommunikeer/ontwerp.
- Vir die GPS-antenna het ek 'n aktiewe antenna vir hierdie projek gebruik; 'n passiewe antenna is moontlik deur lae-op-Amp soos AT2659 by te voeg (kyk ook die skematiese op ATGM332 datablad P.14).
- Vir OLED 0.96 'SSD1306, die amptelike biblioteek van mikroskyfie oorspronklik vir 128*32 -skerm, om die kode te verander om met 128*64 te werk, moet u na ssd1306.c gaan en die kode verander (kyk na die prentjie).
Aanbeveel:
IoT -temperatuur- en humiditeitsmeter met OLED -skerm: 5 stappe (met foto's)
IoT -temperatuur- en humiditeitsmeter met OLED -skerm: Kontroleer temperatuur en humiditeit op 'n OLED -skerm wanneer u wil en versamel terselfdertyd die data in 'n IoT -platform. Verlede week het ek 'n projek genaamd Simplest IoT temperatuur en humiditeitsmeter gepubliseer. Dit is 'n goeie projek, want u kan
Grafika op 'n SSD1306 I2C OLED 128x64 -skerm met CircuitPython met 'n Itsybitsy M4 Express: 13 stappe (met foto's)
Grafika op 'n SSD1306 I2C OLED 128x64 -skerm met CircuitPython met behulp van 'n Itsybitsy M4 Express: Die SSD1306 OLED -skerm is 'n klein (0,96 "), goedkoop, algemeen beskikbaar, I2C, monochroom grafiese skerm met 128x64 pixels, wat maklik gekoppel kan word (slegs 4 drade) na mikroprosessor -ontwikkelingsborde soos 'n Raspberry Pi, Arduino of
Hoe om 'n rekenaar met maklike stappe en foto's uitmekaar te haal: 13 stappe (met foto's)
Hoe om 'n rekenaar uitmekaar te haal met eenvoudige stappe en foto's: dit is 'n instruksie oor hoe om 'n rekenaar uitmekaar te haal. Die meeste basiese komponente is modulêr en kan maklik verwyder word. Dit is egter belangrik dat u daaroor georganiseerd is. Dit sal u verhinder om onderdele te verloor, en ook om die montering weer
GPS Logger Arduino OLed SD: 6 stappe (met foto's)
GPS Logger Arduino OLed SD: GPS logger om u huidige en gemiddelde spoed te vertoon en om u roetes op te spoor. Gemiddelde spoed is vir gebiede met 'n traject spoedbeheer. Die Arduino het 'n paar goeie funksies wat u kan kopieer:- Die koördinate word in 'n daaglikse lêer gestoor, lêernaam is die basis
Arduino GPS Oled: 4 stappe (met foto's)
Arduino GPS Oled: Die NEO-6-module-reeks is 'n gesin van selfstandige GPS-ontvangers met die hoëprestasie-u-blox 6-posisioneringsenjin. Hierdie buigsame en koste -effektiewe ontvangers bied talle verbindingsopsies in 'n miniatuur 16 x 12,2 x 2,4 mm pakket. Die