Taula de continguts:
- Pas 1: Disseny de PCB amb Eagle
- Pas 2: soldar el PCB
- Pas 3: Programari … Funcionalitat … resultats
- Pas 4: caixa impresa en 3D … Una mena de
- Pas 5: coses a millorar …
Vídeo: Monitorització GPS amb projecte de pantalla OLED: 5 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
Hola a tothom, en aquest ràpid article compartiré amb vosaltres el meu projecte: mòdul GPS ATGM332D amb microcontrolador SAMD21J18 i pantalla SSD1306 OLED 128 * 64, he creat un PCB especial per a ell a Eagle Autodesk i el programa amb Atmel studio 7.0 i ASF4. en aquest article compartiré amb vosaltres aquest viatge i els fitxers que he utilitzat si esteu interessats en fer-ho vosaltres mateixos.
Ara bé, si esteu programant la vostra placa de desenvolupament / MCU mitjançant Arduino, aquest projecte us hauria de ser relativament fàcil, però aquí faré servir ASF4 (Advanced software framwork 4) d’Atmel / Microchip que es basa en llenguatge C i us donaria una idea per saber com llegir el missatge GPS NMEA mitjançant el control asincrònic USART (devolució de trucada) i proporcionar-vos una biblioteca senzilla que el podeu utilitzar amb qualsevol microcontrolador i plataforma diferent, simplement afegiu el controlador adequat que utilitzeu per rebre el missatge de GPS (missatge NMEA).
Dividiré aquest article per:
- Disseny de PCB.
- BOM que necessiteu per muntar el PCB
- Consulta ràpida del programari i del codi en si i prova del maquinari i el programari.
- per últim, però no menys important, algun punt de millora d’aquest projecte.
Trobareu tot el material relacionat amb aquest projecte a Github (aquí)
Pas 1: Disseny de PCB amb Eagle
Aquest projecte es basa principalment al voltant del mòdul GPS ATGM332D, un GPS senzill d’utilitzar ja que només necessita un parell de components passius per funcionar, i podríem afegir una bateria de seguretat per estalviar la data / hora si apaguem la font d’alimentació principal del mòdul.
i per controlar tots els senyals del circuit vaig anar amb el microcontrolador ATSAMD21J18B, paquet TQFP64, ja que té 128KByte d’emmagatzematge de memòria de programa i 32KByte de memòria de dades (i en tinc un munt d’ells al voltant del meu banc de treball).
el circuit s'alimentarà mitjançant una font USB 5V, també l'USB pot actuar com a port COM virtual (CDC USB) i podeu afegir-hi un codi si voleu comunicar-vos amb el dispositiu mitjançant USB.
per a la pantalla he seleccionat la pantalla OLED SSD1306 0,96 'amb bus SPI, és petita, però és l'adequada per a la mida de PCB que volia, la mida de la placa 100x31 mm.
la programació del microcontrolador es farà a través del programador SWD (faig servir Atmel ICE) i el connectaré a través de capçalera de 10p de 1,27 mm.
també he utilitzat Fusion360 per obtenir una vista en 3D del tauler i també es pot veure una imatge representada.
Pas 2: soldar el PCB
Teniu l’opció de demanar una plantilla amb el vostre PCB, és més fàcil aplicar la pasta de soldar a la pissarra amb la plantilla, he utilitzat la placa calenta per soldar els components junts, l’ús d’aire calent també està bé, però aneu amb compte mentre es solda el LED ja que són tan sensibles a la calor.
soldar la part inferior és una mica més fàcil, ja que només té la capçalera del pin SWD i la bateria de seguretat, que els podeu soldar amb soldador.
abans de connectar el circuit amb qualsevol font d'alimentació USB, comproveu si hi ha un curtcircuit.
connecteu l'antena GPS i assegureu-vos que heu soldat correctament el connector. Vaig fixar l'antena a la part inferior del tauler.
Pas 3: Programari … Funcionalitat … resultats
El programari es dividirà en 4 parts:
- USART per comunicar-se amb el mòdul GPS ATGM332.
- SPI per comunicar-se amb OLED.
- USB CDC.
- GPIO per controlar LEDs
primer connecteu el connector USB per encendre el circuit i, a continuació, connecteu el cable de cinta amb el connector SWD.
Baixeu-vos el codi des de github (enllaç aquí).
Per obtenir la ubicació geogràfica, teniu tres opcions de missatges NMEA diferents:
- GPGGA
- GPRMC
- GPGLL
He utilitzat la frase GPRMC per obtenir la ubicació, l'hora i la data (l'hora és de 0,0 GMT), de manera que al codi hi trobareu:
GPRMC. Enable = 1; / * 0 si no cal aquest missatge * /
GPGGA. Enable = 0; / * 0 si no cal aquest missatge * /
GPGLL. Enable = 0; / * 0 si no cal aquest missatge * /
els podeu habilitar tots junts i llegir-los al mateix temps per obtenir les dades que necessiteu.
un cop hi hagi una frase GPRMC vàlida, el GPRMC. Leady passarà a ser 1 i podeu obtenir totes les dades disponibles en aquesta frase, consulteu aquest enllaç per veure les dades disponibles en aquesta frase.
simplement, si Fix és "A", significa que la ubicació està disponible, si Fix és "V", significa que la ubicació no està disponible.
Tingueu en compte que ATSAMD21 té RTC intern, però aquí no el faig servir i, en canvi, faig servir l'hora i la data directament des del GPS, de manera que si no voleu utilitzar la bateria de còpia de seguretat CR1220, un cop desconnecteu la font d'alimentació USB, perdeu l’hora i la data i, per la propera vegada que enceneu el circuit, l’àrea d’hora / data de la pantalla quedarà buida fins que el GPS tingui un valor d’hora / data vàlid.
la pantalla us mostrarà l'estat actual del GPS i mostrarà la ubicació geogràfica un cop estigui disponible, però hi ha 3 LED al tauler:
- LED verd connectat a PA06 i parpellejarà si hi ha un valor de geolocalització vàlid.
- LED taronja connectat a PA07 i parpellejarà un cop per segon si no hi ha una geolocalització vàlida.
- El LED vermell està connectat al pin PPS del mòdul GPS i només parpellejarà quan hi hagi un senyal vàlid relacionat amb la ubicació.
Resultats
El circuit va funcionar molt bé amb mi, la geolocalització del GPS va trigar entre 20 i 30 segons a l'aire lliure amb una vista clara del cel i entre edificis sense cap problema, fins i tot amb antena a la part inferior del tauler.
Pas 4: caixa impresa en 3D … Una mena de
Vaig preparar un estoig senzill (suport més precís) per a aquest circuit, però a causa de l’epidèmia de COVID-19 i el bloqueig que tinc ara mateix, no he pogut arribar a la meva impressora 3D per imprimir-la, així que actualitzaré aquesta secció amb stl un fitxer i fotos per al titular un cop estigui disponible.
Pas 5: coses a millorar …
- Moure el connector SWD cap a la part superior, ja que és més fàcil connectar-lo amb el programador.
- En alimentar el circuit des de la bateria de liti, ho vaig fer soldant un pont i va funcionar bé, tenint en compte que el regulador lineal (LDO) té tensió de caiguda de V si el (Vbat - Vout) inferior al límit de Vdrop el circuit podria no funcionar correctament.
- fent que un botó d'usuari sigui una mica més gran perquè sigui més fàcil de prémer.
- afegint codi CDC USB perquè pugueu comunicar / dissenyar un programa especial per a MAC / PC / Linux.
- Per a l'antena GPS, he utilitzat l'antena activa per a aquest projecte, és possible utilitzar una antena passiva, afegint un amplificador operacional de baix soroll com l'AT2659 (consulteu també l'esquema de la fitxa de dades ATGM332 P.14).
- per a OLED 0.96 'SSD1306, la biblioteca oficial del microxip originalment per a la visualització de 128 * 32, per modificar el codi perquè funcioni amb 128 * 64 heu d'anar a ssd1306.c i modificar el codi (comproveu la imatge).
Recomanat:
Com afegir una pantalla de tinta electrònica al vostre projecte: 12 passos (amb imatges)
Com afegir una pantalla de tinta electrònica al vostre projecte: molts projectes impliquen el control d'algun tipus de dades, com ara dades ambientals, sovint utilitzant un Arduino per al control. En el meu cas, volia controlar el nivell de sal del descalcificador. És possible que vulgueu accedir a les dades a través de la vostra xarxa domèstica
Monitorització senzilla de la qualitat de l'aire amb pantalla LCD TFT: Ameba Arduino: 3 passos
Supervisió senzilla de la qualitat de l’aire amb pantalla TFT LCD: Ameba Arduino: Introducció Ara que la majoria de la gent es queda a casa per evitar un contacte estret amb el potencial portador del virus COVID-19, la qualitat de l’aire es converteix en un factor important per al benestar de les persones, especialment als països tropicals on utilitzar aire condicionat és imprescindible durant el dia
Sistema de monitorització Raspberry Pi mitjançant mòdul de pantalla OLED: 5 passos
Sistema de monitorització de Raspberry Pi mitjançant el mòdul de pantalla OLED: en aquest tutorial explicaré com configurar un mòdul de pantalla OLED de 0,96 polzades per mostrar la informació del sistema de Raspberry Pi 4 Model B mitjançant la seva interfície I2C
Selecció d'un motor de pas i d'un controlador per a un projecte de pantalla d'ombra automatitzada Arduino: 12 passos (amb imatges)
Selecció d’un motor de pas i controlador per a un projecte de pantalla d’ombra automatitzada Arduino: en aquest manual, passaré pels passos que he fet per seleccionar un motor de pas i un controlador per a un prototip de projecte de pantalla d’ombra automatitzada. Les pantalles d’ombra són els populars i econòmics models Coolaroo de maneta manual, i volia substituir t
Projecte de tauler de puntuació amb pantalla LED P10 mitjançant DMD: 6 passos (amb imatges)
Projecte de tauler de puntuació amb pantalla LED P10 mitjançant DMD: sovint ens trobem en un estadi de futbol; hi ha un tauler LED gegant que serveix de marcador. Així també en altres camps esportius, també sovint coneixem el marcador de la pantalla de LED. Tot i que no és possible, també hi ha un camp que encara ens segueix