こちらの記事について、内容・翻訳・視点・長さなど、皆様のご意見をお送りください。今後の記事製作の参考にしたいと思います。
Thank you! Your feedback has been received.
There was a problem submitting your feedback, please try again later.
こちらの記事の感想をお聞かせください。
開発背景:
遠くの場所に行きたいときに多くの人が自転車で移動すると思いますが、初めて行く場所や曖昧な場所、複雑な経路だと道順が分からない、覚えられないという問題が発生します。
そこで、ナビであるスマホやタブレットの画面を見たくなりますが、自転車に乗りながらのスマホの操作は禁止されており、イヤホンの規制も条例などで厳しくなっています。スマホホルダーを取り付けることもできますが、運転しながらの画面の注視は原則2秒以上禁止されています。自転車の平均時速から計算すると2秒で8m進みます。これは非常に危険です。
そこでスマホのナビから目的地までの経路における「右左折」と「距離」の情報を取得してウインカーのように運転者に行き先を知らせたいと考えました。
また、これは運転者の周囲の人にもどちらに動くのかを示すことでより安全に運転できることも目的としています。
システムの概要:
まず入力としてタブレットの上部に目的地を入力します。
次に真ん中の「ルート取得」ボタンをタップすることで実際に現在地から目的地までのルートを取得できます。
この時「右左折」と「距離」の情報をRaspberryPiに受け渡し、LEDを点滅させます。HTTP通信の引数にこの二つの情報が入力されることでリアルタイムで移動しながら左右のLEDを点滅させることができます。
主なシステムの概要としては上の図のようになっています。
1つ目に、先ほども説明したようにタブレットのナビから経路情報(曲がる交差点の緯度経度)を取得します。
2つ目に、通信を通して現在地情報をリアルタイムでブラウザに送信します。
3つ目に、交差点の近くに差し掛かると左の図のように距離に応じてLEDを点滅させます。
曲がる交差点に近づくほど、点滅速度が速くなり、点滅回数が増えます。
ここでは例として150,100,60,30mと設定していますが、これは任意に変更できます。
実装:
1.経路取得パート
Android AppのLocation Managerから現在地の緯度経度を取得、Google Map APIのGeocoding APIから目的地の緯度経度を取得。その二つの情報をもとにGoogle Map APIのDirections APIから経路情報を取得します。
経路情報には目的地にたどり着くための複数の中継点の情報が入っており、その中には緯度経度や距離、「右折して大通りを進む」などの具体的な指示の情報が入っています。
2.RaspberryPi通信パート
ラズパイ通信パートでは、「右左折情報」と「次の交差点までの距離」をラズパイに渡します。先ほどの経路取得パートから得た情報をもとに1つ目の交差点に向かって進みます。この過程で1つ目の交差点の15m以内に入るとタスクを完了したと見なして、次の交差点との距離計算処理に切り替わります。これを繰り返し、目的地に辿り着くまでウインカーがサポートしてくれます。
実機:
実際に点灯している様子がわかる画像です。※安全に十分配慮し撮影を行いました。
今後の展望:
・RaspberryPiの持ち運び、配線の混線の解消
・通過点を正しく処理できなかった際に生じ得るバグの解消
→手動消灯&交差点通過のスイッチの実装などが考えられます。
・LEDの大きさと明るさの解消
→昼間でも点滅がよりわかりやすい、明るく大きいLEDライトなどへの変更をするといいと考えています。
・ウェアラブルデバイスによる振動を用いた右左折検知IoTへの接続
→これにより運転者は目線を落とす必要もなくなります。
・車やバイクへの実装
→自動運転への応用の他に、車の運転でナビを一度しか聞けないデメリットを解消できます。
・バッテリー問題解決
→自転車との相乗効果として、自転車を漕ぐことで自家発電しバッテリーの代わりとすることができると考えられます。