SeeedStudio XIAO用L76K GNSSモジュール入門

概要
SeeedStudio XIAO用L76K GNSSモジュールは、すべてのXIAO開発ボードと互換性のあるマルチGNSS(全球航法衛星システム)モジュールです。GPS、BeiDou(BDS)、GLONASS、QZSSシステムをサポートし、マルチシステム組み合わせまたは単一システム独立測位が可能です。また、AGNSS機能をサポートし、低ノイズアンプと音響表面フィルターを内蔵し、高速、正確、高性能な優れた測位体験を提供します。
このモジュールには、GPS L1 C/A、BeiDou B1、GLONASS L1帯域をカバーする高性能アクティブGNSSアンテナが付属しています。設計には、測位時の1PPS出力を示す小さな明るい緑色LEDも含まれています。
特徴
- 受信性能向上: 低ノイズアンプと弾性表面波フィルターを内蔵し、感度向上とノイズ低減を実現
- 高精度: 32/72チャンネル、-162dBm追跡、-160dBm再捕獲感度
- 省エネルギー: 41mA追跡/捕獲、360µAスタンバイ
- マルチGNSSシステム: Quectel L76Kを搭載し、GPS、BeiDou、GLONASS、QZSSをサポート
- セラミックアンテナ: 信号受信を強化し、従来のアンテナより優秀
仕様
項目 | 詳細 |
---|---|
GNSS帯域 | GPS L1 C/A: 1575.42MHz GLONASS L1: 1602MHz BeiDou B1: 1561.098MHz |
チャンネル | 32追跡ch/72捕獲ch |
TTFF(初回測位時間) | コールドスタート: 30s(AGNSS無し)、5.5s(GNSS有り) ホットスタート: 5.5s(AGNSS無し)、2s(AGNSS有り) |
感度 | 自動捕獲: -148dBm 追跡: -162dBm 再捕獲: -160dBm |
精度 | 位置: 2.0m CEP 速度: 0.1m/s 加速度: 0.1m/s² タイミング: 30ns |
UARTインターフェース | ボーレート: 9600~115200bps(デフォルト9600bps) 更新レート: 1Hz(デフォルト)、5Hz(最大) プロトコル: NMEA 0183、CASIC独自プロトコル |
アンテナ | タイプ: アクティブアンテナ 動作周波数: 1559–1606MHz 同軸ケーブル: RF1.13 長さ=10cm ケーブルコネクタ: U.FL プラグ RA |
消費電流(アクティブアンテナ使用時) | 自動捕獲: 41mA 追跡: 41mA スタンバイ: 360uA |
寸法 | 18mm x 21mm |
ハードウェア概要
開始する前に、以下の図を参照してSeeedStudio XIAO用L76K GNSSモジュールのピン設計を理解し、モジュールの機能の理解を促進することができます。

はじめに
ハードウェアの準備
L76K GNSSモジュールの機能を十分に体験するために、XIAOシリーズのマザーボードとの組み合わせをお勧めします。以下のXIAOモデルのいずれもL76K GNSSモジュールとの使用に対応しています。
Seeed Studio XIAO SAMD21 | Seeed Studio XIAO RP2040 | Seeed Studio XIAO nRF52840 (Sense) | Seeed Studio XIAO ESP32C3 | Seeed Studio XIAO ESP32S3 (Sense) |
---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
このモジュールをXIAOマザーボードで使用する前に、モジュールにヘッダーソケットを取り付け、アクティブGNSSアンテナをモジュールに接続する必要があります。XIAOに接続する際は、モジュールの取り付け方向に特に注意してください。逆向きに差し込まないでください。そうしないとモジュールやXIAOを焼損する可能性があります。

モジュールの取り付け方向に特に注意してください。逆向きに差し込まないでください。そうしないとモジュールやXIAOを焼損する可能性があります。
ソフトウェアの準備
SeeedStudio XIAO用L76K GNSSモジュールを使用するには、XIAOシリーズをプログラムする必要があります。推奨されるプログラミングツールはArduino IDEで、XIAOのArduino環境を設定し、オンボードパッケージを追加する必要があります。
Arduinoを初めて使用する場合は、Getting Started with Arduinoを参照することを強くお勧めします。
ステップ1. お使いのオペレーティングシステムに応じて、Arduino IDEの安定版をダウンロードしてインストールする
ステップ2. Arduinoアプリケーションを起動する
ステップ3. 使用するXIAO用にArduino IDEを設定する
-
後のルーチンでSeeed Studio XIAO SAMD21を使用したい場合は、**このチュートリアル**を参照して追加を完了してください。
-
後のルーチンでSeeed Studio XIAO RP2040を使用したい場合は、**このチュートリアル**を参照して追加を完了してください。
-
後のルーチンでSeeed Studio XIAO nRF52840を使用したい場合は、**このチュートリアル**を参照して追加を完了してください。
-
後のルーチンでSeeed Studio XIAO ESP32C3を使用したい場合は、**このチュートリアル**を参照して追加を完了してください。
-
後のルーチンでSeeed Studio XIAO ESP32S3を使用したい場合は、**このチュートリアル**を参照して追加を完了してください。
ステップ4. ArduinoにTinyGPSPlusライブラリを追加する
まず、Arduino IDEで最新版のTinyGPSPlusライブラリを検索してダウンロードする必要があります。

