ATOM EchoにGPSユニット(AT6558)を繋げて、シリアル通信でGPS情報を取ってこようとしたところ、ATOM Echoがリセットしまくるという問題が起きて死ぬほど苦戦した。 ATOM EchoとGPSユニットを繋げようとしてる人はあんまり見つからなかったので、備忘録として残す。
やろうとしたこと
上記のようにATOM EchoからGrove端子を使ってGPS Unit(AT6558)を繋げて、UART通信でGPS情報を入手して、シリアルモニターに表示させようとした
起きた現象
- M5 Stackの公式からサンプルコードを引っ張ってきて、ディスプレイに関するコードを消して実行したところ....
#include <M5Unified.h> HardwareSerial GPSRaw(2); void setup() { M5.begin(); M5.Power.begin(); Serial.begin(9600); GPSRaw.begin(9600); } void loop() { // put your main code here, to run repeatedly: if (GPSRaw.available()) { int ch = GPSRaw.read(); Serial.write(ch); } }
- 以下のようなエラーメッセージが多発した。ATOM Echoが立ち上がってはリセットしている模様。
rst:0x8 (TG1WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 188777542, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:1184 load:0x40078000,len:13232 load:0x40080400,len:3028 entry 0x400805e4 ets Jun 8 2016 00:22:57 rst:0x8 (TG1WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 188777542, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:1184 load:0x40078000,len:13232 load:0x40080400,len:3028 entry 0x400805e4 ets Jun 8 2016 00:22:57
原因
- 公式のサンプルではM5 Stack Coreを使っているが、今回はATOM Echoを使ってるのでRXD,TXDのピンを指定してあげなければならなかった。
- なのでシリアル通信の設定をしているところを以下のように変えた。
GPSRaw.begin(9600,SERIAL_8N1,32, 26);
- GPSユニットとATOM EchoをGrove端子で繋げるとTXD=32ピン、RXD=26ピンに繋がるので、第3引数(RXDピン)を32, 第4引数(TXDピン)を26にしてあげる。実際の接続とは逆なので注意!私はそこに気づかず3時間溶かしました。
結果
- 動いたコード
/*Press button to record,released button to playback*/ #include <M5Unified.h> HardwareSerial GPSRaw(2); void setup() { M5.begin(); M5.Power.begin(); Serial.begin(9600); GPSRaw.begin(9600,SERIAL_8N1,32, 26); } void loop() { if (GPSRaw.available()){ int ch = GPSRaw.read(); Serial.write(ch); } delay(100); }
- 上記のコードを書き込んでやるとシリアルモニターに以下のような形でGPS情報が表示された。解決。
$GNRMC,101228.000,V,,,,,,,150224,,,,,,,,,,N*2E $GNZDA,101247.000,15,02,2024,00,00*4B $GPTXT,01,01,01,ANTENNA OPEN*25 $GNGGA,101248.000,,,,,0,00,6.1,,,,,,*41 $GNGLL,,,,,101248.000,V,N*6A $GPGSA,A,1,,,,,,,,,,,,,8.6,6.1,6.,,,,,,,N*2E $GNZDA,101302.000,15,02,2024,00,00*4B $GPTXT,01,01,01,ANTENNA OPEN*25 $GNGGA,101303.000,,,,,0,00,6.1,,,,,,*4F $GNGLL,,,,,101303.000,V,N*6SA,A,1,,,,,,,,,,,,,8.6,6.1,6.0*3F $BDGSA,A,1,,,,,,,,,,,,,8.6,6.1,6.0*2E
感想
- まーじでしょうもないところで一日を無駄にしました。精進。