Índice:

Monitoramento GPS com projeto de exibição OLED: 5 etapas (com imagens)
Monitoramento GPS com projeto de exibição OLED: 5 etapas (com imagens)

Vídeo: Monitoramento GPS com projeto de exibição OLED: 5 etapas (com imagens)

Vídeo: Monitoramento GPS com projeto de exibição OLED: 5 etapas (com imagens)
Vídeo: TOF10120 Laser Range Sensor with Arduino to Measure Distance + Oled Display. laser for measurements 2024, Novembro
Anonim
Monitoramento GPS com projeto de display OLED
Monitoramento GPS com projeto de display OLED
Monitoramento GPS com projeto de exibição OLED
Monitoramento GPS com projeto de exibição OLED
Monitoramento GPS com projeto de exibição OLED
Monitoramento GPS com projeto de exibição OLED
Monitoramento GPS com projeto de display OLED
Monitoramento GPS com projeto de display OLED

Olá a todos, neste artigo rápido compartilharei com vocês meu projeto: Módulo ATGM332D GPS com Microcontrolador SAMD21J18 e display SSD1306 OLED 128 * 64, construí uma placa de circuito impresso especial para ele no Eagle Autodesk e programei usando Atmel studio 7.0 e ASF4. neste artigo compartilharei com vocês essa jornada e os arquivos que usei se você tiver interesse em fazê-lo sozinho.

Agora, se você está programando seu MCU / placa de desenvolvimento usando Arduino, este projeto deve ser relativamente fácil para você, mas aqui vou usar ASF4 (Advanced software framwork 4) da Atmel / Microchip que é baseado na linguagem C e lhe daria uma ideia para saber como ler a mensagem GPS NMEA usando o driver assíncrono USART (retorno de chamada) e fornecer uma biblioteca simples que você pode usar com qualquer microcontrolador e plataforma diferente, basta adicionar o driver apropriado que você está usando para receber a mensagem do GPS (mensagem NMEA).

Vou dividir este artigo em:

  1. Design de PCB.
  2. BOM que você precisa para montar o PCB
  3. Dê uma olhada rápida no software e no próprio código e faça um teste para o hardware e o software.
  4. por último, mas não menos importante, algum ponto de melhoria para este projeto.

Você encontrará todo o material relacionado a este projeto noGithub (aqui)

Etapa 1: Projeto de PCB usando Eagle

Projeto de PCB usando Eagle
Projeto de PCB usando Eagle
Projeto de PCB usando Eagle
Projeto de PCB usando Eagle
Projeto de PCB usando Eagle
Projeto de PCB usando Eagle
Projeto de PCB usando Eagle
Projeto de PCB usando Eagle

Este projeto é baseado principalmente em torno do Módulo GPS ATGM332D, GPS simples de usar, pois só precisa de alguns componentes passivos para funcionar, e poderíamos adicionar uma bateria de backup para economizar a hora / data se desligarmos a fonte de alimentação principal do módulo.

e para controlar todos os sinais no circuito, usei o microcontrolador ATSAMD21J18B, pacote TQFP64, uma vez que tem 128KByte de armazenamento de memória de programa e 32KByte de memória de dados (e tenho muitos deles em minha bancada).

o circuito deve ser alimentado por fonte USB 5V, também a USB pode atuar como porta COM virtual (CDC USB) e você pode adicionar um código para ela se quiser se comunicar com o dispositivo via USB.

para o display eu selecionei SSD1306 0,96 'display OLED com barramento SPI, é pequeno mas é o adequado para o tamanho de PCB que eu queria, a dimensão da placa 100x31 mm.

A programação do Microcontrolador será através do programador SWD (eu uso Atmel ICE) e conectarei através de um conector de pino de 1,27mm 10p.

também usei Fusion360 para obter uma visão 3D para a placa e você pode ver algumas imagens renderizadas para ela também.

Etapa 2: Soldando o PCB

Soldando o PCB
Soldando o PCB
Soldando o PCB
Soldando o PCB
Soldando o PCB
Soldando o PCB

Você tem a opção de pedir um estêncil com o seu PCB, é mais fácil aplicar a pasta de solda na placa usando o estêncil, usei uma placa quente para soldar os componentes, usar ar quente também está OK, mas tenha cuidado ao soldar o LED, pois eles são tão sensíveis ao calor.

soldar o lado inferior é um pouco mais fácil, pois ele tem apenas o conector do pino SWD e a bateria de backup, que você pode soldar usando o ferro de solda.

