# Unit GPS {docsify-ignore-all} *** :memo:**[概要](#概要)**      :octocat:**[サンプルコード](#サンプルコード)**      :electric_plug:**[回路図](#回路図)**      🛒**[購入リンク](https://www.aliexpress.com/item/M5Stack-Official-GPS-BDS-Mini-Unit-Board-AT6558-MAX2659-with-GROVE-Port-UART-Interface-M5GO-M5Stack/32959837627.html)** ## 概要 **GPS**ユニットは、中科微(Zhongkewei)のナビゲーションチップ**AT6558**と信号増幅チップ**MAX2659**を統合したユニットです。 AT6558は強力な性能を備えた車載レベルのチップで、複数の衛星ナビゲーションシステムをサポートしています。同時に6つの衛星ナビゲーションシステムからGNSS信号を受信することができ、これにより、正確なグローバル位置情報を把握することができます。市街地はもちろん、渓谷や高架下においても位置情報を取得することが可能です。このモジュールは、車両監視、バス情報、カーナビゲーションなどの製品に幅広く利用されています。M5CoreとGrove Cポートで接続します。 シリアルパラメータ:ボーレート(デフォルト:9600bps)、スタートビット(1ビット)、ストップビット(1ビット)、チェックディジット(ノーパリティ) ## 特徴 - 仕様 - 内蔵RF, base band, flash - 動作温度:-40~85℃ - 位置決め精度:2.5メートル(CEP50、広場) - チャンネル:56 - BDS / GPS / GLONASS衛星ナビゲーションシステムの単一測位、任意の組合せでのマルチ測位をサポート - D-GNSS差動ポジショニングをサポート - 測位更新周波数:1〜10Hz - 最大高さ:1800メートル - 最高速度:515 m / s - 最大加速度:≦4 G - 消費電力 - BDS / GPSデュアルモード連続動作:<23mA(@ 3.3V) - スタンバイ:<10uA(@ 3.3V) - 感度 - トラッキング:-162dBm - キャプチャー:-148dBm - コールドスタート:-146dBm - 起動時間 - コールドスタート:35秒 - ウォームスタート:32秒 - ホットスタート:1秒 - 動作温度: -40〜85°C - LEGO互換ホール ## パッケージ内容 - 1x GPSユニット - 1x Groveケーブル ## アプリケーション - 自動車ナビゲーションシステム - 高精度タイミング同期 - インテリジェント通報システム ## 関連リンク - **[公式ビデオ](https://i.youku.com/i/UNjE1ODA2MzE0OA==?spm=a2hzp.8253869.0.0)** - **[フォーラム](http://forum.m5stack.com/)** - **[データシート]** - [AT6558](http://www.icofchina.com/d/file/xiazai/2016-12-05/b1be6f481cdf9d773b963ab30a2d11d8.pdf) - [MAX2659](https://datasheets.maximintegrated.com/en/ds/MAX2659.pdf) - **[TinyGPS++ ライブラリ](http://arduiniana.org/libraries/tinygpsplus/)** - **[CASIC マルチモード衛星ナビゲーション受信機 プロトコル仕様](http://www.icofchina.com/d/file/xiazai/2017-05-02/ea0cdd3d81eeebcc657b5dbca80925ee.pdf)** - **[GnssToolKit3(Windows版)](http://www.icofchina.com/d/file/xiazai/2018-05-23/2b29a8da746eec0ef1dcd9deae895298.zip)** ## サンプルコード ### 1. Arduino IDE *完全な `GPSRaw.ino`のソースコードは[こちら](https://github.com/m5stack/M5-ProductExampleCodes/tree/master/Unit/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`を書き込んだら、シリアルターミナルで情報を確認することができます。 ``` $GPGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*02 $BDGSA,A,1,,,,,,,,,,,,,25.5,25.5,25.5*13 $GPGSV,1,1,00*79 $BDGSV,1,1,00*68 $GNRMC,,V,,,,,,,,,,M*4E $GNVTG,,,,,,,,,M*2D $GNZDA,,,,,,*56 $GPTXT,01,01,01,ANTENNA OPEN*25 ``` **分析:** **$GNRMC,063012.000,A,2234.87140,N,11357.22414,E,0.69,171.74,240419,,,A*7A** UTC 時間 06 时 30 分 12 秒,北緯 22.58119°、東経 113.95357°、日時 2019 年 04 月 24 日 ?> 緯度と経度はdddmm.mmmmmの分を60で割って、ddd.dddddに変換しています。例えば2234.87140なら34.87140 / 60 = 0.58119 なので22.58119になります。 ## 回路図 ### ピンマップ
M5Core(GROVE C)U2RXD(GPIO16)U2TXD(GPIO17)5VGND
GPS UnitSignal Transmitter(TXD)Signal Receiver(RXD)5VGND