ラップタイマーあれこれ その10 スマホ向け外部GPSの作り方
Instructions in English is here
Androidのラップタイマーアプリ向けに、自作GPS機器の作り方について説明します。
これは第二作目。これから作るのであればこっちをオススメ。見た目もすっきりしてるし、精度もいいです。マイコン業界ではこのような小さなデバイスはフリスクのケースに入れるのが定番だそうで、この白いのもフリスクのケースです。配線の厚みがあるので蓋はキチンとしまりませんが、皆さん使うだけあって収まりはいい感じです☆
必要最低限の部品代だと5,000円弱ですが、設定用に必要な部品とか、配線とか、半田ごてとかまで全部揃えると7,000円くらいでしょうか。
部品(情報はすべて2020年11月時点)
物品 | リンク | お店 | 税込価格 |
GPS(アンテナタイプ) | GPS/GLONASS受信機(Galileo/BeiDou可)u‐blox M8搭載 みちびき3機受信対応 | 秋月電子 | 2,480円 |
Bluetooth通信デバイス | RN-42使用 Bluetooth無線モジュール評価キット | 秋月電子 | 2,400円 |
USB-シリアル変換(デバイス設定に必要) | FT-232RQ USBシリアル変換モジュール | 秋月電子 | 980円 |
ジャンパーワイヤー(結線に必要) | ブレッドボード・ジャンパーワイヤ(オス-オス)セット 各種 合計60本以上 | 秋月電子 | 220円 |
GPS部品とBluetooth部品をつなぐ | 分割ロングピンソケット 1×42 (42P) | 秋月電子 | 80円 |
そのほか | 古くて良いのでWindows PCが必要(デバイスの設定:GPSを5Hzに変更したり) | ||
そのほか | Tera Term (デバイス設定に使用するソフト) | ||
そのほか | 半田ごて、ラジオペンチ、ビニールテープ、熱収縮チューブ、Micro USBケーブル、モバイルバッテリーなど |
半田付け作業
- GPSのケーブルにジャンパーワイヤーを半田付けします。ジャンパーワイヤー2本使ってそれぞれを2つに切って、GPSのケーブルに付けます。5本出てますが茶色は使いません。ジャンパーワイヤーの色はお好みのもので!私は赤(VCC)とオレンジ(TxD)を赤色のワイヤーで、黒(GND)と緑(RxD)を黒にしました。半田付けしたところをビニテで撒いたり、収縮チューブ等で束ねてショートしないようにします。ジャンパーワイヤー使わずに基板直結でもいいんですが、なにかと抜き差し出来た方が便利かなと思って。
- Bluetooth通信デバイスにピンソケットを半田付けします。全部付けても良いのですが使うのは一部なので、このようにロングピンソケットを2本が2つ出来るようにニッパーで切ります。そしてそれを下図の位置に半田付けします。そしてショートと書いてあるところはショートします(ジャンパーワイヤーのさきっぽをニッパーで切って橋渡しして、半田付けします)。半田付け作業は以上で終了☆
デバイスの設定
- ここからはパソコン使って設定作業です。まずパソコンにソフトを2つインストールします。インストール手順は省略します。ネット上にいっぱいありますのでそれを見てみて下さい。
- USB-シリアル変換用のデバイスドライバ(Windows 10の32bit, 64bitどちらでもいいと思います)
- GPSの設定を行うソフト u-center
- まずBluetooth通信デバイスの設定をします。Bluetooth通信デバイスとPCをUSBケーブルでつなげてパソコンのTera Termを起動します。そして「新しい接続」画面でシリアルを選んで、COMポートを選んで下さい。私の場合はCOM5ですが、お使いの環境でここは異なってきます。
- 接続したら「設定」-「シリアルポート」を選び、ボー・レートを115200にして下さい。
- ここからはコマンド入力作業です。”$$$”と入れてエンターキーを押します。Bluetooth通信デバイスのLEDが短い点滅に変わり、画面にCMDと表示されます。
- “SU,57″と入力しエンター(入力した文字は表示されませんが、AOKという表示がでるはず)
- “—“(マイナス記号を3つ)と入力しエンター。ENDという文字が表示されるはず。これでBluetooth通信デバイスの設定は完了です☆
- 次にGPSの設定変更をします。USBシリアル変換とGPSを下図のようにつないでu-centerを起動します。GPSからのTxD(RxD)をUSBシリアル変換のRxD(TxD)に接続します。
- 下記画面を参考に、接続アイコンをクリックし、COMポートを選びます。私の場合はCOM9ですがここは環境によって変わります。次にその横のボーレートボタンを押して115200を選びます。
- うまく接続完了すればu-centerの一番下のステータスが緑の点滅に変わります。赤やグレーの場合はうまく接続出来ていないです。うまく行かない場合はボーレートが違う場合がほとんどですので他のボーレートを試してみて下さい。また結線も間違えてないか確認してください。
- メニューから「view」-「Configure」を選び、「RATE(Rates)」の「Measurement Frequency」を1000から200に変更します(5Hz設定の場合)。10Hzで更新したい場合は100と設定します。
- 「PRT(Ports)」の「Baudrate」を57600に変更します。
- これは必要ないかもしれませんが、「NAV5」-「Dynamic Model」を「4 – Automotive」にします。
- 画面下「Send」ボタンをクリック
- メニューから「Receiver」-「Action」-「Save Config」を選択。これで作業は終了です☆
結線
- GPSとBluetooth通信デバイスを下記の図のように結線します
- モバイルバッテリーでBluetooth通信デバイスに給電して出来上がり~~☆あとはラップタイマーあれこれ その6 スマホ+外部GPSを自作! 準備編☆のとおりに進めて、計測しまくってください!!
こんな感じの動作になれば正常動作中です☆ 右側のアプリはRaceChronoですが、どのアプリ使っても同様に緑は点灯、赤は点滅になります。
補足
今回は5Hz更新、ボーレートは57,600としました。10Hz更新にしたり、ボーレートをもっと上げたり(下げたり)は自由に出来ますので、やってみたい方はチャレンジしてみてください。
ボーレートは57,600でなくてもいいと思いますが、なんとなくこの値にしています。115,200でもいけると思います。ただし9600等低い値にするとGPSからのデータ転送が追いつかなくなるので、38,400-115,200あたりがいいと思います。変更する際は手順5と手順11の値を変更して下さい。
あとGPSから返されるには不要なメッセージもあり、それを返さないようにしたいという方もいらっしゃると思うので、その際は「View」-「Message View」-「NMEA」で「GxGGA」と「GxRMC」のみ有効として下さい。最低限これだけあれば動作します。
初めまして
記事通りに部品を組み立て・設定を行い、u-centerで衛星捕捉まで確認したのですが、スマホに繋いだところ衛星が反応しません。
何か考えられる原因及び対策がありましたらご教示いただけると幸いです。
RN-42とスマホのペアリングは正常ということですよね? その前提で、たいていの場合はRN-42との結線が間違っている、ボーレートが合っていないのどちらかだと思います。結線を確認いただき、またDコマンドで現在のボーレートを確認し、u-centerで接続したボーレートと合わせてください。私は57,600bpsで使ってます。
教えてください。ipad(ios)でも接続可能でしょうか。
こちらはiPad(iOS)には対応しておりません。
テリーさん
相波@その4です。
誠にお恥ずかしいのですが、GPSの設定がu-centerで出来てません。
ドライバー、結線、設定も間違えないと思います。
ちなみにTxDとRxDを入れ替えると赤く点滅しますが、正規の結線では緑にならずグレーのままです。
GPSユニット、変換モジュールを買い足しましたが同じでした。
7. 次にGPSの設定変更をします。USBシリアル変換とBluetooth通信デバイスを下図のようにつないでu-centerを起動します。
は、GPSユニットを単味で変換ユニットに接続してu-centerを起動させると言う事ですよね?
根本的にどこかが間違っているのでしょう・・・
お心当たりがございましたら、ご教示頂けると幸いです。
自己解決しました!
お恥ずかしい、「通信」でしたね。
アナログ無線爺さんの盲点でした。
お騒がせしました。
相波さん、
おー、解決よかったです。
あとご指摘のように7は「USBシリアル変換とBluetooth通信デバイス」ではなく、「USBシリアル変換とGPS」の誤りですね。記事も修正しました。ありがとうございました。ぜひぜひこれで走行ログ取得をお楽しみください!
テリーさん
度々本当に申し訳ありません・・・
その後、無事にバラックではBluetoothGPSで測位確認出来ました。
が、いざ実装したところ、スマホとペアリングはするものの接続できなくなりました。
GPSユニットは1PPS出力にぶらさげたLEDが点滅するので、測位していると思われます。
Dコマンドで確認してますのでボーレートは合ってます。
結線も今回は間違えてませんw
ファクトリーリセットしてから再設定しても変わらずです。
別のBuluetooth基板でも同じでした。
スマホ側の設定等、原因としてお気づきの点はございますでしょうか。
お忙しいところ申し訳ありませんがご教示頂ければ幸甚です。
相波
相波さん、
ボーレートが合ってるとするとペアリングが正常に終わっていないかもです。その6のページにRaceChronoのときの画面をアップしました。これはRaceChronoの画面が、通信のどのへんが止まっているかによって画面表示が変わるため参考になると思います。一度RaceChronoの設定からBluetoothを接続してみてください(Android側のペアリングではなく)。
もしこれで「GPSからのデータを待っています」みたいな表示になったらおそらくボーレートか結線の見直しが必要です。ただボーレートは確認済みだということなので、おそらくこの手前のBluetoothペアリングが失敗しているのかなと思っています。一度RaceChronoからのペアリングをお試し下さい。また様子を教えて下さい。
↓その6ページ
https://tc2000.blyst.jp/2020/10/20/%e3%83%a9%e3%83%83%e3%83%97%e3%82%bf%e3%82%a4%e3%83%9e%e3%83%bc%e3%81%82%e3%82%8c%e3%81%93%e3%82%8c%e3%80%80%e3%81%9d%e3%81%ae%ef%bc%96%e3%80%80%e3%82%b9%e3%83%9e%e3%83%9b%ef%bc%8b%e5%a4%96%e9%83%a8gp/
テリーさん
この度は本当にお世話になりました。
ペアリングが出来れば、android との接続は見に行かなくても良かったのですね💦
Bluetooth GPS ,RaceChronoとはガンガンに繋がってました。
Bluetooth の振る舞いが分から無くてハマってしまい、危なくジャンク箱行きになる所でした。
一言一句、テリーさんの指示通りに作業すれば遠回りをしないで済んだと(涙)
素晴らしいブログに出会えました❗️
28日のもてぎが終わったら、もう1セットはダッシュボード内に通線して、自車専用ロガーとしようと思っています。
本当に丁寧なご指導ご鞭撻ありがとうございました。
末筆になりますが㊗️鎖骨完治と、タイムアップをお祈り致します。
それとお祓いはした方が良いかと(笑)
相波
お~ついに!おめでとうございます!!BluetoothやらUARTやらGPSやらいろいろ出てくるので難しいですよね。ブログでは結果しか書いてませんが、私も当時相当もがきました(笑) とにかくお役に立ててなによりです。
ご自身で組み立てたデバイスで記録されるとまた感動もひとしおですよ!すげ~正確~と感動のはずです。相波さんのタイムアップもお祈りいたしております。お祓いか~やっぱ行こうかな。
テリー様
初めまして、伊吹と申します。
手順に沿って配線を行い、Bluetooth(RN-42)をUSBケーブルで
デスクトップパソコンに接続しているのですが、
Tera Termで「$$$」コマンドを入力しても「CMD」が表示されません。
LEDの点滅周期も速くなりません。(「$$$」は表示されません)
どこか基本的なところが間違っているのでしょうか?
RN-42の取説(秋月さん)からFTDI社のUSBデバイスドライバーの
インストールも実施してみました。
工場出荷状態に戻してもダメでした。
ウイルスバスターを一時停止しても同じでした。
以下、私の環境です。
OS:Win10
マザーボード:MSI Z390
Tera TermはVer5.0
非常に初歩的なご質問かもしれませんが、ご教授頂けると
本当に助かります。
伊吹さんこんにちは。
おそらくなにか小さいところが違うだけと思いますが、それをずばり探すのが難しいですよね。いくつか思い当たるところを書くので試してみてください。
1.接続が間違っていないか? 適切なCOMポートを指定しているか。 RN-42にすでにGPSデバイスを結線している場合はすべてとってください。
2.ドライバーが適切か? RN-42をWindowsにつなぐとWindowsが自動でドライバをインストールしますが、これでは適切に動作しない場合がありますので、FTDIドライバの削除を行ってください。RN-42をWindowsにつないだ状態でドライバ削除消して、そしてRN-42をWindowsから抜いて、FTDIドライバのインストールを行います。新規ドライバのインストールは
https://ftdichip.com/drivers/vcp-drivers/
こちらのページの右側、setup executableというリンクから試してみてください。
ドライバの削除は下記を参考に。
https://faq.nec-lavie.jp/qasearch/1007/app/servlet/relatedqa?QID=023239
3.ボーレートが合っているか
TeraTermのSpeedが合ってるか確認してください。初期表示だと9600になっていますが、これを115,200に変更します。万が一ということもありますので、115,200以外のSpeedも試してみてください。57,600とか、RN-42の初期設定では115,200のはずなのですが、念のため。
テリー様、井手と申します、よろしくお願いします。
iPadをナビにしょうと思いましたが、持ってるiPadがWi-Fiモデルのため外付けGPS受信機が必要で市販品は高価なため何とかならないかネットを調べるうちにここにたどり着きました。
とても詳しく分かりやすい説明で参考になりそうですが、気になるのは2023年4月23日 2:39 PMの匿名さんからのQ&Aでiosには使えないというコメントです。
この「こちらはiPad(iOS)には対応しておりません」というのは外部GPSと制御/設定用PCの間のことでしょうか、それとも外部GPSとbluetooth接続するiPad間のことでしょうか?
よろしくお願いします。
井手さん、初めまして。
こちらですが、外部GPSとBluetooth接続する部分がiOS(iPad/iPhone)に対応していません。これはApple社のMFi認証というのが関係しているためです。
iPadでお手軽にラップタイマー使うならGNSS Circuit Loggerというのをオススメします。無料で使えますが、有料でもいいんじゃないかと思うくらいのアプリです。WifiモデルだとGPSが入ってないんでしたっけ? となると市販品ですが、GL-770Mというのがいいです(このサイトだと17,655円)。GNSS Circuit LoggerはGL-770という1つ前のモデルに対応しており、おそらくGL-770Mでもいけるはず。私もこの自作GPS作る前はGNSS Circuit LoggerとGL-770という組み合わせで走ってました。
テリ-さん、早速の返信ありがとうございます。Bluetooth部分がダメなんですね。自作始める前に回答を頂き大変助かりました。
Wi-FiモデルだとGPSが内蔵されていません。市販品だとけっこうな値段してしまいます。ナビに使うのであれば優先接続もできますが、ナビと同時に充電できなさそうなのと有線でもApple側のしばりがありそうな気もしています。
もうしばらく悩むことにします。また何かあればよろしくお願いします。
ネットで調べてみたらMFi認証というのは有線接続含むアクセサリに適用されるようですね。自作は難しそうですね。
そうなんです、有線も含めてすべて適用されます。
BluetoothのLEという規格があって、これならMFi認証を取らなくてもiPhone/iPadとBluetooth通信が出来るのですが、今度はこの上に書いたRN-42がBluetooth LEには対応してないんです。RN-42のBluetooth LE版みたいなのも探したんですが、ないんですよね。Arudionoとかラズパイとか使えば出来ますが、簡単には作れないかなーって思って私は諦めました(笑)
GL-770は逆にBluetooth LEだけに対応していて、GL-770自体はMFiとってませんがiPhone/iPadでも使えます。
これなんかどうでしょう?
bleボード
https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4WZ7
せんごくネット通販
Adafruit ADA-2267 3,300円
Bluefruit LE Friend – Bluetooth Low Energy (BLE 4.0) – nRF51822
このUSB-to-BLEボードを使用すると、標準のシリアル/ UART接続を使用してコンピュータをBLE対応の電話機またはタブレットに簡単に接続できます。
簡単な形式で、一般的なUSB /シリアルアダプタ(FTDIフレンドなど)と同じ原理で動作し ます。開発マシンのお気に入りの端末エミュレータから入力したデータは、基本的な「UART」接続として、接続された電話機またはタブレットに無線で転送されます。
こちらでいけるかもしれませんが、インプットがUSBとなっているので、ここにどうやってGPSからのUARTを乗せるか?というのが課題になると思います。これはPC利用時にUSBで簡単にBLEと連携出来ます、というのかと思うので、タブレットやマイコン等とやりとりするとなると工夫が必要。
プラスこれを受けるモバイルアプリを用意する必要があります。RaceChronoという有名なタイム計測アプリがありますが、これもBLEに対応していますが、連携出来るGPSは限定されています。先に紹介したGNSS Circuit LoggerもGL-770には対応していますが、他のBLE GPSには対応してないんじゃないかなと。なかなか難しいんですよね、iOSは。その点Androidは敷居が低くて、ここに手順を載せたDIY GPSで簡単に接続できます。
私事ですが仕事で2週間ほど家を離れるため、しばらくコメント返信出来なくなってしまいますので、あらかじめお伝えします。
テリーさん、しばらく不在の件、承知しました。できるだけ調べてみるようにします。またよろしくお願いいたします。
テリーさん、久しぶりでスイマセン。何度かコメント残そうとしたのですがなぜか失敗になってました。その後ですがMFi認証対象外のBLEでやってみたのですがBLEでのとりあえずの通信はできるのですがナビアプリとの通信はアプリが対応してくれないことにはダメなようで諦めました。最終的に外付けGPSレシーバーのgns 2000 +がヤフオクで比較的安く手に入りそれであっけなくつながりました。いろいろありがとうございました。
井手さん、こんにちは。ご連絡ありがとうございました。
iPadでの動作が出来てなによりです。MFiは私もまだ全然追求出来て無くて、おっしゃるとおり既製品を安く入手出来るのが一番です。これで是非サーキットライフを楽しんでください!