Taula de continguts:

Monitorització GPS amb projecte de pantalla OLED: 5 passos (amb imatges)
Monitorització GPS amb projecte de pantalla OLED: 5 passos (amb imatges)

Vídeo: Monitorització GPS amb projecte de pantalla OLED: 5 passos (amb imatges)

Vídeo: Monitorització GPS amb projecte de pantalla OLED: 5 passos (amb imatges)
Vídeo: Architecture Kata #1 - Разбор с экспертом [Как работает настоящий Solution Architect] #ityoutubersru 2024, Juliol
Anonim
Monitorització GPS amb projecte de pantalla OLED
Monitorització GPS amb projecte de pantalla OLED
Monitorització GPS amb projecte de pantalla OLED
Monitorització GPS amb projecte de pantalla OLED
Monitorització GPS amb projecte de pantalla OLED
Monitorització GPS amb projecte de pantalla OLED
Monitorització GPS amb projecte de pantalla OLED
Monitorització GPS amb projecte de pantalla OLED

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:

  1. Disseny de PCB.
  2. BOM que necessiteu per muntar el PCB
  3. Consulta ràpida del programari i del codi en si i prova del maquinari i el programari.
  4. 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

Disseny de PCB amb Eagle
Disseny de PCB amb Eagle
Disseny de PCB amb Eagle
Disseny de PCB amb Eagle
Disseny de PCB amb Eagle
Disseny de PCB amb Eagle
Disseny de PCB amb Eagle
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

Soldar el PCB
Soldar el PCB
Soldar el PCB
Soldar el PCB
Soldar el PCB
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

Image
Image
Programari … Funcionalitat … resultats
Programari … Funcionalitat … resultats
Programari … Funcionalitat … resultats
Programari … Funcionalitat … resultats

El programari es dividirà en 4 parts:

  1. USART per comunicar-se amb el mòdul GPS ATGM332.
  2. SPI per comunicar-se amb OLED.
  3. USB CDC.
  4. 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:

  1. GPGGA
  2. GPRMC
  3. 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:

  1. LED verd connectat a PA06 i parpellejarà si hi ha un valor de geolocalització vàlid.
  2. LED taronja connectat a PA07 i parpellejarà un cop per segon si no hi ha una geolocalització vàlida.
  3. 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

Funda impresa en 3D … Una mena de
Funda 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 …

Coses a millorar …
Coses a millorar …
Coses a millorar …
Coses a millorar …
Coses a millorar …
Coses a millorar …
  1. Moure el connector SWD cap a la part superior, ja que és més fàcil connectar-lo amb el programador.
  2. 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.
  3. fent que un botó d'usuari sigui una mica més gran perquè sigui més fàcil de prémer.
  4. afegint codi CDC USB perquè pugueu comunicar / dissenyar un programa especial per a MAC / PC / Linux.
  5. 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).
  6. 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: