RTK受信機 ZED-F9P on M5Stackの試作(その1)

現在(2019年9月)、ZED-F9Pを使うには評価、開発用ボードを購入し、パソコンに接続して使うのが一般的です。
最初のテストとしてはそれで問題ないのですが、少し色々な状況でテストや使用する場合、パソコン無しで設定やデータ保存ができると便利です。
それで、ディスプレイとボタン、スピーカが利用できる出来合いの製品を探したところ、M5Stackという、モジュールを積み重ねて、欲しい装置が作製できる製品がありました。
今回、このM5Stack用のZED-F9P基板を作製したところ、いい結果が得られたのでご紹介します。

1.M5Stackとは

次の画像はM5StackのCoreと呼ばれるモジュール、今回作製した基板、Core Bottomと呼ばれるモジュールです。


この3つのモジュールは積み重ねる事ができ、次のように一つの装置になります。

M5StackはこのようにCoreとBottomの間に色々な機能のモジュールを挿入し、積み重ねていく事で欲しい装置を作る事ができます。

M5CoreモジュールにはESP32というマイコンが搭載されていて、WifiやBluetoothの通信を使ったプログラミングが可能です。



スピーカもあるので、Fixしなくなった時やデータの保存ができていない時など警告音を出す事ができ、ZED-F9P用として最適です。
M5 Bottomのモジュールには150mAhの電池が搭載されていて、短時間であれば外部電源無しで動作可能です。

M5Stackの詳細はM5StackのHPをご覧ください。
M5Stackの製品は M5Stackの販売サイト スイッチサイエンスで購入可能です。

2.基板の設計

基板の設計にあたっては、u-bloxの資料 ZED-F9P Integration Manualにできるだけ沿うようにしましたが、アンテナバイアスの電流制限抵抗は約5Ω(ポジスタ)に変更しています。それに伴い、インダクタも電流容量の大きなものに変更しています。
測量用アンテナでは50mA程度流れるので、マニュアルにある17Ωの抵抗だと電圧降下が大きくなりすぎるため変更しました。ただ、現在の設計ではアンテナ端子をショートした時200mA近く流れる可能性があり、マニュアル記載の150mA以下にすべきという記述に適合しませんので、本来の電流制限回路を付加すべきだと思います。

ZED-F9Pとマイコンとの通信はUART1を使い、補正データはWifi経由で入手しUART1に流す設計です。
また、補正データをWifiとは違う無線システムで入手する時のため、UART2経由でZED-F9Pに補正データを送れるようコネクタを付けました。

アンテナコネクタはSMAにしたかったのですが、基板からの高さは最大6.5mmの制約があり、已む無くMCXコネクタにしました。
コネクタ位置は基板下側になっていますが、これはM5CoreのWifi用アンテナが上側になるので、少しでも影響を少なくするためです。

M5Stackのモジュールは積み重ねができるように部品配置をし、それに合わせたケースを作製する必要があります。今回はケースはPROTOモジュール

を利用し、このモジュールの基板として今回作製の基板を使います。それで、USBコネクタやUART2コネクタの配置はこのケースの格子窓部分に合わせて配置します。

以上の考えで作成した回路と配置図です。 PDF


なお、この基板の設計では次のEagle用データを使いました。
sparkfun/Qwiic_GPS-RTK2/ZED-F9P.lbr
M5amigo.sch

3.完成基板

完成した基板の画像です。



受信機として組み上げたのが次の画像で、ヘリカルアンテナを装着しています。

4.制御プログラム

制御プログラムはarduino IDEを使って作成しました。

ZED-F9Pからは何も設定しないとNMEAのデータが送られてきますが、現在のバージョンではNMEAの高度データは10cm単位で少し精度が不足します。それでUBXでデータを取得するようにしました。UBXのパースは SparkFun_Ublox_Arduino_Libraryを使用しました。
当初正常に動作しなかったので調べたところ、ZED-F9Pへコマンド送付後、レスポンスを待つ部分で止まってしまいます。それでレスポンスを待たないように修正しました。今のところ、それで特に問題なく動作しています。
ログに記録する際は、RouteConverterで軌跡を表示するなど、NMEAデータの方が扱いやすいのでNMEAフォーマットで記録するようにしました。
GGAセンテンスの高度データは小数点以下3桁にしています。

NTRIPクライアントの実装に関しては GLAY-AK2/NTRIP-client-for-Arduinoを使用しました。

今回、テスト用として作成したプログラムの機能は次のとおりです。
1.左のボタンを押す事でログの記録のオンオフを行う。
2.中央のボタンを押して、測位頻度を秒1回と秒5回に切り替える。
3.補正データはWifi経由でrtk2go.comから取得する。

