プロダクト開発本部EDGEPLANTグループのやべです。
皆さんGPS、使ってますか?
一昔前なら利用シーンも限られていましたが、今や生活の一部といってもいいレベルなので「使う」というイメージすらないかもしれません。 aptpod の計測ユースケースでも、GPSは不要、というものはあまりなく、自社で開発している EDGEPLANT T1 (以下T1、Amazon で販売中)にもGPS機能は搭載されています。
そんなGPSですが、スマホなど画面が一体となっていて確認しやすいものはともかく、機器に組込まれている場合はデータを確認するのにひと手間必要です。今回はその中でも、遠隔、つまり別のPCからデータを見る方法をいくつかご紹介します。
aptpod にお願いする
まず、aptpod がお客様に提供している方法を紹介したいと思います。先日、千葉県にある茂原ツインサーキットまで走りに行ったので、その際の映像を使いながら説明します。茂原ツインサーキットは手軽にサーキット走行できるとても楽しい場所で、年一くらいでお世話になっています。
機材の設置
今回の記事とはあまり関係ないですが、こんな風に車両への取り付けを行いました。
せっかくだからといろいろセンサ類を取り付けています。ちなみに、機材を組んでいる銀色のラックは社内で工作されたものです。展示会向けにも作ることもあります。
データの取得方法
以下の図にあるような形で、intdash Edge の機能を利用してGPSのデータをサーバーに送ります。冒頭で述べたようにGPSの利用は非常に多いため、デフォルトで機能は組込まれており、インストールするだけで利用可能です。
サーバーのデータは Visual M2M を利用してブラウザ上で確認することができます。
今回茂原サーキットにお邪魔した際は、T1のGPSモジュールに搭載されているIMU*1の情報も表示させました*2。以下は、複数のIMUを同時に計測して比較したグラフです。なかなかうまく取れています。
aptpodがintdashという形で遠隔監視を提供するとこのような形になります。しかし、T1にせよほかの機器にせよ、GPSのデータを見るためだけにintdashのシステムを使うのはコストが高いのでおススメできません。
そこでほかの方法として、u-centerを利用する方法を紹介します。
u-center をネットワーク越しで利用する
T1に搭載されているGPSのモジュールは、u-blox社のNEO-M8シリーズになります。u-bloxは、Windows用にu-centerというGUIツールを提供しています。
通常、このツールはWindows PCにUSBなどで接続したモジュールとシリアル通信してデータを見ることが多いです。T1の開発中にGPS設定の調査などを行う際には、これを使いたかったので、基板を改造してWindowsからシリアル通信できるようにしました。
ネックになるのは 基板を改造して という部分です。外側に出すかLinux側に流すかをDIPスイッチで切り替えられるようにする必要もあり、あくまで試験用途だったので試作基板1枚分しか作っていません。
ser2netでシリアルデータをネットワーク上に流す
そこで、ser2netという便利なものを使います。これを使うと、Telnet/TCP経由でシリアルポートの先にあるデバイスと通信できるようになります。
今回の例でいえば、T1に搭載されているGPSモジュールに対して、Windows PCからネットワーク経由でシリアル通信する、という形になります。
ser2netのインストール
T1の場合であれば、aptコマンドで簡単にインストール可能です。
$ sudo apt update $ sudo apt install ser2net
ser2netの設定
使っている環境に合わせて設定を変更します。T1の場合、初期値はボーレート 9600 であるため、そのように設定します。
$ cat /etc/ser2net.conf 2000:raw:600:/dev/ttyTHS1:9600 8DATABITS NONE 1STOPBIT banner
設定出来たら、ser2net のサービスを起動します。
$ sudo systemctl restart ser2net
これだけでGPSのデータがネットワーク上に流れていきます。例えば、Tera Termを使うとこのような形でデータを見ることができます。
u-center を使ってGNSSデータを見る
では、実際にWindows上でu-centerを利用してみます。
u-centerのインストール
M10用にu-center 2というものも存在していますが、T1に搭載されているのはM8シリーズですので無印のu-centerを利用します。
u-centerの設定
u-center起動後、Receiver -> Connection -> Network connectionを選択し、先ほどser2netで設定した内容を追加します。ここでは私が使用しているT1 のIPアドレスが 192.168.11.43
、設定したポートが 2000
なので、そのように設定します。
この設定を行うだけで、u-centerがネットワークを経由してT1のGPSモジュールの情報を表示できるようになります。
シリアルで直接つなげたものと比較してもそん色ないように思います。
また、u-bloxのモジュールは詳細な設定を行うために、UBX Protocolという独自プロトコルで通信をしてメッセージのやり取りを行う必要があり、これが若干面倒です。Linux向けだとubxtoolというものもありますが、少し凝った設定を行おうとすると仕様書とにらめっこしてコマンドを調べる必要があります。その点、u-centerであれば、GUI上で設定項目を眺められるため、目当ての設定やデータが扱いやすくなります。この点も、この方式で実施するメリットの一つと言えるでしょう。
おわりに
aptpod では基本的に自社のサービスを使用してデータの可視化を行っていますが、開発での試験やお客様のニーズなど、状況に合わせて汎用的な方法を取ることもあります。いろいろな手法を試すことで知見もたまり、自社製品にフィードバックできることもあります。
T1の活用方法についてはテックブログだけではなく、デベロッパーガイドという形でもいろいろご紹介しているので、興味を持った方はぜひそちらも見てみてください。まずT1の詳細を知りたい、という方は以下の紹介ページでご確認ください。