Cuprins:
- Pasul 1: Proiectarea PCB folosind Eagle
- Pasul 2: lipirea PCB-ului
- Pasul 3: Software … Funcționalitate … rezultate
- Pasul 4: Carcasă imprimată 3D … Un fel de
- Pasul 5: Lucruri de îmbunătățit …
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
Bună ziua tuturor, în acest articol rapid vă voi împărtăși proiectul meu: modul GPS ATGM332D cu microcontroler SAMD21J18 și afișaj SSD1306 OLED 128 * 64, am construit un PCB special pentru acesta pe Eagle Autodesk și îl programez folosind Atmel studio 7.0 și ASF4 deci în acest articol vă voi împărtăși această călătorie și fișierele pe care le-am folosit dacă sunteți interesat să o faceți singur.
Acum, dacă vă programați MCU / placa de dezvoltare folosind Arduino, acest proiect ar trebui să vă fie relativ ușor, dar aici voi folosi ASF4 (Advanced software framwork 4) de la Atmel / Microchip care se bazează pe limbajul C și vă va da o idee pentru cum să citiți mesajul GPS NMEA utilizând driverul asincron USART (Callback) și să vă oferiți o bibliotecă simplă pe care o puteți utiliza cu orice microcontroler și platformă diferită, adăugând pur și simplu driverul adecvat pe care îl utilizați pentru a primi mesajul de la GPS (mesaj NMEA).
Voi împărți acest articol la:
- Design PCB.
- BOM trebuie să asamblați PCB-ul
- Privire rapidă a software-ului și a codului în sine și un test pentru hardware și software.
- în cele din urmă, dar nu în ultimul rând, un punct de îmbunătățire pentru acest proiect.
Veți găsi tot materialul legat de acest proiect pe Github (Aici)
Pasul 1: Proiectarea PCB folosind Eagle
Acest proiect se bazează în principal pe modulul GPS ATGM332D, GPS simplu de utilizat, deoarece are nevoie doar de câteva componente pasive pentru a funcționa și am putea adăuga o baterie de rezervă pentru a economisi ora / data dacă oprim sursa principală de alimentare din modul.
și pentru a controla toate semnalele din circuit am mers cu microcontrolerul ATSAMD21J18B, pachetul TQFP64 deoarece are 128KByte de stocare a memoriei de program și 32KByte de memorie de date (și am o mulțime de ele așezate în jurul bancului meu de lucru).
circuitul va fi alimentat de sursa USB 5V, de asemenea, USB-ul poate acționa ca port COM virtual (CDC USB) și puteți adăuga un cod pentru acesta dacă doriți să comunicați cu dispozitivul prin USB.
pentru afișaj am selectat afișaj OLED SSD1306 0.96 'cu bus SPI, este mic, dar este potrivit pentru dimensiunea PCB dorită, dimensiunea plăcii 100x31 mm.
programarea microcontrolerului va fi prin programator SWD (eu folosesc Atmel ICE) și îl voi conecta prin antet de 10 pini de 1,27 mm.
De asemenea, am folosit Fusion360 pentru a obține o vizualizare 3D pentru tablă și puteți vedea și o imagine redată pentru aceasta.
Pasul 2: lipirea PCB-ului
Aveți opțiunea de a comanda un șablon cu PCB-ul dvs., este mai ușor să aplicați pasta de lipit pe placă folosind șablonul, am folosit placă fierbinte pentru a lipi componentele împreună, folosind aer fierbinte este de asemenea OK, dar aveți grijă în timp ce lipiți LED-ul, deoarece sunt atât de sensibili la căldură.
lipirea partea inferioară este puțin mai ușoară, deoarece are doar antetul SWD pin și bateria de rezervă, pe care le puteți lipi folosind un fier de lipit.
înainte de a conecta circuitul cu orice sursă de alimentare USB, verificați dacă există scurtcircuit.
conectați-vă antena GPS și asigurați-vă că lipiți conectorul corect, am fixat antena în partea inferioară a plăcii.
Pasul 3: Software … Funcționalitate … rezultate
Software-ul va fi împărțit în 4 părți:
- USART pentru a comunica cu modulul GPS ATGM332.
- SPI pentru a comunica cu OLED.
- USB CDC.
- GPIO pentru controlul LED-urilor
conectați mai întâi conectorul USB pentru a porni circuitul și apoi conectați cablul cu bandă cu conector SWD.
Descărcați Codul de pe github (Link aici).
pentru a obține locația geografică aveți 3 opțiuni diferite de mesaje NMEA:
- GPGGA
- GPRMC
- GPGLL
Am folosit propoziția GPRMC pentru a obține locația, ora și data (ora este 0,0 GMT), astfel încât în cod veți găsi:
GPRMC. Enable = 1; / * 0 dacă nu este nevoie de acest mesaj * /
GPGGA. Enable = 0; / * 0 dacă nu este nevoie de acest mesaj * /
GPGLL. Enable = 0; / * 0 dacă nu este nevoie de acest mesaj * /
le puteți activa pe toate împreună și le puteți citi în același timp pentru a obține datele de care aveți nevoie.
odată ce există o propoziție GPRMC validă, GPRMC. Ready va deveni 1 și puteți obține toate datele disponibile în această propoziție, verificați acest link pentru a vedea datele disponibile în această propoziție.
pur și simplu dacă Fix este „A” înseamnă că Locația este disponibilă, dacă Fix este „V” înseamnă că locația nu este disponibilă.
observați că ATSAMD21 are RTC intern, dar aici nu îl folosesc și în schimb folosesc ora și data direct de pe GPS, deci dacă nu doriți să utilizați bateria de rezervă CR1220, odată ce deconectați sursa de alimentare USB, veți pierdeți Ora / Data și pentru data viitoare când porniți circuitul, zona orei / datei de pe afișaj va fi goală până când GPS-ul are o valoare validă a datei / orei.
afișajul vă va arăta starea actuală a GPS-ului și va afișa locația geografică odată ce este disponibil, cu toate acestea există 3 LED-uri pe placă:
- LED verde conectat la PA06 și va clipi dacă există o valoare validă de localizare geografică.
- LED portocaliu conectat la PA07 și va clipi o dată pe secundă dacă nu există o locație geografică validă.
- LED roșu conectat la pinul PPS al modulului GPS și va clipi numai atunci când există un semnal valid legat de locație.
Rezultate
Circuitul a funcționat foarte bine cu mine, obținerea Geo-locației de pe GPS a durat 20-30 de secunde în aer liber, cu vedere la cer și între clădiri fără nicio problemă, chiar și cu antena în partea de jos a plăcii.
Pasul 4: Carcasă imprimată 3D … Un fel de
Am pregătit o carcasă simplă (suport mai precis) pentru acest circuit, dar din cauza epidemiei COVID-19 și a blocării în care mă aflu acum, nu am putut ajunge la imprimanta mea 3D pentru ao imprima, așa că voi actualiza această secțiune cu stl fișier și fotografii pentru titular odată ce acesta este disponibil.
Pasul 5: Lucruri de îmbunătățit …
- Mutarea conectorului SWD în partea de sus, deoarece este mai ușor să îl conectați la programator.
- Alimentarea circuitului de la bateria cu litiu, am făcut-o lipind un jumper și a funcționat bine, având în vedere că regulatorul liniar (LDO) are tensiune de cădere V dacă (Vbat - Vout) mai mică decât limita Vdrop circuitul ar putea să nu funcționeze. corect.
- făcând un buton de utilizator puțin mai mare, astfel încât să fie mai ușor de apăsat.
- adăugarea codului USB CDC astfel încât să puteți comunica / proiecta un program special pentru MAC / PC / linux.
- Pentru antena GPS, am folosit antena activă pentru acest proiect, folosind o antenă pasivă este posibilă, adăugând op-Amp cu zgomot redus ca AT2659 (verificați și schema ATGM332 Foaie de date P.14).
- pentru OLED 0.96 'SSD1306, biblioteca oficială din microcip inițial pentru afișajul 128 * 32, pentru a modifica codul pentru a lucra cu 128 * 64 trebuie să accesați ssd1306.c și să modificați codul (verificați imaginea).
Recomandat:
Zaruri digitale Ludo cu proiect Arduino 7 Segment Display: 3 pași
Zaruri Ludo digitale cu proiectul Arduino 7 Segment Display: În acest proiect, afișajul pe 7 segmente este utilizat pentru a afișa aleator un număr de la 1 la 6 ori de câte ori apăsăm butonul. Acesta este unul dintre cele mai tari proiecte pe care toată lumea le face plăcere. Pentru a învăța cum să lucrați cu afișaj pe 7 segmente, faceți clic aici: -7 segme
Stick de monitorizare a umidității solului Arduino - Nu uitați niciodată să vă udați plantele: 4 pași (cu imagini)
Arduino Soil Moisture Monitoring Stick - Nu uitați niciodată să vă udați plantele: uitați adesea să vă udați plantele de interior? Sau poate le acordați prea multă atenție și le udați? Dacă faceți acest lucru, ar trebui să vă faceți un baston de monitorizare a umidității solului alimentat de baterie. Acest monitor folosește o umiditate capacitivă a solului
Sistem de monitorizare Raspberry Pi prin modul de afișare OLED: 5 pași
Sistem de monitorizare Raspberry Pi prin intermediul modulului de afișare OLED: În acest tutorial vă voi explica cum să configurați modulul de afișaj OLED de 0,96 inch pentru afișarea informațiilor de sistem ale Raspberry Pi 4 Model B utilizând interfața sa I2C
Proiect Arduino: Gama de testare a modulului LoRa RF1276 pentru urmărirea GPS Soluție: 9 pași (cu imagini)
Proiect Arduino: Test Range Module LoRa RF1276 pentru urmărire GPS Soluție: Conexiune: USB - Serial Necesitate: Chrome Browser Necesitate: 1 X Arduino Mega Need: 1 X GPS Need: 1 X Card SD Need: 2 X LoRa Modem RF1276 Funcție: Arduino Send GPS value la baza principală - Datele principale de stocare a bazei în modulul Datora Server Lora: ultra-lung
GPS BIKE SAU MONITORIZARE MASINA DE LA SMARTPHONE: 9 Pași
GPS BIKE SAU MĂSURAREA URMĂRĂRII DE LA SMARTPHONE: Bună, Bine ați venit la Creativity Buzz. Aici vă arăt cum vă urmăriți bicicleta sau mașina. Puteți urmări locația live a bicicletei folosind acest dispozitiv. Puteți urmări orice bicicletă folosind acest dispozitiv