今回はM5paperでシリアル通信しようと思います。
えーと、RX、TX… あっUSBシリアルだ!
秋月で買ったGPSモジュールを接続しようと思ってたのですが、
一筋縄ではいきませんでした。結論から言うとUSBシリアルは使わずにPORT.Cを使っています。(G18にモジュールのRXD、G19にモジュールのTXDを接続しました。)
こんな感じでリアルタイムに液晶に経度、緯度、高度を出力します。
コードで気を付けなければならないのが、シリアルピンを18、19に指定する必要があります。
またGPSモジュールからのデータを取得するため、TinyGPSライブラリが必要です。
※
TinyGPS++のサイトのダウンロードアイコンの先の最新のZIPファイルをダウンロードし、Arduino IDEで「.ZIP形式のライブラリをインストール…」でZIPファイルをインストールします。
はじめはSerial1.begin(9600, SERIAL_8N1, RX_PIN, TX_PIN);としていたら、
multiple definition of `Serial'というエラーが出ました。Serial1.beginのSerial1のところがヘッダ等で使われてしまっているという意味みたいです。ss.beginにしたら解決しました。
M5Paperはesp32と違ってシリアルモニタ出力にSerial.begin()が必要ないみたいですね。
M5.begin()が代用なのかな??
他と微妙に違うところのあるM5paperですが、もう少しいじっていろいろ紹介できればと思いまーす。