Skip to main content

Introducción al Modulo L76K GNSS para XIAO de Seeed Studio

Introducción

El módulo L76K GNSS para SeeedStudio XIAO es un módulo Multi-GNSS (Sistema Global de Navegación por Satélite) compatible con todas las placas de desarrollo XIAO, que soporta los sistemas GPS, BeiDou (BDS), GLONASS y QZSS, permitiendo posicionamiento combinado de múltiples sistemas o independiente de un solo sistema. También soporta la función AGNSS, amplificador de bajo ruido integrado y filtro de onda acústica superficial, proporcionando una experiencia de posicionamiento rápida, precisa y de alto rendimiento.

El módulo viene con una antena GNSS activa de alto rendimiento, diseñada para cubrir las bandas GPS L1 C/A, BeiDou B1 y GLONASS L1. El diseño también incluye un pequeño LED verde brillante que indica la salida 1PPS en la fijación.

Características

  • Recepción Mejorada: Amplificador de bajo ruido integrado y filtro de onda acústica superficial para una mejor sensibilidad y reducción de ruido.
  • Alta Precisión: 32/72 canales, sensibilidad de seguimiento de -162dBm, sensibilidad de re-adquisición de -160dBm.
  • Eficiencia Energética: 41mA en seguimiento/adquisición, 360µA en espera.
  • Sistemas Multi-GNSS: Alimentado por Quectel L76K, soportando GPS, BeiDou, GLONASS y QZSS.
  • Antena Cerámica: Recepción de señal mejorada, superior a las antenas tradicionales.

Especificaciones

ArtículoDetalle
GNSS bandsGPS L1 C/A: 1575.42MHz
GLONASS L1: 1602MHz
BeiDou B1: 1561.098MHz
Canales32 tracking ch/72 acquisition ch
TTFF (Time To First Fix)Cold Starts: 30s(w/o AGNSS), 5.5s(w/ GNSS)
Hot Starts: 5.5s(w/o AGNSS), 2s(w/ AGNSS)
SensibilidadAuto-aquisition: -148dBm
Tracking: -162dBm
Re-acquisition: -160dBm
ExactitudPosición: 2.0m CEP
Velocidad: 0.1m/s
Aceleración: 0.1m/s²
Tiempo: 30ns
Interfaz UARTTasa de baudios: 9600~115200bps(9600bps default)
Tasa de actualización: 1Hz(default), 5Hz(Max.)
Protocolo: NMEA 0183, CASIC proprietary protocol
AntenaTipo: Antena activa
Frecuencia operativa: 1559–1606MHz
Coaxial Cable: RF1.13 Length=10cm
Cable Connector: U.FL Plug RA
Consumo de corriente (c/ antena activa)Auto-aquisition: 41mA
Tracking: 41mA
Standby: 360uA
Dimensión18mm x 21mm

Visión General del Hardware

Antes de comenzar, podemos referirnos a las siguientes imágenes para entender el diseño de pines del módulo L76K GNSS para SeeedStudio XIAO, lo que facilitará nuestra comprensión de la función del módulo.

Empezando

Preparación del Hardware

Para experimentar completamente las capacidades del módulo L76K GNSS, recomendamos emparejarlo con una placa base de nuestra serie XIAO. Cualquiera de los siguientes modelos de XIAO sería compatible para usar con el módulo L76K GNSS.

Seeed Studio XIAO SAMD21Seeed Studio XIAO RP2040Seeed Studio XIAO nRF52840 (Sense)Seeed Studio XIAO ESP32C3Seeed Studio XIAO ESP32S3 (Sense)

Antes de usar este módulo en una placa base XIAO, necesitas instalar los conectores de pines en el módulo y conectar la antena GNSS activa al módulo. Al conectarlo a la XIAO, por favor, presta especial atención a la dirección de instalación del módulo. No lo conectes al revés, ya que de lo contrario es probable que se dañe el módulo o la XIAO.

caution

Por favor, presta especial atención a la dirección de instalación del módulo. No lo conectes al revés, ya que de lo contrario es probable que se dañe el módulo o la XIAO.

Preparación del Software

Para usar el módulo L76K GNSS para SeeedStudio XIAO, necesitamos programar la serie XIAO. La herramienta de programación recomendada es el IDE de Arduino, y es necesario configurar el entorno de Arduino para la XIAO y agregar el paquete correspondiente para la placa.

