Indholdsfortegnelse:
- Trin 1: PCB -design ved hjælp af Eagle
- Trin 2: Lodning af printkortet
- Trin 3: Software … Funktionalitet … resultater
- Trin 4: 3D -trykt sag … Sort Of
- Trin 5: Ting at forbedre …
Video: GPS -overvågning med OLED -skærmprojekt: 5 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
Hej alle sammen, i denne hurtige artikel vil jeg dele mit projekt med dig: ATGM332D GPS -modul med SAMD21J18 mikrokontroller og SSD1306 OLED 128*64 display, jeg byggede en speciel print til det på Eagle Autodesk og programmerede det ved hjælp af Atmel studio 7.0 og ASF4 så i denne artikel vil jeg dele med dig denne rejse og de filer, jeg brugte, hvis du er interessant at gøre det selv.
Hvis du nu programmerer dit MCU/udviklingsbord ved hjælp af Arduino, burde dette projekt være relativt let for dig, men her vil jeg bruge ASF4 (Advanced software framwork 4) fra Atmel/Microchip, der er baseret på C -sprog og ville give dig en idé til hvordan du læser GPS NMEA-beskeden ved hjælp af USART asynkron driver (tilbagekald) og giver dig et simpelt bibliotek, som du kan bruge den med enhver mikrokontroller og en anden platform ved blot at tilføje den relevante driver, du bruger til at modtage beskeden fra GPS (NMEA -besked).
Jeg vil opdele denne artikel til:
- PCB Design.
- BOM du skal samle printkortet
- Hurtigt kig på softwaren og selve koden og en test for hardware og software.
- sidst men ikke mindst et forbedringspunkt for dette projekt.
Du finder alt materiale relateret til dette projekt påGithub (her)
Trin 1: PCB -design ved hjælp af Eagle
Dette projekt er hovedsageligt baseret på ATGM332D GPS -modul, enkel GPS at bruge, da det kun har brug for et par passive komponenter for at fungere, og vi kunne tilføje et backup -batteri for at spare tid/dato, hvis vi lukker hovedstrømkilden fra modulet.
og for at styre alle signalerne i kredsløbet gik jeg med ATSAMD21J18B mikrokontroller, TQFP64 -pakke, da den har 128KByte programhukommelseslagring og 32KByte datahukommelse (og jeg har masser af dem liggende rundt om mit arbejdsbord).
kredsløbet skal drives af USB 5V -kilde, også USB kan fungere som virtuel COM -port (CDC USB), og du kan tilføje en kode til det, hvis du vil kommunikere med enheden via USB.
til displayet valgte jeg SSD1306 0,96 'OLED -skærm med SPI -bus, den er lille, men den passer til den printkortstørrelse, jeg ønskede, tavledimensionen 100x31 mm.
programmering af mikrokontrolleren sker via SWD -programmerer (jeg bruger Atmel ICE) og forbinder den via 1,27 mm 10p pin header.
også brugte jeg Fusion360 til at få en 3D -visning til brættet, og du kan også se et gengivet billede til det.
Trin 2: Lodning af printkortet
Du har valget om at bestille en stencil med dit printkort, det er lettere at anvende loddemassen på brættet ved hjælp af stencilen, jeg brugte varmeplade til at lodde komponenterne sammen, ved hjælp af varm luft er også OK, men vær forsigtig, mens du lodder LED'en siden de er så følsomme over for varme.
lodning i undersiden er lidt lettere, da den kun har SWD -stifthovedet og backupbatteriet, som du kan lodde dem ved hjælp af loddejern.
Inden du slutter kredsløbet til en USB -strømkilde, skal du kontrollere, om der er kortslutning.
tilslut din GPS -antenne og sørg for at lodde stikket korrekt, jeg fikserede antennen på undersiden af brættet.
Trin 3: Software … Funktionalitet … resultater
Softwaren vil blive opdelt i 4 dele:
- USART til at kommunikere med ATGM332 GPS -modul.
- SPI til at kommunikere med OLED.
- USB CDC.
- GPIO til styring af lysdioder
Tilslut først USB -stikket for at tænde for kredsløbet, og tilslut derefter båndkablet med SWD -stik.
Download koden fra github (link her).
for at få Geo-Location har du 3 forskellige NMEA-beskeder:
- GPGGA
- GPRMC
- GPGLL
Jeg brugte GPRMC -sætning til at opnå placering, tid og dato (klokken er 0,0 GMT), så i koden finder du:
GPRMC. Enable = 1;/*0 hvis der ikke er behov for denne meddelelse*/
GPGGA. Enable = 0;/*0 hvis denne meddelelse ikke er nødvendig*/
GPGLL. Enable = 0;/*0 hvis denne meddelelse ikke er nødvendig*/
du kan aktivere dem alle sammen og læse dem på samme tid få de data, du har brug for.
Når der først er en gyldig GPRMC -sætning, bliver theGPRMC. Ready til 1, og du kan få alle de tilgængelige data i denne sætning, tjek dette link for at se de tilgængelige data i denne sætning.
ganske enkelt hvis Fix er 'A', betyder det, at placeringen er tilgængelig, hvis Fix er 'V', betyder det, at placeringen ikke er tilgængelig.
bemærk, at ATSAMD21 har intern RTC, men her bruger jeg det ikke, og i stedet bruger jeg tid og dato direkte fra GPS'en, så hvis du ikke vil bruge CR1220 Backup -batteriet, vil du, når du frakobler USB -strømkilden, mister tid/dato, og for næste gang du tænder for kredsløbet, vil tid/dato -området på displayet være tomt, indtil GPS'en har en gyldig værdi/dato.
displayet viser dig den aktuelle status for GPS'en og viser geografisk placering, når den er tilgængelig, men der er 3 lysdioder på kortet:
- Grøn LED tilsluttet PA06, og blinker, hvis der er en gyldig geografisk værdi.
- Orange LED tilsluttet PA07 og blinker en gang i sekundet, hvis der ikke er en gyldig geografisk placering.
- Rød LED denne er forbundet til PPS -pin på GPS -modulet og blinker kun, når der er et gyldigt signal relateret til placeringen.
Resultater
Kredsløbet fungerede meget godt med mig, få Geo-placeringen fra GPS'en tog 20-30 sekunder udendørs med klart udsyn til himlen og mellem bygninger uden problemer, selv med antenne på undersiden af brættet.
Trin 4: 3D -trykt sag … Sort Of
Jeg forberedte en simpel sag (mere præcis holder) til dette kredsløb, men på grund af COVID-19-epidemien og den lockdown, jeg er i lige nu, kunne jeg ikke nå min 3d-printer for at udskrive den, så jeg vil opdatere dette afsnit med stl fil og et foto til indehaveren, når den er tilgængelig.
Trin 5: Ting at forbedre …
- Flytter SWD -stikket til oversiden, da det er lettere at forbinde det med din programmør.
- Jeg drev kredsløbet fra litiumbatteri, jeg gjorde det ved at lodde en jumper, og det fungerede fint, bare i tankerne om, at den lineære (LDO) regulator har V -faldspænding, hvis (Vbat - Vout) mindre end Vdrop -grænsen, kredsløbet muligvis ikke fungerer korrekt.
- gør en brugerknap lidt større, så det bliver lettere at trykke på.
- tilføjelse af USB CDC -kode, så du kan kommunikere/designe et specielt program til MAC/PC/linux.
- Til GPS-antennen brugte jeg Aktiv antenne til dette projekt, det er muligt at bruge en passiv antenne ved at tilføje lav støj op-Amp som AT2659 (se også skematisk på ATGM332 Datablad S.14).
- for OLED 0,96 'SSD1306, det officielle bibliotek fra mikrochip oprindeligt til 128*32 display, for at ændre koden til at fungere med 128*64 skal du gå til ssd1306.c og ændre koden (tjek billedet).
Anbefalede:
IoT temperatur- og fugtighedsmåler med OLED -skærm: 5 trin (med billeder)
IoT temperatur- og luftfugtighedsmåler med OLED -skærm: Kontroller temperatur og luftfugtighed på en OLED -skærm, når som helst du ønsker det, og saml samtidig disse data i en IoT -platform. Sidste uge udgav jeg et projekt kaldet Simplest IoT temperatur- og luftfugtighedsmåler. Det er et godt projekt, fordi du kan
Sjovt med OLED -skærm og Arduino: 12 trin (med billeder)
Sjovt med OLED -skærm og Arduino: Jeg er ret sikker på, at du helt sikkert har hørt om OLED -skærmteknologi. Det er relativt nyt og tilbyder en bedre kvalitet end gammel LCD -teknologi. I denne vejledning vil vi gennemgå de trin, der kræves for at vise data om et af de mest almindelige enkelt co
Sådan adskilles en computer med nemme trin og billeder: 13 trin (med billeder)
Sådan adskilles en computer med nemme trin og billeder: Dette er en instruktion om, hvordan du adskiller en pc. De fleste af de grundlæggende komponenter er modulopbyggede og nemme at fjerne. Det er dog vigtigt, at du er organiseret omkring det. Dette hjælper med at forhindre dig i at miste dele og også ved at lave genmonteringen til
GPS Logger Arduino OLed SD: 6 trin (med billeder)
GPS Logger Arduino OLed SD: GPS -logger til at vise din nuværende og gennemsnitlige hastighed og for at spore dine ruter. Gennemsnitshastighed er for områder med en banehastighedskontrol. Arduino har nogle gode funktioner, du kan kopiere:- Koordinaterne gemmes i en daglig fil, filnavn er base
Arduino GPS Oled: 4 trin (med billeder)
Arduino GPS Oled: NEO-6-modulserien er en familie af selvstændige GPS-modtagere med den højtydende u-blox 6-positioneringsmotor. Disse fleksible og omkostningseffektive modtagere tilbyder mange tilslutningsmuligheder i en miniaturepakke på 16 x 12,2 x 2,4 mm. Den