Sadržaj:
- Korak 1: Dizajn PCB -a pomoću Eagle -a
- Korak 2: Lemljenje PCB -a
- Korak 3: Softver … Funkcionalnost … rezultati
- Korak 4: 3D tiskana futrola … nekako
- Korak 5: Stvari koje treba poboljšati …
Video: GPS nadgledanje s projektom OLED zaslona: 5 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:33
Pozdrav svima, u ovom kratkom članku podijelit ću s vama svoj projekt: ATGM332D GPS modul sa SAMD21J18 mikrokontrolerom i SSD1306 OLED 128*64 zaslonom, sagradio sam posebnu PCB za njega na Eagle Autodesku i programirao ga pomoću Atmel studija 7.0 i ASF4 tako da u ovom ću članku podijeliti s vama ovo putovanje i datoteke koje sam koristio ako vam je zanimljivo to učiniti sami.
Ako programirate svoj MCU/razvojnu ploču koristeći Arduino, ovaj bi vam projekt trebao biti relativno lak, ali ovdje ću koristiti ASF4 (napredni softverski okvir 4) iz Atmela/Microchipa koji se temelji na jeziku C i dao bih vam ideju za čitanje GPS NMEA poruke pomoću USART asinkronog upravljačkog programa (povratni poziv) i pružanje jednostavne biblioteke koju možete koristiti sa bilo kojim mikrokontrolerom i drugom platformom jednostavnim dodavanjem odgovarajućeg upravljačkog programa koji koristite za primanje poruke od GPS (poruka NMEA).
Ovaj ću članak podijeliti na:
- Dizajn PCB -a.
- BOM trebate sastaviti PCB
- Brzi pregled softvera i samog koda te test hardvera i softvera.
- na kraju, ali ne i najmanje važno, poboljšanje ovog projekta.
Sav materijal vezan za ovaj projekt pronaći ćete naGithub -u (ovdje)
Korak 1: Dizajn PCB -a pomoću Eagle -a
Ovaj se projekt uglavnom temelji na ATGM332D GPS modulu, jednostavnom GPS -u za upotrebu jer za rad treba samo nekoliko pasivnih komponenti, a mogli bismo dodati i rezervnu bateriju za uštedu vremena/datuma ako isključimo glavni izvor napajanja iz modula.
i za kontrolu svih signala u krugu otišao sam s mikrokontrolerom ATSAMD21J18B, paketom TQFP64 budući da ima 128 KB programske memorije i 32 KB memorije podataka (a imam ih dosta po radnom stolu).
krug će se napajati iz USB 5V izvora, također USB može djelovati i kao virtualni COM port (CDC USB) i za njega možete dodati kôd ako želite komunicirati s uređajem putem USB -a.
za zaslon sam odabrao SSD1306 OLED ekran od 0,96 'sa SPI sabirnicom, mali je, ali je prikladan za željenu veličinu PCB -a, dimenziju ploče 100x31 mm.
programiranje mikrokontrolera bit će preko SWD programatora (koristim Atmel ICE) i povezat će ga putem 1,27 mm 10p pin zaglavlja.
Također sam koristio Fusion360 da dobijem 3D prikaz ploče i možete vidjeti i neku renderiranu sliku za nju.
Korak 2: Lemljenje PCB -a
Imate izbor naručiti matricu s PCB -om, lakše je nanijeti pastu za lemljenje na ploču pomoću matrice, ja sam koristio vruću ploču za lemljenje komponenti zajedno, korištenje vrućeg zraka je također u redu, ali budite oprezni dok lemite LED jer toliko su osjetljivi na toplinu.
lemljenje donje strane malo je lakše jer ima samo SWD zaglavlje i rezervnu bateriju koju možete lemiti pomoću lemilice.
prije nego što spojite krug s bilo kojim USB izvorom napajanja, provjerite ima li kratkog spoja.
spojite svoju GPS antenu i provjerite jeste li pravilno lemili njen konektor, popravio sam antenu na donjoj strani ploče.
Korak 3: Softver … Funkcionalnost … rezultati
Softver će biti podijeljen u 4 dijela:
- USART za komunikaciju s ATGM332 GPS modulom.
- SPI za komunikaciju s OLED -om.
- USB CDC.
- GPIO za upravljanje LED diodama
prvo spojite USB konektor na napajanje kruga, a zatim spojite vrpčani kabel sa SWD konektorom.
Preuzmite kôd s github -a (veza ovdje).
za dobivanje Geo-lokacije imate 3 različite opcije poruka NMEA:
- GPGGA
- GPRMC
- GPGLL
Koristio sam GPRMC rečenicu za dobivanje lokacije, vremena i datuma (vrijeme je 0,0 GMT) pa ćete u kodu pronaći:
GPRMC. Enable = 1;/*0 ako nema potrebe za ovom porukom*/
GPGGA. Enable = 0;/*0 ako nema potrebe za ovom porukom*/
GPGLL. Enable = 0;/*0 ako nema potrebe za ovom porukom*/
možete ih omogućiti sve zajedno i čitati ih istovremeno kako biste dobili potrebne podatke.
nakon što postoji valjana GPRMC rečenica, GPRMC. Ready će postati 1 i možete dobiti sve podatke dostupne u ovoj rečenici, provjerite ovu vezu da vidite podatke dostupne u ovoj rečenici.
jednostavno ako je Fix 'A', to znači da je Lokacija dostupna, ako je Fix 'V', to znači da lokacija nije dostupna.
primijetite da ATSAMD21 ima unutarnji RTC, ali ovdje ga ne koristim i umjesto toga koristim vrijeme i datum izravno s GPS -a, pa ako ne želite koristiti rezervnu bateriju CR1220, nakon što isključite USB izvor napajanja, izgubite vrijeme/datum i za sljedeći put kada uključite krug, područje vremena/datuma na zaslonu bit će prazno sve dok GPS ne dobije važeću vrijednost vremena/datuma.
zaslon će vam pokazati trenutačni status GPS-a i prikazat će geografsku lokaciju kad bude dostupna, međutim na ploči postoje 3 LED diode:
- Zelena LED dioda spojena je na PA06 i treperit će ako postoji valjana vrijednost Geo-lokacije.
- Narančasta LED spojena na PA07 i treperit će jednom u sekundi ako nema valjane Geo-lokacije.
- Crvena LED dioda spojena na PPS pin GPS modula i treperit će samo ako postoji važeći signal vezan uz lokaciju.
Rezultati
Krug je sa mnom radio jako dobro, za dobivanje Geolokacije s GPS-a trebalo je 20-30 sekundi na otvorenom s jasnim vidom prema nebu i između zgrada bez ikakvih problema, čak i s antenom na donjoj strani ploče.
Korak 4: 3D tiskana futrola … nekako
Pripremio sam jednostavan kovčeg (precizniji držač) za ovaj krug, ali zbog epidemije COVID-19 i blokade u kojoj se trenutno nalazim, nisam mogao doći do svog 3D pisača da ga isprintam, pa ću ovaj odjeljak ažurirati sa stl datoteku i fotografije za vlasnika kad bude dostupna.
Korak 5: Stvari koje treba poboljšati …
- Pomicanje SWD konektora na gornju stranu jer ga je lakše spojiti s programatorom.
- Napajanje strujnog kruga iz litijske baterije, učinio sam to lemljenjem kratkospojnika i radio je dobro, imajući na umu da linearni (LDO) regulator ima pad napona V ako (Vbat - Vout) manji od granice Vdrop krug možda neće raditi pravilno.
- čineći gumb korisnika malo većim pa će ga biti lakše pritisnuti.
- dodavanjem USB CDC koda kako biste mogli komunicirati/osmisliti poseban program za MAC/PC/linux.
- Za GPS antenu, za ovaj sam projekt koristio Aktivnu antenu, upotreba pasivne antene je moguća, dodavanjem op-pojačala s niskim šumom poput AT2659 (provjerite i shemu na podatkovnom listu ATGM332 P.14).
- za OLED 0.96 'SSD1306, službenu knjižnicu iz mikročipa izvorno za prikaz 128*32, da biste promijenili kôd za rad sa 128*64 morate otići na ssd1306.c i izmijeniti kôd (provjerite sliku).
Preporučeni:
Zakretanje Raspberry Pi zaslona i zaslona osjetljivog na dodir: 4 koraka
Rotiranje Raspberry Pi zaslona i zaslona osjetljivog na dodir: Ovo je osnovno uputstvo koje će vam pokazati kako rotirati unos zaslona i zaslona osjetljivog na dodir za bilo koji Raspberry Pi koji radi na Buster Raspbian operativnom sustavu, ali ovu metodu koristim od Jessie. Slike korištene u ovome su s Raspberry Pi
Pokretanje bez zaslona / zaslona (bez glave) na Raspberry Pi ili drugim računalima temeljenim na Linuxu / unixu: 6 koraka
Pokretanje bez zaslona / zaslona (bez glave) na Raspberry Pi ili drugim računalima sa sustavom Linux / unix: Kada većina ljudi kupi Raspberry PI, misle da im je potreban zaslon računala. Ne trošite novac na nepotrebne računalne monitore i tipkovnice. Ne gubite vrijeme na premještanje tipkovnica i monitora između računala. Ne vežite televizor kad nema
NEO -6M GPS povezan s NodeMCU - OLED položaj zaslona - Visuino: 7 koraka
NEO -6M GPS povezan s NodeMCU - OLED položaj zaslona - Visuino: U ovom ćemo vodiču koristiti NodeMCU Mini, OLED Lcd, NEO -6M GPS i Visuino za prikaz GPS položaja uživo na LCD -u. Pogledajte demonstracijski video
Nadgledanje konferencijske sobe pomoću fotona čestica: 8 koraka (sa slikama)
Nadzor konferencijske sobe pomoću čestica fotona: Uvod U ovom tutorialu napravit ćemo monitor konferencijske sobe koristeći Particle Photon. U ovoj čestici integrirano je sa Slackom pomoću Webhooks -a za dobivanje ažuriranja u stvarnom vremenu o tome je li soba dostupna ili nije. PIR senzori koriste se za
AirCitizen - Nadgledanje kvalitete zraka: 11 koraka (sa slikama)
AirCitizen - praćenje kvalitete zraka: Pozdrav svima! Danas ćemo vas naučiti kako reproducirati naš projekt: AirCitizen od strane tima AirCitizenPolytech!-Dolazi iz 'OpenAir / What’s your air?' Projekti, projekt AirCitizen ima za cilj omogućiti građanima aktivno ocjenjivanje kvalitete