tip

Si es la primera vez que usas Arduino, te recomendamos encarecidamente que consultes Comenzando con Arduino.

Paso 1. Descarga e instala la versión estable del IDE de Arduino según tu sistema operativo.

Paso 2. Inicia la aplicación Arduino

Paso 3. Configura el IDE de Arduino para la XIAO que estás utilizando

  • Si deseas usar Seeed Studio XIAO SAMD21 para los programas posteriores, por favor consulta este tutorial para completar la configuración.

  • Si deseas usar Seeed Studio XIAO RP2040 para los programas posteriores, por favor consulta este tutorial para completar la configuración.

  • Si deseas usar Seeed Studio XIAO nRF52840 para los programas posteriores, por favor consulta este tutorial para completar la configuración.

  • Si deseas usar Seeed Studio XIAO ESP32C3 para los programas posteriores, por favor consulta este tutorial para completar la configuración.

  • Si deseas usar Seeed Studio XIAO ESP32S3 para los programas posteriores, por favor consulta este tutorial para completar la configuración.

Step 4. Add the TinyGPSPlus library to Arduino

First, you need to search and download the latest version of the TinyGPSPlus library in the Arduino IDE.

Demo de Aplicación

Ejemplo 1: Lectura y Visualización de Datos GNSS

Una vez que el hardware y el software estén listos, comenzamos a cargar nuestro primer programa de ejemplo. El módulo L76K GNSS imprime la información GNSS a través del puerto serial cada 1 segundo después de encenderse. En este ejemplo, utilizaremos la biblioteca TinyGPSPlus para analizar las oraciones NMEA recibidas del módulo y mostrar los resultados, incluyendo la altitud, longitud y hora, en el Monitor Serial del IDE de Arduino.

Aquí está el código fuente:

#include <TinyGPSPlus.h>
#include <SoftwareSerial.h>
/*
Este ejemplo demuestra cómo usar el Módulo L76K GNSS en SeeedStudio XIAO.
*/
static const int RXPin = D7, TXPin = D6;
static const uint32_t GPSBaud = 9600;

// El objeto TinyGPSPlus
TinyGPSPlus gps;

// La conexión serial con el módulo GNSS
SoftwareSerial ss(RXPin, TXPin);

void setup() {
Serial.begin(115200);
#ifdef ARDUINO_SEEED_XIAO_RP2040
pinMode(D10,OUTPUT);
digitalWrite(D10,1);
pinMode(D0,OUTPUT);
digitalWrite(D0,1);
#endif
ss.begin(GPSBaud);

Serial.println(F("DeviceExample.ino"));
Serial.println(F("Una demostración simple de TinyGPSPlus con el Módulo L76K GNSS"));
Serial.print(F("Probando la biblioteca TinyGPSPlus v. "));
Serial.println(TinyGPSPlus::libraryVersion());
Serial.println(F("por Mikal Hart"));
Serial.println();
}

void loop() {
// Este sketch muestra información cada vez que una nueva sentencia es correctamente codificada.
while (ss.available() > 0)
if (gps.encode(ss.read()))
displayInfo();

if (millis() > 5000 && gps.charsProcessed() < 10) {
Serial.println(F("No se detectó GPS: verifica el cableado."));
while (true);
}
}

void displayInfo() {
Serial.print(F("Ubicación: "));
if (gps.location.isValid()) {
Serial.print(gps.location.lat(), 6);
Serial.print(F(","));
Serial.print(gps.location.lng(), 6);
} else {
Serial.print(F("INVÁLIDO"));
}

Serial.print(F(" Fecha/Hora: "));
if (gps.date.isValid()) {
Serial.print(gps.date.month());
Serial.print(F("/"));
Serial.print(gps.date.day());
Serial.print(F("/"));
Serial.print(gps.date.year());
} else {
Serial.print(F("INVÁLIDO"));
}

Serial.print(F(" "));
if (gps.time.isValid()) {
if (gps.time.hour() < 10) Serial.print(F("0"));
Serial.print(gps.time.hour());
Serial.print(F(":"));
if (gps.time.minute() < 10) Serial.print(F("0"));
Serial.print(gps.time.minute());
Serial.print(F(":"));
if (gps.time.second() < 10) Serial.print(F("0"));
Serial.print(gps.time.second());
Serial.print(F("."));
if (gps.time.centisecond() < 10) Serial.print(F("0"));
Serial.print(gps.time.centisecond());
} else {
Serial.print(F("INVÁLIDO"));
}

Serial.println();
}

