Sommario:
- Passaggio 1: progettazione PCB utilizzando Eagle
- Passaggio 2: saldatura del PCB
- Fase 3: Software… Funzionalità… Risultati
- Passaggio 4: custodia stampata in 3D… una specie di
- Passaggio 5: cose da migliorare…
Video: Monitoraggio GPS con progetto display OLED: 5 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
Ciao a tutti, in questo rapido articolo condividerò con voi il mio progetto: modulo GPS ATGM332D con microcontrollore SAMD21J18 e display SSD1306 OLED 128*64, ho costruito un PCB speciale per esso su Eagle Autodesk e lo programma utilizzando Atmel studio 7.0 e ASF4 così in questo articolo condividerò con te questo viaggio e i file che ho usato se ti interessa farlo da solo.
Ora se stai programmando la tua MCU/scheda di sviluppo usando Arduino, questo progetto dovrebbe essere relativamente facile per te, ma qui userò ASF4 (framwork software avanzato 4) di Atmel/Microchip che si basa sul linguaggio C e ti darebbe un'idea per come leggere il messaggio GPS NMEA utilizzando il driver USART Asincrono (Callback) e fornirti una semplice libreria che puoi utilizzare con qualsiasi Microcontrollore e piattaforma diversa semplicemente aggiungendo il Driver appropriato che stai utilizzando per ricevere il messaggio dal GPS (messaggio NMEA).
Dividerò questo articolo in:
- Progettazione PCB.
- BOM è necessario assemblare il PCB
- Un rapido sguardo al software e al codice stesso e un test per l'hardware e il software.
- infine, ma non meno importante, qualche punto di miglioramento per questo progetto.
Troverai tutto il materiale relativo a questo progetto su Github (qui)
Passaggio 1: progettazione PCB utilizzando Eagle
Questo progetto si basa principalmente sul modulo GPS ATGM332D, GPS semplice da utilizzare poiché ha bisogno solo di un paio di componenti passivi per funzionare e potremmo aggiungere una batteria di backup per salvare l'ora/data se spegniamo la fonte di alimentazione principale dal modulo.
e per controllare tutti i segnali nel circuito sono andato con il microcontrollore ATSAMD21J18B, il pacchetto TQFP64 poiché ha 128 KB di memoria di programma e 32 KB di memoria dati (e ne ho molti sul mio banco di lavoro).
il circuito deve essere alimentato da una sorgente USB 5V, inoltre l'USB può fungere da porta COM virtuale (CDC USB) ed è possibile aggiungere un codice per esso se si desidera comunicare con il dispositivo tramite USB.
per il display ho selezionato SSD1306 display OLED da 0,96' con bus SPI, è piccolo ma è adatto alle dimensioni del PCB che volevo, la dimensione della scheda 100x31 mm.
la programmazione del microcontrollore avverrà tramite il programmatore SWD (io uso Atmel ICE) e lo collegherò tramite un connettore pin da 1,27 mm 10p.
inoltre ho usato Fusion360 per ottenere una vista 3D per la scheda e puoi vedere anche alcune immagini renderizzate.
Passaggio 2: saldatura del PCB
Hai la possibilità di ordinare uno stencil con il tuo PCB, è più facile applicare la pasta saldante sulla scheda usando lo stencil, ho usato la piastra calda per saldare i componenti insieme, anche l'uso dell'aria calda è OK ma fai attenzione durante la saldatura del LED poiché sono così sensibili al calore.
saldare il lato inferiore è un po' più semplice poiché ha solo l'intestazione del pin SWD e la batteria di backup, che puoi saldare usando il saldatore.
prima di collegare il circuito con qualsiasi fonte di alimentazione USB, verificare eventuali cortocircuiti.
collega l'antenna GPS e assicurati di saldare correttamente il connettore, ho fissato l'antenna sul lato inferiore della scheda.
Fase 3: Software… Funzionalità… Risultati
Il software sarà diviso in 4 parti:
- USART per comunicare con il modulo GPS ATGM332.
- SPI per comunicare con OLED.
- USB CDC.
- GPIO per controllare i LED
collegare prima il connettore USB per accendere il circuito e quindi collegare il cavo a nastro con connettore SWD.
Scarica il codice da github (Link qui).
per ottenere la Geo-Localizzazione hai 3 diverse opzioni di messaggi NMEA:
- GPGGA
- GPRMC
- GPGLL
Ho usato la frase GPRMC per ottenere la posizione, l'ora e la data (l'ora è 0.0 GMT) quindi nel codice troverai:
GPRMC. Enable=1;/*0 se non è necessario questo messaggio*/
GPGGA. Enable=0;/*0 se non è necessario questo messaggio*/
GPGLL. Enable=0;/*0 se non è necessario questo messaggio*/
puoi abilitarli tutti insieme e leggerli allo stesso tempo ottenere i dati di cui hai bisogno.
una volta che c'è una frase GPRMC valida, theGPRMC. Ready diventerà 1 e puoi ottenere tutti i dati disponibili in questa frase, controlla questo link per vedere i dati disponibili in questa frase.
semplicemente se Fix è 'A' significa che la posizione è disponibile, se Fix è 'V' significa che la posizione non è disponibile.
nota che ATSAMD21 ha un RTC interno, ma qui non lo uso e invece uso ora e data direttamente dal GPS, quindi se non vuoi usare la batteria di backup CR1220, una volta scollegata la fonte di alimentazione USB lo farai perdere l'ora/data e alla successiva accensione del circuito l'area ora/data sul display sarà vuota finché il GPS non avrà un valore di ora/data valido.
il display ti mostrerà lo stato attuale del GPS e ti mostrerà la Geo-localizzazione una volta che sarà disponibile, tuttavia ci sono 3 LED sulla Scheda:
- LED verde collegato a PA06 e lampeggia se è presente un valore di geolocalizzazione valido.
- LED arancione collegato a PA07 e lampeggia una volta al secondo se non è presente una geolocalizzazione valida.
- LED rosso questo è collegato al pin PPS del Modulo GPS e lampeggerà solo quando c'è un segnale valido relativo alla posizione.
Risultati
Il circuito ha funzionato molto bene con me, ottenere la geolocalizzazione dal GPS ha impiegato 20-30 secondi all'aperto con una visione chiara del cielo e tra gli edifici senza alcun problema anche con l'antenna sul lato inferiore della scheda.
Passaggio 4: custodia stampata in 3D… una specie di
Ho preparato un caso semplice (supporto più preciso) per questo circuito ma a causa dell'epidemia di COVID-19 e del blocco in cui mi trovo in questo momento, non sono riuscito a raggiungere la mia stampante 3d per stamparlo, quindi aggiornerò questa sezione con stl file e una foto per il titolare una volta disponibile.
Passaggio 5: cose da migliorare…
- Spostando il connettore SWD verso il lato superiore poiché è più facile collegarlo al tuo programmatore.
- Alimentando il circuito dalla batteria al litio, l'ho fatto saldando un ponticello e ha funzionato bene, tenendo presente che il regolatore lineare (LDO) ha una tensione di caduta V se (Vbat - Vout) inferiore al limite Vdrop il circuito potrebbe non funzionare propriamente.
- rendere un pulsante utente un po' più grande in modo che sia più facile da premere.
- aggiungendo il codice USB CDC in modo da poter comunicare/progettare un programma speciale per MAC/PC/linux.
- Per l'antenna GPS, ho usato l'antenna attiva per questo progetto, utilizzando un'antenna passiva è possibile, aggiungendo un op-Amp a basso rumore come AT2659 (controlla anche lo schema su ATGM332 Datasheet P.14).
- per OLED 0.96' SSD1306, la libreria ufficiale di microchip originariamente per display 128*32, per modificare il codice per lavorare con 128*64 devi andare su ssd1306.c e modificare il codice (controlla l'immagine).
Consigliato:
Monitoraggio del livello dell'acqua con display Oled con Raspberry Pi: 4 passaggi
Monitoraggio del livello dell'acqua con display Oled con Raspberry Pi: Ciao a tutti, sono Shafin, un membro di Aiversity. Condividerò su come costruire un sensore di livello dell'acqua con un display Oled per serbatoi d'acqua con un Raspberry pi. Il display oled mostrerà la percentuale del secchio pieno d'acqua
Kit per auto di monitoraggio robot intelligente fai-da-te Monitoraggio fotosensibile dell'auto: 7 passaggi
Fai da te Smart Robot Tracking Car Kit Tracking Car Photosensitive: Design by SINONING ROBOTÈ possibile acquistare da tracking robot carTheoryLM393 chip confrontare i due fotoresistori, quando c'è un LED fotoresistore laterale su BIANCO il lato del motore si fermerà immediatamente, l'altro lato del motore girare, in modo che
Sistema di monitoraggio Raspberry Pi tramite modulo display OLED: 5 passaggi
Sistema di monitoraggio Raspberry Pi tramite modulo display OLED: in questo tutorial spiegherò come configurare il modulo display OLED da 0,96 pollici per mostrare le informazioni di sistema di Raspberry Pi 4 Modello B utilizzando la sua interfaccia I2C
Monitoraggio SMS -- Display a matrice di punti -- MAX7219 -- SIM800L: 8 passaggi (con immagini)
Monitoraggio SMS || Display a matrice di punti || MAX7219 || SIM800L: In questo video imparerai come utilizzare un modulo GSM, un display a matrice di punti e come visualizzare il testo scorrevole su di esso. Dopodiché li combineremo insieme per visualizzare i messaggi ricevuti tramite una SIM GSM su un display a matrice di punti. È abbastanza facile e tu
Progetto tabellone segnapunti con display a LED P10 utilizzando DMD: 6 passaggi (con immagini)
Progetto tabellone segnapunti con display a LED P10 utilizzando DMD: spesso ci incontriamo in uno stadio di calcio; c'è una gigantesca lavagna a LED che funge da tabellone segnapunti. Così anche in altri ambiti sportivi, anche spesso conosciamo il tabellone segnapunti del display a led. Sebbene non sia possibile, c'è anche un campo che ancora noi