制御プログラムの表示 (参考のため掲載しています。バグがあるかもしれません。)

次の画像は動作画面と消費電流です。

消費電流は電源オン直後は600mA程度流れますが、数分すると300mA前後に落ち着きます。
3000mAH程度の小型のモバイルバッテリで7時間程度持つと推定され、携帯性もいいと思います。
M5 Bottomの電池容量は150mAhなので、10分程度であればモバイルバッテリ無しで動作可能です。オープンスカイであれば数秒でFixするので、測定する点数が少ない場合は好都合です。

5.精度テスト

完成した受信機が正常に動作しているかテストするため、三角点の位置を計測しました。
三角点は兵庫県三木市にある四等三角点「小林」で、池の堤防の上にあり、遮るものが何もない環境です。

この三角点の上に画像のように受信機を置きました。
アンテナはヘリカルアンテナ(AN306)で、受信機のWifiはモバイルルータ(MT100)に接続しました。
基準局は弊社に設置した基準局で、詳細は 善意の基準局 でご覧ください。基線長は1.3kmです。

三角点の座標と測定した座標は次のとおりです。

四等三角点 小林
  緯度:34/46/37.1752 (34.77699306度)
  経度:134/59/55.5042 (134.99875111度)
  高度:126.75(msl) 163.6882(楕円体高)
  平成17.11.18にGPS測量

ZED-F9Pによる測定結果
  緯度:34.7769926度
  経度:134.9987511度
  高度:130.357(msl) 163.728(楕円体高)

誤差は緯度5cm、経度0㎝で、楕円体高はZED-F9Pのアンテナの高さ約8cmを引くと誤差は3㎝程度となります。
三角点の位置精度は地理院に聞いたところ10cm以内という事なので、その精度内には収まっていて、精度的にも問題無く動作している事が確認できました。
なお、海抜高度(msl)は3.6m違っていますが、これは地理院とu-bloxで使っているジオイドモデルが違うためだと思われます。

6.総合テスト

完成した受信機の使い勝手や携帯性等、総合的なテストを行うため、ハイキングコースを歩いてみました。
RTKでは人体の影響が大きいのでアンテナは頭の高さ以上にした方がいい結果が得られます。それでヘリカルアンテナ(AN306)を帽子に付けてみました。


持ち物はこの帽子と受信機、バッテリ、モバイルルータとなります。スマホでテザリングすればモバイルルータは不要で、またバッテリもより小型のものが使えます。写真のモバイルルータはピクセラのMT100、バッテリはパナソニックPL203でUSBポートが2つ付いているもので、容量は5800mAhです。


ハイキングコースは兵庫県三木市にある三木山森林公園で1周約30分のコースです。
次の画面はこのコースを歩いた結果をRouteConverter(左)とrtkplot(右)で表示したものです。

右側のルートで緑はFix,黄色はFloat,赤は単独測位、グレーのラインは測位不能を示しています。
尾根筋では回りに木があっても空が見えれば大体Fixしています。谷筋ではFixしなくなりますがそれでもFloatの場合が多く、単独測位や測位不能になるのは僅かで、ZED-F9Pの性能の良さが分かります。

使い勝手では、電源のオンオフがすぐにできる事や、ルートの保存がボタン一つで切り替えられるなど、道具として使い良く仕上がっています。Raspberry Piやノートパソコンに接続した時には味わえなかった気軽さや安心感がありました。
信頼性に関しても、製作後、今まで動作が不安定だと感じた事は一度もなく、M5Stackおよび製作したモジュールの信頼性もいいと言えると思います。この信頼性については今後本格的にテストし、またご報告したいと思っています。

7.最後に

受信機を製作後、三角点の位置が本当にセンチメータレベルで測定できた時、新たなパワーを手にした思いがしました。
それまでもZED-F9Pをノートパソコンに接続して十分精度は確認できてましたが、装置が仰々しく馴染めない感じがありました。
それが、コンパクトな受信機でボタン一つで位置が測定できるようになり、今までになかった道具を手にした感じを受けました。

ただ、手軽になったとは言え、基準局があっての事であり、今後、基準局の整備が課題となります。
その基準局も今回作成した受信機にソフトを追加すれば基準局用受信機ができ、少しでも基準局を設置しやすい環境にできればと思っています。

新たなパワーを感じる事ができる道具を作製できたのは、u-bloxとM5Stackの製品があるからで、両社の方々に感謝したい気持ちです。

「RTK受信機 ZED-F9P on M5Stackの試作(その2)」
「RTK受信機 ZED-F9P on M5Stackの試作(その3)」

戻る