# GPSモジュール {docsify-ignore-all} *** :memo:**[概要](#概要)**      :octocat:**[サンプルコード](#サンプルコード)**      :electric_plug:**[回路図](#回路図)**      🛒**[購入リンク](https://www.aliexpress.com/item/M5Stack-Official-Stock-Offer-GPS-Module-with-Internal-External-Antenna-MCX-Interface-IoT-Development-Board-for/32840757048.html)** ## 概要 **GPS**モジュールはu-bloxのNEO-M8Nを採用した小型のGPSモジュールです。 M5Coreにスタックしたら[UIFlow](http://flow.m5stack.com)、[Arduino](http://www.arduino.cc)または[MicroPython](http://www.micropython.org)を利用してプログラムすることができます。プログラムを書き込んだら、外や窓際に置いているだけで、GPSモジュールはグローバルポジション情報を取得することができます。 M5Coreの電源を入れて。[サンプル](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Module/GPS/Arduino)を書き込んだら、スクリーンに串口GPSモジュールが受け取った情報を表示します。 NEO-M8Nは、複数のGNSSシステム(Beidou、Galileo、GLONASS、GPS / QZSS)をサポートする72チャンネルの[u-blox](https://www.u-blox.com)M8 GNSSエンジンを統合しており、3つのGNSSシステムから同時にデータを受信できます。 GPSモジュールはデフォルトでは**UART2(GPIO16, GPIO17)**でM5Coreと通信します。 ([u-center-just-for-Windows](https://www.u-blox.com/en/product/u-center-windows)を通して、ボーレートを変更可能) GPIO16、GPIO17を他の目的に使用する場合は、GPSモジュールにデフォルトで接続されているTXDとRXDをカッターで切断し、ハンダまたは0Ω抵抗を使用してそれらを別のポート(GPIO3、GPIO13、GPIO1、GPIO5)に接続する必要があります。 *シリアル接続:ボーレート(デフォルト 9600bps)、データビット数 (8ビット)、スタートビット(1ビット)、ストップビット(1ビット)、 パリティ(なし)* !> **M5Stack Fire**ではPSRAMとの接続にGPIO16/17を使用しており、デフォルトではGPSモジュールのTXD/RXD(GPIO16, GPIO17)と重複しています。その為、M5Stack FireからGPSモジュールを利用する場合は、GPSモジュール上のTXDとRXDのデフォルトパターンをカッターなどでカットし、半田や0Ω抵抗を用いて別のポートにつなぎ変える必要があります。 ## 特徴 - NEO-G8N搭載 - 動作電圧: 2.7 ~ 3.6 - 動作温度: -40 ~ 80°C - アンテナタイプ: 内蔵または外付けアンテナを選択可能 - 3つのGNSSシステムデータを受信可能 - 水平位置精度:最小 2.5m - u-center-just-for-Windowsによる簡単なファームウェアアップグレードのためのフラッシュ内蔵 - 高受信感度 (–167 dBm) - 最大 3 GNSS 同時受信可能(GPS, Galileo, GLONASS, BeiDou/COMPASS) - NEO‐7およびNEO‐6シリーズとの下位互換性 ## パッケージ内容 - 1x GPSモジュール - 1x 外付けアンテナ ## アプリケーション - 子供向けGPSブレスレット - GPSによる物流トラッキングシステム ## 関連リンク - **[公式ビデオ](https://www.youtube.com/channel/UCozgFVglWYQXbvTmGyS739w)** - **[フォーラム](http://forum.m5stack.com/)** - **データシート** - [NEO-M8N](https://www.u-blox.com/sites/default/files/NEO-M8-FW3_DataSheet_%28UBX-15031086%29.pdf) - **[GPS情報](https://www.u-blox.com/zh/product/neo-m8-series)** - **[TinyGPS++ライブラリ公式](http://arduiniana.org/libraries/tinygpsplus/)** - **[u-bloxプロトコルマニュアル](https://www.u-blox.com/sites/default/files/products/documents/u-blox8-M8_ReceiverDescrProtSpec_%28UBX-13003221%29_Public.pdf)** ## サンプルコード ### Arduino IDE *完全なソースコードは[こちら](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Module/GPS/Arduino)。* ```arduino #include /* By default, GPS is connected with M5Core through UART2 */ HardwareSerial GPSRaw(2); void setup() { M5.begin(); GPSRaw.begin(9600);// GPS init Serial.println("hello"); termInit(); } void loop() { // put your main code here, to run repeatedly: if(Serial.available()) { int ch = Serial.read(); GPSRaw.write(ch); } if(GPSRaw.available()) { int ch = GPSRaw.read();// read GPS information Serial.write(ch); termPutchar(ch); } } ``` `GPSRaw.ino`を実行後、シリアルターミナルには以下の情報が表示されます。 **プロトコル:[u-bloxプロトコルマニュアル](https://www.u-blox.com/sites/default/files/products/documents/u-blox8-M8_ReceiverDescrProtSpec_%28UBX-13003221%29_Public.pdf)を参考にしてください。以下は、NMEAプロトコルでxxRMCメッセージを取得する例です。** ## 回路図