antes de conectar o circuito a qualquer fonte de alimentação USB, verifique se há curto-circuito.

conecte sua antena GPS e certifique-se de soldar o conector corretamente, eu fixei a antena na parte inferior da placa.

Etapa 3: Software … Funcionalidade … resultados

Image
Image
Software … Funcionalidade … resultados
Software … Funcionalidade … resultados
Software … Funcionalidade … resultados
Software … Funcionalidade … resultados

O software será dividido em 4 partes:

  1. USART para se comunicar com o módulo GPS ATGM332.
  2. SPI para se comunicar com OLED.
  3. USB CDC.
  4. GPIO para controlar LEDs

primeiro conecte o conector USB para ligar o circuito e, em seguida, conecte o cabo de fita com o conector SWD.

Baixe o código do github (link aqui).

para obter a geolocalização, você tem 3 opções diferentes de mensagens NMEA:

  1. GPGGA
  2. GPRMC
  3. GPGLL

Usei a frase GPRMC para obter a localização, hora e data (hora é 0,0 GMT), portanto, no código você encontrará:

GPRMC. Enable = 1; / * 0 se não houver necessidade desta mensagem * /

GPGGA. Enable = 0; / * 0 se não houver necessidade desta mensagem * /

GPGLL. Enable = 0; / * 0 se não houver necessidade desta mensagem * /

você pode ativá-los todos juntos e lê-los ao mesmo tempo, obter os dados de que precisa.

assim que houver uma frase GPRMC válida, theGPRMC. Ready passará a ser 1 e você poderá obter todos os dados disponíveis nesta frase, verifique este link para ver os dados disponíveis nesta frase.

simplesmente se Fix for 'A', isso significa que o local está disponível, se Fix for 'V', isso significa que o local não está disponível.

note que ATSAMD21 tem RTC interno, mas aqui eu não uso e em vez disso uso hora e data diretamente do GPS, então se você não quiser usar a bateria de backup CR1220, assim que desligar a fonte de alimentação USB você irá perca a hora / data e, da próxima vez que ligar o circuito, a área da hora / data no visor ficará vazia até que o GPS tenha um valor de hora / data válido.

o display mostrará o status atual do GPS e mostrará a geolocalização assim que estiver disponível, no entanto, existem 3 LEDs na placa:

  1. LED verde conectado ao PA06 e piscará se houver um valor de geolocalização válido.
  2. LED laranja conectado ao PA07 e piscará uma vez por segundo se não houver geolocalização válida.
  3. O LED vermelho está conectado ao pino PPS do Módulo GPS e piscará apenas quando houver um sinal válido relacionado ao Local.

Resultados

O circuito funcionou muito bem comigo, pegar a Geo-localização do GPS levou 20-30 segundos ao ar livre com visão clara para o céu e entre prédios sem nenhum problema mesmo com antena na parte inferior da placa.

Etapa 4: Caixa impressa em 3D … Mais ou menos

Caixa impressa em 3D … mais ou menos
Caixa impressa em 3D … mais ou menos

Preparei uma caixa simples (suporte mais preciso) para este circuito, mas por causa da epidemia de COVID-19 e do bloqueio em que estou agora, não consegui acessar minha impressora 3D para imprimi-lo, então irei atualizar esta seção com stl arquivo e uma foto para o titular assim que estiver disponível.

Etapa 5: Coisas para melhorar …

Coisas para melhorar …
Coisas para melhorar …
Coisas para melhorar …
Coisas para melhorar …
Coisas para melhorar …
Coisas para melhorar …
  1. Mova o conector SWD para o lado superior, pois é mais fácil conectá-lo ao seu programador.
  2. Alimentando o circuito com bateria de lítio, fiz isso soldando um jumper e funcionou bem, lembrando que o regulador Linear (LDO) tem queda de tensão V se (Vbat - Vout) menor que o limite Vdrop o circuito pode não funcionar devidamente.
  3. tornando um botão do usuário um pouco maior para que seja mais fácil pressioná-lo.
  4. adicionando o código USB CDC para que você possa se comunicar / projetar um programa especial para MAC / PC / Linux.
  5. Para a antena GPS, usei antena ativa para este projeto, usando uma antena passiva é possível, adicionando baixo ruído op-Amp como AT2659 (verifique também o esquema no ATGM332 Datasheet P.14).
  6. para OLED 0.96 'SSD1306, a biblioteca oficial do microchip originalmente para exibição de 128 * 32, para modificar o código para funcionar com 128 * 64 você deve ir para ssd1306.ce modificar o código (verifique a imagem).

Recomendado: