Tabla de contenido:

Monitoreo GPS con proyecto de pantalla OLED: 5 pasos (con imágenes)
Monitoreo GPS con proyecto de pantalla OLED: 5 pasos (con imágenes)

Video: Monitoreo GPS con proyecto de pantalla OLED: 5 pasos (con imágenes)

Video: Monitoreo GPS con proyecto de pantalla OLED: 5 pasos (con imágenes)
Video: SERIE HMI #0: INTERFAZ GRAFICA DE CONTROL - ARDUINO - ESP32 - GUI 2024, Noviembre
Anonim
Monitoreo GPS con proyecto de pantalla OLED
Monitoreo GPS con proyecto de pantalla OLED
Monitoreo GPS con proyecto de pantalla OLED
Monitoreo GPS con proyecto de pantalla OLED
Monitoreo GPS con proyecto de pantalla OLED
Monitoreo GPS con proyecto de pantalla OLED
Monitoreo GPS con proyecto de pantalla OLED
Monitoreo GPS con proyecto de pantalla OLED

Hola a todos, en este artículo rápido compartiré con ustedes mi proyecto: módulo GPS ATGM332D con microcontrolador SAMD21J18 y pantalla SSD1306 OLED 128 * 64, construí una PCB especial para ella en Eagle Autodesk, y la programé usando Atmel studio 7.0 y ASF4. En este artículo compartiré contigo este viaje y los archivos que utilicé si te interesa hacerlo tú mismo.

Ahora, si está programando su MCU / placa de desarrollo usando Arduino, este proyecto debería ser relativamente fácil para usted, pero aquí usaré ASF4 (Advanced software framwork 4) de Atmel / Microchip, que se basa en el lenguaje C y le daría una idea. para saber cómo leer el mensaje GPS NMEA usando el controlador asíncrono USART (devolución de llamada) y proporcionarle una biblioteca simple que puede usar con cualquier microcontrolador y plataforma diferente simplemente agregue el controlador apropiado que está utilizando para recibir el mensaje del GPS (mensaje NMEA).

Dividiré este artículo en:

  1. Diseño de PCB.
  2. BOM que necesita para ensamblar el PCB
  3. Una mirada rápida al software y al código en sí, y una prueba del hardware y el software.
  4. por último, pero no menos importante, algún punto de mejora para este proyecto.

Encontrarás todo el material relacionado con este proyecto en Github (Aquí)

Paso 1: Diseño de PCB con Eagle

Diseño de PCB con Eagle
Diseño de PCB con Eagle
Diseño de PCB con Eagle
Diseño de PCB con Eagle
Diseño de PCB con Eagle
Diseño de PCB con Eagle
Diseño de PCB con Eagle
Diseño de PCB con Eagle

Este proyecto se basa principalmente en el módulo GPS ATGM332D, un GPS simple de usar ya que solo necesita un par de componentes pasivos para funcionar, y podríamos agregar una batería de respaldo para ahorrar la hora / fecha si apagamos la fuente de alimentación principal del módulo.

y para controlar todas las señales en el circuito, elegí el microcontrolador ATSAMD21J18B, el paquete TQFP64, ya que tiene 128KByte de almacenamiento de memoria de programa y 32KByte de memoria de datos (y tengo muchos de ellos en mi banco de trabajo).

el circuito debe ser alimentado por una fuente USB de 5V, también el USB puede actuar como puerto COM virtual (CDC USB) y puede agregar un código para él si desea comunicarse con el dispositivo a través de USB.

para la pantalla, seleccioné SSD1306 Pantalla OLED de 0.96 'con bus SPI, es pequeña pero es adecuada para el tamaño de PCB que quería, la dimensión de la placa 100x31 mm.

La programación del microcontrolador será a través del programador SWD (yo uso Atmel ICE) y lo conectaré a través del encabezado de pin de 1.27 mm 10p.

También utilicé Fusion360 para obtener una vista 3D de la placa y también puedes ver una imagen renderizada.

Paso 2: Soldar la PCB

Soldar la PCB
Soldar la PCB
Soldar la PCB
Soldar la PCB
Soldar la PCB
Soldar la PCB

Tiene la opción de pedir una plantilla con su PCB, es más fácil aplicar la pasta de soldadura en la placa usando la plantilla, usé placa caliente para soldar los componentes, usar aire caliente también está bien, pero tenga cuidado al soldar el LED ya que son tan sensibles al calor.

soldar la parte inferior es un poco más fácil, ya que solo tiene el cabezal de clavija SWD y la batería de respaldo, que puede soldar con un soldador.

antes de conectar el circuito con cualquier fuente de alimentación USB, compruebe si hay algún cortocircuito.

