Innehållsförteckning:
- Steg 1: PCB -design med Eagle
- Steg 2: Lödning av kretskortet
- Steg 3: Programvara … Funktionalitet … resultat
- Steg 4: 3D -tryckt fodral … Sort Of
- Steg 5: Saker att förbättra …
Video: GPS -övervakning med OLED -skärmprojekt: 5 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:39
Hej alla, i den här snabbartikeln kommer jag att dela med mig av mitt projekt: ATGM332D GPS -modul med SAMD21J18 mikrokontroller och SSD1306 OLED 128*64 -skärm, jag byggde en speciell kretskort för den på Eagle Autodesk och programmerade den med Atmel studio 7.0 och ASF4 så i den här artikeln kommer jag att dela med dig av denna resa och de filer jag använde om du är intressant att göra det själv.
Om du nu programmerar din MCU/utvecklingskort med Arduino, borde det här projektet vara relativt enkelt för dig, men här kommer jag att använda ASF4 (Advanced software frame 4) från Atmel/Microchip som är baserat på C -språk och skulle ge dig en idé för hur du läser GPS-NMEA-meddelandet med USART asynkron drivrutin (återuppringning) och ger dig ett enkelt bibliotek som du kan använda det med alla mikrokontroller och olika plattformar genom att helt enkelt lägga till lämplig drivrutin som du använder för att ta emot meddelandet från GPS (NMEA -meddelande).
Jag kommer att dela denna artikel till:
- PCB -design.
- BOM du behöver montera kretskortet
- Snabb titt på programvaran och själva koden och ett test för hårdvaran och programvaran.
- sist men inte minst en förbättringspunkt för detta projekt.
Du hittar allt material relaterat till detta projekt påGithub (här)
Steg 1: PCB -design med Eagle
Detta projekt är huvudsakligen baserat på ATGM332D GPS -modul, enkel GPS att använda eftersom den bara behöver ett par passiva komponenter för att fungera, och vi kan lägga till ett backupbatteri för att spara tid/datum om vi stänger av huvudströmkällan från modulen.
och för att styra alla signaler i kretsen gick jag med ATSAMD21J18B mikrokontroller, TQFP64 -paket eftersom det har 128KByte programminneslagring och 32KByte dataminne (och jag har gott om dem som ligger runt min arbetsbänk).
kretsen ska drivas av USB 5V -källa, även USB kan fungera som virtuell COM -port (CDC USB) och du kan lägga till en kod för den om du vill kommunicera med enheten via USB.
för displayen valde jag SSD1306 0,96 'OLED -skärm med SPI -buss, den är liten men den är lämplig för den PCB -storlek jag ville ha, bräddimensionen 100x31 mm.
programmering av mikrokontrollern sker via SWD -programmerare (jag använder Atmel ICE) och ansluter den via 1,27 mm 10p -stifthuvud.
också använde jag Fusion360 för att få en 3d -vy för brädet och du kan också se en återställd bild för den.
Steg 2: Lödning av kretskortet
Du har valet att beställa en stencil med ditt kretskort, det är lättare att applicera lödpastan på brädan med hjälp av stencilen, jag använde kokplatta för att lödda komponenterna tillsammans, med varmluft är också OK men var försiktig när du lödar LED -lampan sedan de är så känsliga för värme.
lödning av undersidan är lite lättare eftersom det bara har SWD -stifthuvudet och reservbatteriet, som du kan löda dem med lödkolv.
innan du ansluter kretsen med någon USB -strömkälla, kontrollera om det finns kortslutning.
anslut din GPS -antenn och se till att du löder kontakten ordentligt, jag fixade antennen på undersidan av kortet.
Steg 3: Programvara … Funktionalitet … resultat
Programvaran kommer att delas in i fyra delar:
- USART för att kommunicera med ATGM332 GPS -modul.
- SPI för att kommunicera med OLED.
- USB CDC.
- GPIO för att styra lysdioder
Anslut först USB -kontakten för att slå på kretsen och anslut sedan bandkabeln med SWD -kontakt.
Ladda ner koden från github (länk här).
för att få Geo-Location har du tre olika NMEA-meddelandealternativ:
- GPGGA
- GPRMC
- GPGLL
Jag använde GPRMC -meningen för att få plats, tid och datum (tiden är 0,0 GMT) så i koden hittar du:
GPRMC. Enable = 1;/*0 om det här meddelandet inte behövs*/
GPGGA. Enable = 0;/*0 om det här meddelandet inte behövs*/
GPGLL. Enable = 0;/*0 om det här meddelandet inte behövs*/
du kan aktivera dem alla tillsammans och läsa dem samtidigt få de data du behöver.
när det finns en giltig GPRMC -mening, kommer GPRMC. Ready att bli 1 och du kan få all tillgänglig data i denna mening, kolla den här länken för att se de tillgängliga uppgifterna i denna mening.
helt enkelt om Fix är 'A' betyder det att platsen är tillgänglig, om Fix är 'V' betyder det att platsen inte är tillgänglig.
märker att ATSAMD21 har internt RTC, men här använder jag det inte och istället använder jag tid och datum direkt från GPS: n, så om du inte vill använda CR1220 Backup -batteriet, när du kopplar bort USB -strömkällan kommer du förlora tid/datum och för nästa gång du slår på kretsen är tid/datumområdet på displayen tomt tills GPS: n har ett giltigt tid/datumvärde.
displayen visar GPS: ns nuvarande status och visar geografisk plats när den är tillgänglig, men det finns 3 lysdioder på kortet:
- Grön lysdiod ansluten till PA06 och blinkar om det finns ett giltigt geografiskt värde.
- Orange LED ansluten till PA07 och blinkar en gång i sekunden om det inte finns någon giltig geografisk plats.
- Röd LED den här ansluten till PPS -stiftet på GPS -modulen och blinkar bara när det finns en giltig signal relaterad till platsen.
Resultat
Kretsen fungerade mycket bra med mig, få Geo-platsen från GPS tog 20-30 sekunder utomhus med fri sikt till himlen och mellan byggnader utan problem även med antenn på undersidan av brädet.
Steg 4: 3D -tryckt fodral … Sort Of
Jag förberedde ett enkelt fodral (mer exakt hållare) för den här kretsen men på grund av COVID-19-epidemin och den låsning jag befinner mig i just nu kunde jag inte nå min 3d-skrivare för att skriva ut den, så jag kommer att uppdatera det här avsnittet med stl fil och foton för innehavaren när den är tillgänglig.
Steg 5: Saker att förbättra …
- Flytta SWD -kontakten till ovansidan eftersom det är lättare att ansluta den till din programmerare.
- Driva kretsen från litiumbatteri, jag gjorde det genom att lödda en bygel och det fungerade bra, med tanke på att den linjära (LDO) regulatorn har V -fallspänning om (Vbat - Vout) mindre än Vdrop -gränsen kretsen kanske inte fungerar ordentligt.
- att göra en användarknapp lite större så det blir lättare att trycka på.
- lägga till USB CDC -kod så att du kan kommunicera/designa ett speciellt program för MAC/PC/linux.
- För GPS-antennen använde jag aktiv antenn för detta projekt, det är möjligt att använda en passiv antenn genom att lägga till låg ljudnivå op-Amp som AT2659 (se även schemat på ATGM332 Datablad S.14).
- för OLED 0,96 'SSD1306, det officiella biblioteket från mikrochip ursprungligen för 128*32 display, för att ändra koden för att fungera med 128*64 måste du gå till ssd1306.c och ändra koden (kolla bilden).
Rekommenderad:
ESP32 GPS -tracker med OLED -skärm: 7 steg
ESP32 GPS -tracker med OLED -skärm: Detta är en GPS -tracker som visar all positionsdata på OLED -displayen. En knapp hjälper användaren att interagera med ett gränssnitt på OLED. Hej, vad händer, killar? Akarsh här från CETech. Koden erbjuder ett menystyrt program med inbyggd knapp,
Grafik på en SSD1306 I2C OLED 128x64 -skärm med CircuitPython med en Itsybitsy M4 Express: 13 steg (med bilder)
Grafik på en SSD1306 I2C OLED 128x64 -skärm med CircuitPython med en Itsybitsy M4 Express: SSD1306 OLED -skärmen är en liten (0,96 "), billig, allmänt tillgänglig, I2C, svartvit grafisk skärm med 128x64 pixlar, som är lätt att koppla ihop (endast 4 ledningar) till mikroprocessorutvecklingskort som en Raspberry Pi, Arduino eller
Hur man tar isär en dator med enkla steg och bilder: 13 steg (med bilder)
Hur man tar isär en dator med enkla steg och bilder: Detta är en instruktion om hur man demonterar en dator. De flesta av de grundläggande komponenterna är modulära och lätt att ta bort. Det är dock viktigt att du är organiserad kring det. Detta hjälper dig att inte förlora delar, och även för att göra ommonteringen
GPS Logger Arduino OLed SD: 6 steg (med bilder)
GPS Logger Arduino OLed SD: GPS -logger för att visa din nuvarande och genomsnittliga hastighet och för att spåra dina rutter. Medelhastigheten är för områden med en banhastighetsreglering. Arduino har några fina funktioner du kan kopiera:- Koordinaterna lagras i en daglig fil, filnamn är bas
Arduino GPS Oled: 4 steg (med bilder)
Arduino GPS Oled: NEO-6-modulserien är en familj av fristående GPS-mottagare med högpresterande u-blox 6-positioneringsmotor. Dessa flexibla och kostnadseffektiva mottagare erbjuder många anslutningsmöjligheter i ett miniatyrpaket på 16 x 12,2 x 2,4 mm. Det