今日は昨日より随分コンパクトにしたので快適です。
外装(ケース)、中身(基盤、配線)、アプリ(Androidアプリ、Webアプリ)と、シンプルなものですが、モノ創りのひと通りやってみると、それぞれが決して独立した作業ではないことがよくわかりました。ひとつひとつを汎用的に作ることができますが、それぞれのちょっとした無駄が、最終的なモノを無駄に大きく、無駄に重くしてしまいます。とはいえ、限界を目指そうとすると、部品がすごく高価だったり、制作に時間がかかったり、他への転用ができなくなってしまったりするので、うまく全体見ながら思い切ってできることを削るのがポイントです。
アプリづくりも思い切って機能を削ることが大事だったりします。思えば、ミニ四駆も削りが楽しかったですね。削りというのはものづくり全般において、すごく重要な要素です。
下記、ジョグマッピングツール作りの大まかな解説です。
・やりたいこと
ジョギングしながら精度高く位置情報の記録をとって地図作りの元データとしたい
・実現方法
Androidに、高精度(?)GPSを外付けし、SDカードに記録し続けるアプリをつくって、アプリを起動して走る。
・材料
Android - Xperia SX
高精度GPSモジュール - 【MArmEX-GB】MARY-GB基板(GPS Board)
USBシリアルモジュール - 【MPL2303SA】超小型USBシリアル・モジュール(Android用ドライバダウンロードできます!)
USBホストケーブル (通常のUSB接続では、Androidが子機になるところ、親機にできる特殊ケーブル)
※GPSモジュールにもUSB経由でシリアル通信できる機能は内蔵されてますが、Android用のドライバが見つからず!
・つくりかた
1. ハードウェア実験
GPSモジュール、USBシリアルモジュール、USBホストケーブル、Androidと接続
ブレッドボードを使っての実験だと、繋ぎ変えが簡単なので楽です。
2. ソフトウェア(アプリ)作成
USBシリアルモジュールのサンプルを元に、SDカードにシリアル通信で受け取ったデータを書き込むAndroidアプリを作成
Androidアプリは、Java言語で作成します。
3. テスト
実際、ジョギングに使ってみます
これが昨日の状態でした。ブロッドボードのまま全部を緩衝袋につっこみ、走ってました。
4. 緯度経度情報の抽出
SDカードからPCに転送し、PC状で緯度経度情報を取り出します。
GPSモジュール特有の書き方から、とりあえず緯度経度と時間のみを使用。
5. 地図上への表示
とりだしたデータをJavaScriptのデータとして、Google Maps APIを使って線として描画。
ちゃんと記録できていることが確認できました。
6. ケースを準備
シンプルハードウェアボタン「one button」と同様、e-maの大きい方のケースに、なんとか入りそうでした。
パッケージの文字を表面を磨いて消しちゃいます。
7. 接続するシールド(基盤)を作成
GPSモジュールとUSBシリアルモジュールをコンパクトにつなぐために、ユニバーサル基盤を使って、専用基盤を作ります。
・・・といっても、専用パターンを作るまでもないので、直接配線&ハンダ付けです。
部品が揃いました。
8. 組み立て、完成
なんとかケースに納めました。
USBホストケーブルとUSBケーブルの接続で長くなってしまっているのが不満ですが、ひとまず完成。
これで気軽に外に持ち出せます!
ケースにボタンをつけて、走りながらでも、いろいろとできるように改造したくなりました。
使ってみて、初めて見える、宝物。