Tabla de contenido:
- Paso 1: Diseño de PCB con Eagle
- Paso 2: Soldar la PCB
- Paso 3: Software … Funcionalidad … Resultados
- Paso 4: Carcasa impresa en 3D … Más o menos
- Paso 5: Cosas para mejorar …
Video: Monitoreo GPS con proyecto de pantalla OLED: 5 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
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:
- Diseño de PCB.
- BOM que necesita para ensamblar el PCB
- Una mirada rápida al software y al código en sí, y una prueba del hardware y el software.
- 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
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
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
El software se dividirá en 4 partes:
- USART para comunicarse con el módulo GPS ATGM332.
- SPI para comunicarse con OLED.
- USB CDC.
- 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:
- GPGGA
- GPRMC
- 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:
- LED verde conectado a PA06 y parpadeará si hay un valor de geolocalización válido.
- LED naranja conectado a PA07 y parpadeará una vez por segundo si no hay una ubicación geográfica válida.
- 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
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 …
- Mover el conector SWD al lado superior ya que es más fácil conectarlo con su programador.
- 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.
- haciendo un botón de usuario un poco más grande para que sea más fácil de presionar.
- agregando código USB CDC para que pueda comunicarse / diseñar un programa especial para MAC / PC / linux.
- 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).
- 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:
Macintosh con pantalla táctil - Mac clásica con un iPad Mini para la pantalla: 5 pasos (con imágenes)
Macintosh con pantalla táctil | Mac clásico con un iPad Mini para la pantalla: esta es mi actualización y diseño revisado sobre cómo reemplazar la pantalla de un Macintosh antiguo con un iPad mini. Este es el sexto de estos que he hecho a lo largo de los años y estoy muy contento con la evolución y el diseño de este. En 2013, cuando hice
Monitoreo simple de la calidad del aire con pantalla LCD TFT: Ameba Arduino: 3 pasos
Monitoreo simple de la calidad del aire con pantalla LCD TFT - Ameba Arduino: Introducción Ahora que la mayoría de las personas se quedan en casa para evitar el contacto cercano con un posible portador del virus COVID-19, la calidad del aire se convierte en un factor importante para el bienestar de las personas, especialmente en los países tropicales donde usar aire acondicionado es imprescindible durante el da
Sistema de monitoreo Raspberry Pi a través del módulo de pantalla OLED: 5 pasos
Sistema de monitoreo Raspberry Pi a través del módulo de pantalla OLED: en este tutorial explicaré cómo configurar el módulo de pantalla OLED de 0.96 pulgadas para mostrar información del sistema de Raspberry Pi 4 Modelo B usando su interfaz I2C
Pantalla LCD I2C / IIC - Use una pantalla LCD SPI para la pantalla LCD I2C usando el módulo SPI a IIC con Arduino: 5 pasos
Pantalla LCD I2C / IIC | Use una pantalla LCD SPI para la pantalla LCD I2C usando el módulo SPI a IIC con Arduino: Hola a todos, ya que una pantalla LCD SPI 1602 normal tiene demasiados cables para conectar, por lo que es muy difícil conectarlo con arduino, pero hay un módulo disponible en el mercado que puede Convierta la pantalla SPI en la pantalla IIC, por lo que solo necesita conectar 4 cables
Proyecto de tablero de puntuación con pantalla LED P10 usando DMD: 6 pasos (con imágenes)
Proyecto de tablero de puntuación con pantalla LED P10 usando DMD: A menudo nos reunimos en un estadio de fútbol; hay un tablero LED gigante que sirve como marcador. Así también en otros campos deportivos, también a menudo conocemos el marcador de la pantalla de visualización hecha de LED. Aunque no es posible, también hay un campo que aún nos sigue