conecte su antena GPS y asegúrese de soldar su conector correctamente, fijé la antena en la parte inferior de la placa.

Paso 3: Software … Funcionalidad … Resultados

Image
Image
Software … Funcionalidad … Resultados
Software … Funcionalidad … Resultados
Software … Funcionalidad … Resultados
Software … Funcionalidad … Resultados

El software se dividirá en 4 partes:

  1. USART para comunicarse con el módulo GPS ATGM332.
  2. SPI para comunicarse con OLED.
  3. USB CDC.
  4. GPIO para controlar los LED

Primero conecte el conector USB para encender el circuito y luego conecte el cable plano con el conector SWD.

Descargue el código de github (enlace aquí).

para obtener la ubicación geográfica, tiene 3 opciones diferentes de mensajes NMEA:

  1. GPGGA
  2. GPRMC
  3. GPGLL

Usé la oración GPRMC para obtener la ubicación, la hora y la fecha (la hora es 0.0 GMT), por lo que en el código encontrará:

GPRMC. Enable = 1; / * 0 si no es necesario este mensaje * /

GPGGA. Enable = 0; / * 0 si no es necesario este mensaje * /

GPGLL. Enable = 0; / * 0 si no es necesario este mensaje * /

puede habilitarlos todos juntos y leerlos al mismo tiempo para obtener los datos que necesita.

una vez que haya una sentencia GPRMC válida, el GPRMC. Ready se convertirá en 1 y podrá obtener todos los datos disponibles en esta frase, consulte este enlace para ver los datos disponibles en esta frase.

simplemente si Fix es 'A', significa que la ubicación está disponible, si Fix es 'V', significa que la ubicación no está disponible.

observe que ATSAMD21 tiene RTC interno, pero aquí no lo uso y en su lugar uso la hora y la fecha directamente desde el GPS, por lo que si no desea usar la batería de respaldo CR1220, una vez que desconecte la fuente de alimentación USB, lo hará pierde la hora / fecha y, la próxima vez que encienda el circuito, el área de hora / fecha de la pantalla estará vacía hasta que el GPS tenga un valor de hora / fecha válido.

la pantalla le mostrará el estado actual del GPS y mostrará la ubicación geográfica una vez que esté disponible, sin embargo, hay 3 LED en la placa:

  1. LED verde conectado a PA06 y parpadeará si hay un valor de geolocalización válido.
  2. LED naranja conectado a PA07 y parpadeará una vez por segundo si no hay una ubicación geográfica válida.
  3. LED rojo este conectado al pin PPS del Módulo GPS y parpadeará solo cuando haya una señal válida relacionada con la Ubicación.

Resultados

El circuito funcionó muy bien conmigo, obtener la geolocalización del GPS tomó 20-30 segundos al aire libre con vista despejada al cielo y entre edificios sin ningún problema incluso con la antena en la parte inferior del tablero.

Paso 4: Carcasa impresa en 3D … Más o menos

Estuche impreso en 3D … Más o menos
Estuche impreso en 3D … Más o menos

Preparé un estuche simple (soporte más preciso) para este circuito, pero debido a la epidemia de COVID-19 y el bloqueo en el que estoy ahora, no pude alcanzar mi impresora 3d para imprimirlo, así que actualizaré esta sección con stl archivo y fotos para el titular una vez que esté disponible.

Paso 5: Cosas para mejorar …

Cosas para mejorar …
Cosas para mejorar …
Cosas para mejorar …
Cosas para mejorar …
Cosas para mejorar …
Cosas para mejorar …
  1. Mover el conector SWD al lado superior ya que es más fácil conectarlo con su programador.
  2. Al alimentar el circuito con una batería de litio, lo hice soldando un puente y funcionó bien, teniendo en cuenta que el regulador lineal (LDO) tiene voltaje de caída de V si el (Vbat - Vout) es menor que el límite de Vdrop, es posible que el circuito no funcione adecuadamente.
  3. haciendo un botón de usuario un poco más grande para que sea más fácil de presionar.
  4. agregando código USB CDC para que pueda comunicarse / diseñar un programa especial para MAC / PC / linux.
  5. Para la antena GPS, utilicé una antena activa para este proyecto, es posible usar una antena pasiva, agregando un amplificador operacional de bajo ruido como AT2659 (consulte también el esquema en la hoja de datos ATGM332 P.14).
  6. para OLED 0.96 'SSD1306, la biblioteca oficial de microchip originalmente para pantalla de 128 * 32, para modificar el código para que funcione con 128 * 64, debe ir a ssd1306.cy modificar el código (ver la imagen).

Recomendado: