せっかく車載タブレット台ができたので、なにか面白いネタはないか?と思ったところ、そこらへんに転がっているタブレットで
「オフラインGPSナビ」
を作ってみようと思い立ちました。
スマホが当たり前の昨今なので、スマホ内臓のGPSを使ってのオンラインナビは便利ですが、今回はデータを使わずお金が発生しないナビを目指します。
<用意するもの>
■1 そこらへんのタブレット
■2 GPSレシーバ
■3 オフラインマップ
です。
さて、今回タブレットを選定している中で、スマホやタブレットについて興味深いことがわかりました。つまり、私達は何気なくスマホやタブレットを使っているけれど、「位置測定」についてはいくつかのポイントがあるということに気づいたのです!
□ GPS
・・・まず、これがついているかどうかは大きな差。スマホはたいてい搭載しているが、タブレットに載っていないことが多い。自分がどこにいるか衛星を使って知ることができる。
□ 4Gもしくは5G通信機能
・・・SIMが載っているスマホは、当然通信ができるが、タブレットの場合SIMが載せられるものと、まったく載せられないものがある。
この通信機能がある(つまり電話番号がある)ことで、外でも地図アプリ(のデータ)が使える。
□ 方位センサー(磁気センサー)
・・・GPSがついていて方位センサーが載っていないタブレットがたまにあるけれど、その場合、地図アプリで見ると「自分の居場所はわかるけれど、どっちを向いているかがわからない」ということが起きる。カーナビっぽいことをやりたいときは、この「向き=方位」が実は大事!
□ Wifi
・・・ご存知の通り、GPSがなくてもWifiがつながっていれば簡易的に位置を測定することができる。もちろん、地図データダウンロードも可能。
□ 加速度センサー 気圧センサー ジャイロセンサー
・・・直接ナビには関係ないけれど、動きそのものや今いる場所の高度なども把握できたりする。機種によっていろいろ実は違うことがある。
=======
★ というわけで、今回の「そこらへんのタブレット」にはFireHD10(第五世代)をチョイス。
Wifiが使えるくらいで、ほぼ何もついてません(笑)
★ GPSレシーバは、u-blox7(VK172)をチョイス。
この機種、パチものが多いみたいで、よくわからんけど、私のところに来たのもパチもんぽいです(笑)
でもまあ、パチモンでもなんとかなります。
★ オフラインマップは、有名な「MAPS.ME」を試しました。最近はgoogleマップもオフライン化ができるようなので、そちらでもいいと思います。
=======
まず到着したu-blox7をマイクロBのUSBと繋げられるようにOTGケーブルに差します。OTGケーブルとは、簡単に言えば、タブレットやスマホにマウスをつないだら、矢印が出てきてマウスが使える、という代物。
ublox7は通常USBなので、みかけはUSBメモリそっくりです。アマゾンで1000円前後で売っていますが、挙動がよくわからん偽物もあるようなので、お気をつけて。
ていうか、うちに来たヤツはニセモノなのでは?(笑)と思っています。
さて、GPSレシーバが到着すると、まずはAndroidとこいつをつなぐための下準備をします。
「UsbGpsDroid」
というアプリを公開してくださっている方がいるので、それを利用。APKファイルです。
https://github.com/freshollie/UsbGps4Droid
Downroad latest release という箇所をクリックすると最新版がダウンロードできます。
APKファイルは「提供元不明なアプリ」を許可する設定がないとインストールできませんので、ごくごく初心者の方はご注意ください。
その旨のアナウンスが表示されます。
すでに野良APKをたくさんインストールしている方は、おなじみのお話ですね。
インストールが成功すると、アプリを立ち上げてください。
そして、ublox7本体をOTGゲーブル経由で差し込みます。赤色のLEDが光るので、通電が確認できると思います。
アプリを立ち上げると「疑似ロケーション(モックロケーション)」を有効にするように表示されます。これもAndroidではおなじみ「開発者向けオプション」にある項目ですが、開発者になっていない人は
”端末情報のビルド番号を7回くらい連続でタップする”
と開発者になれます。これも有名なお話。
余談ながら、機種によっては「疑似ロケーション」ではなく「仮の現在地情報アプリの選択」などの表示が出てくる場合もあります。その場合はアプリ名としてUsbGpsDroidを指定しましょう。
アプリを開いたら
■ 右上の歯車アイコンから設定に入る。USBGPSをチョイスする。たいていの場合、つなげた一つしか見えていないけれど、名前が変なふうになっているのでUblox7とはわからないことも。
■ デバイススピードは9600くらいで。
■ 「Enable usbgps service」 をオンにすると動きはじめる
という流れです。
最初赤点滅ですが、
衛星を補足し始めると緑点滅になります。
アプリのほうは、数字がだらだら流れ出し始めます。補足した衛星のデータと位置情報です。
この段階で、位置補足はできていますので、別にインストールしておいたMAPS.MEなどのオフライン地図アプリを起動させます。
(UsbGps4Droidはバックグラウンドで起動した状態です)
↑リアルにいま私がどこにいるか出ちゃうので、地図はアホみたいに拡大してごまかしていますが、青い矢印の位置が現在地点です。ちゃんと位置が掴めています。
MAPS.MEはオフラインで地図データを持っているのが強みなので、このまま車を動かせばいちおうカーナビもどきになります。
オンライン地図をWifiの届かないところまで動かすとどうなるかというと、GPSが動いていても地図とすり合わせができなくなるので、十キロくらい動いたところで位置表示が止まったり、それまで表示されていた建物名などが、データが途切れたところから一切表示されなくなったりします。
========
余談
「GPS test」というアプリが別にあるので、それを入れてチェックするともっと詳しいことがわかります。
https://play.google.com/store/apps/details?id=com.chartcross.gpstest&hl=ja&gl=US&pli=1
GPSモジュールの挙動のチェックにどうぞ。
方位方角的なこととか。
正確な時間とか。
この正確な時間をネットなしでデータとして取り込めるので、そのためにGPSモジュールを使う人もいるみたいですね。
ネットがあれば最近のOSは自動同期ができますが、ネットのない環境だと天空から時刻合わせをするそうです。へー。
さてさて。うちにきたVK172が「パチモン?」なのかよーわからんと感じた理由のお話に参りましょう。
すでにこの段階でちゃんとGPSとして現在位置を補足できているので、このモジュールはこれで全然OKなのですが、GPS testで普通のスマホをチェックしてみると、全然表示が異なります。
どこに衛星がいるかとか、全部わかるのね。
(同じ場所で、Arrows Weに入れたGPS testアプリを動作させた画面。Fixという項目で、各衛星をがっちり掴んでいることがわかる。ふつうはこういうふうに表示されます)
ところが↑のように、今回のモジュールでは、Fixのところや、位置図のところがまったく表示なしで、???って感じ。
これがublox7の正しい挙動なのか?うちに来たやつが変なのかよくわからないので、とりあえず謎としておきます。
(衛星補足には時間がかかるという話もあるし、パチものはFixできないという話もあるので、気になる人は買ってみて実験してみてください)
ただまあ、位置さえ補足できればナビとしては使えるので、パチもんでもOKです。