Solo selecciona el modelo de XIAO que estás utilizando y el número de puerto donde se encuentra el XIAO, compila y súbelo.

Asegúrate de que el Módulo L76K GNSS esté colocado en un lugar exterior donde pueda recibir una buena señal GNSS. Sube el código a tu XIAO y espera unos minutos, deberías ver la información mostrada en el monitor serial.

Este código usa la biblioteca TinyGPSPlus para leer datos del módulo L76K GNSS a través de una conexión serial y muestra la información de ubicación válida y la fecha/hora en el monitor serial.

Configuración

Ejemplo 1: Cambiar el comportamiento del LED

Esta sección demuestra cómo controlar un LED verde usando Arduino enviando comandos hexadecimales específicos a través de la comunicación serial. El ejemplo proporcionado a continuación muestra cómo apagar el LED y luego devolverlo a su estado normal de parpadeo.

static const int RXPin = D7, TXPin = D6;
static const uint32_t GPSBaud = 9600;
SoftwareSerial SerialGNSS(RXPin, TXPin);

void setup() {
SerialGNSS.begin(GPSBaud);

// Define el arreglo de bytes para apagar el LED
byte OffState[] = {0xBA, 0xCE, 0x10, 0x00, 0x06, 0x03, 0x40,
0x42, 0x0F, 0x00, 0xA0, 0x86, 0x01, 0x00,
// resaltar-inicio
0x00,
// resaltar-fin
0x00, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00,
// resaltar-inicio
0xF0,
// resaltar-fin
0xC8, 0x17, 0x08};

// Define el arreglo de bytes para recuperar el estado de parpadeo del LED
byte RecoverState[] = {0xBA, 0xCE, 0x10, 0x00, 0x06, 0x03, 0x40,
0x42, 0x0F, 0x00, 0xA0, 0x86, 0x01, 0x00,
// resaltar-inicio
0x03,
// resaltar-fin
0x00, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00,
// resaltar-inicio
0xF3,
// resaltar-fin
0xC8, 0x17, 0x08};

// Enviar el comando para apagar el LED.
SerialGNSS.write(OffState, sizeof(OffState));
// Esperar 5 segundos.
delay(5000);
// Enviar el comando para devolver el LED al parpadeo.
SerialGNSS.write(RecoverState, sizeof(RecoverState));
}

void loop() {}
info

Para obtener detalles, consulta los mensajes del protocolo CASIC del Quectel_L76K_GNSS.

struct CASIC_Messages {  
uint16_t header; // 0xBA, 0xCE
uint16_t len; // 0x10, 0x00
uint8_t class; // 0x06
uint8_t id; // 0x03
uint8_t* payload; // 0x40, 0x42, 0x0F, 0x00, 0xA0, 0x86, 0x01, 0x00, ->8
// 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00, ->8
uint8_t checksum; // 0xF0,0xC8, 0x17, 0x08
} L76KStruct;

Recursos

Solución de problemas

¿Puede la batería recargable alimentar el XIAO?
No, la batería recargable en este contexto se utiliza exclusivamente para el reloj en tiempo real (RTC) y para mantener un estado de inicio en caliente en el módulo L76K GNSS. No puede usarse como fuente de alimentación primaria para el XIAO ni para las operaciones generales del módulo GNSS.
¿Por qué no se muestra la información GNSS en el monitor serial?

Asegúrate de que el módulo L76K GNSS esté colocado en un lugar al aire libre donde pueda recibir buenas señales GNSS.

¿Por qué la luz verde del dispositivo permanece encendida constantemente cuando se conecta al XIAO RP2040?
Para solucionar este problema, debes activar los pines D0 y D10. La luz verde fija indica que el dispositivo ha entrado en un estado de funcionamiento anormal.
pinMode(D10,OUTPUT);
digitalWrite(D10,1);
pinMode(D0,OUTPUT);
digitalWrite(D0,1);

Soporte Técnico y Discusión de Productos

¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte y asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para adaptarnos a tus diferentes preferencias y necesidades.

Loading Comments...