ロビと遊んでみる その2(あっち向いて方位)
2013年4月23日
4月27日改訂
首しか動かないロビですが前回に引き続いてandroid携帯でロビと遊んでみます。
今回はちょっと実用的?なプログラムを作ってみました。
android携帯の音声認識を使って、世界の都市名を携帯に入れるとロビがそちらの方向を向きます。
基本的な接続方法は前回と同じでこちらの方法で行いました。
世界の都市の方位をプログラムのデータベスとして登録してあります。
都市の緯度と経度と現在地の緯度と経度でその都市の方位が計算できます。
計算が面倒なので今回はこちらのサイトのデータを使わせてもらいました。
最初に携帯の方位センサーを使ってロビの向いている方位をセットします。
都市の方位とロビの向いている方位の差の角度にロビの首を回転せればロビがその都市を向くという訳です。
アプリケーションの画面です。
まず携帯をロビに向けて「方位設定」ボタンを押すとロビの方位が計算されてロビ方位が表示されます。
ロビの方位は携帯の方位の反対側なので携帯方位-180°がロビの方位となります。(画面はセットした時と携帯の向きが違うのでずれています)
「音声認識」ボタンを押すと右のダイアログが表示されるので都市の名前を携帯に話します。
認識した都市の名前が表示されます。
登録してあるデータベースから都市の方位を取得してロビの方位との差を下に表示してロビの首を回転させます。
ロビのサーボの角範囲は-150°〜150°なので稼働しない範囲の時はロビの首を2度そちらの方向に一杯に振ります。
まだデータベースに登録していない所はロビの首を左右に振ってロビが分からない事を表します。
今回はサーボの接続方法を改良しました。
今回の方法は前回の方法と比べると簡単にかつ確実にハンダ付けが接続が行えます。
また半田ごての熱によるコネクターのダメージを最小限に抑えられます。
詳しくはこちらをご覧ください。
プログラムの実行動画です。
さすがGoogleの音声認識は世界の各都市の名前を確実に音声認識してくれます。
ちゃんとGPSで現在地の緯度と経度を取得して各都市の緯度と経度で計算すれば正確な方位が求められますが今回は東京からの方位を使いました。(こちらは埼玉ですが誤差という事で・・・・)
GPSを使った新しいバージョンをダウンロードできるようにしました。
なお今回のような改造は、ロビ本体への影響を伴いますのであくまでも自己責任という事でお願いします。
目次に戻る