アプリケーションデモ
例1: GNSSデータの読み取りと表示
ハードウェアとソフトウェアの準備ができたら、最初のサンプルプログラムのアップロードを開始します。L76K GNSSモジュールは電源投入後、1秒ごとにシリアルポート経由でGNSS情報を出力します。この例では、TinyGPSPlusライブラリを使用してモジュールから受信したNMEAセンテンスを解析し、緯度、経度、時刻を含む結果をArduino IDEのシリアルモニターに出力します。
ソースコードは以下の通りです:
#include <TinyGPSPlus.h>
#include <SoftwareSerial.h>
/*
This sample sketch demonstrates how to use L76K GNSS Module on SeeedStudio XIAO.
*/
static const int RXPin = D7, TXPin = D6;
static const uint32_t GPSBaud = 9600;
// The TinyGPSPlus object
TinyGPSPlus gps;
// The serial connection to the GNSS module
SoftwareSerial ss(RXPin, TXPin);
void setup() {
Serial.begin(115200);
#ifdef ARDUINO_SEEED_XIAO_RP2040
pinMode(D2,OUTPUT);
digitalWrite(D2,1);
pinMode(D0,OUTPUT);
digitalWrite(D0,1);
#endif
ss.begin(GPSBaud);
Serial.println(F("DeviceExample.ino"));
Serial.println(F("A simple demonstration of TinyGPSPlus with L76K GNSS Module"));
Serial.print(F("Testing TinyGPSPlus library v. "));
Serial.println(TinyGPSPlus::libraryVersion());
Serial.println(F("by Mikal Hart"));
Serial.println();
}
void loop() {
// This sketch displays information every time a new sentence is correctly encoded.
while (ss.available() > 0)
if (gps.encode(ss.read()))
displayInfo();
if (millis() > 5000 && gps.charsProcessed() < 10) {
Serial.println(F("No GPS detected: check wiring."));
while (true);
}
}
void displayInfo() {
Serial.print(F("Location: "));
if (gps.location.isValid()) {
Serial.print(gps.location.lat(), 6);
Serial.print(F(","));
Serial.print(gps.location.lng(), 6);
} else {
Serial.print(F("INVALID"));
}
Serial.print(F(" Date/Time: "));
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("INVALID"));
}
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("INVALID"));
}
Serial.println();
}
使用しているXIAOとXIAOが接続されているポート番号を選択し、コンパイルしてアップロードしてください。
L76K GNSSモジュールが良好なGNSS信号を受信できる屋外に設置されていることを確認してください。コードをXIAOにアップロードして数分待つと、シリアルモニターに情報が表示されるはずです。

このコードはTinyGPSPlusライブラリを使用して、シリアル接続を介してL76K GNSSモジュールからデータを読み取り、有効な位置情報と日付/時刻をシリアルモニターに表示します。
設定
例1:LEDの動作を変更する
このセクションでは、シリアル通信を通じて特定の16進数コマンドを送信することで、Arduinoを使用して緑色のLEDを制御する方法を説明します。以下に示す例では、LEDをオフにしてから通常の点滅状態に戻す方法を示しています。
static const int RXPin = D7, TXPin = D6;
static const uint32_t GPSBaud = 9600;
SoftwareSerial SerialGNSS(RXPin, TXPin);
void setup() {
SerialGNSS.begin(GPSBaud);
// Define the byte array to turn the LED off
byte OffState[] = {0xBA, 0xCE, 0x10, 0x00, 0x06, 0x03, 0x40,
0x42, 0x0F, 0x00, 0xA0, 0x86, 0x01, 0x00,
0x00,
0x00, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00,
0xF0,
0xC8, 0x17, 0x08};
// Define the byte array to recover the LED blinking state
byte RecoverState[] = {0xBA, 0xCE, 0x10, 0x00, 0x06, 0x03, 0x40,
0x42, 0x0F, 0x00, 0xA0, 0x86, 0x01, 0x00,
0x03,
0x00, 0x01, 0x05, 0x00, 0x00, 0x00, 0x00,
0xF3,
0xC8, 0x17, 0x08};
// Send the command to turn off the LED.
SerialGNSS.write(OffState, sizeof(OffState));
// Wait for 5 seconds.
delay(5000);
// Send the command to return the LED to blinking.
SerialGNSS.write(RecoverState, sizeof(RecoverState));
}
void loop() {}
詳細については、Quectel_L76K_GNSSのCASICプロトコルメッセージを参照してください。
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;
リソース
- PDF: L76K GNSS Module for Seeed Studio XIAO Schematic
- PDF: Quectel_L76K_GNSS_协议规范_V1.0
- PDF: Quectel_L76K_GNSS_Protocol_Specification_V1.1
- GitHub: Seeed_L76K-GNSS_for_XIAO
トラブルシューティング
Details
充電式電池でXIAOに電力を供給できますか?
いいえ、この文脈での充電式電池は、リアルタイムクロック(RTC)とL76K GNSSモジュールのウォームスタート状態を維持するためにのみ使用されます。XIAOやGNSSモジュールの一般的な動作の主電源として使用することはできません。なぜGNSS情報がシリアルモニターに表示されないのですか?
L76K GNSSモジュールが良好なGNSS信号を受信できる屋外に設置されていることを確認してください。
Details
なぜXIAO RP2040に接続したときにデバイスの緑色のライトが常時点灯するのですか?
この問題を解決するには、D0とD2をハイにプルする必要があります。固定緑色ライトの常時点灯は、デバイスが異常な動作状態に入ったことを示しています。pinMode(D2,OUTPUT);
digitalWrite(D2,1);
pinMode(D0,OUTPUT);
digitalWrite(D0,1);
技術サポート & 製品ディスカッション
弊社製品をお選びいただき、ありがとうございます!お客様の製品体験を可能な限りスムーズにするため、さまざまなサポートを提供しております。異なる好みやニーズに対応するため、複数のコミュニケーションチャネルをご用意しています。