趣味ではなく、ある授業の一環で製作したものなのですが、一番工学科っぽいことをしたなぁと思い出になってます。ハードの闇に飲み込まれたり、トランジスタを用いて回路を作ってみたり、初めてPythonを扱ったり、色々大変でした。きスマホが問題視されてる中、地図アプリを用いると歩きスマホになってしまう問題があります。それをカバーするために、音声案内という手段も考えられますが、騒音環境ではうまく聞き取れない問題や、そもそも難聴者ではそのような手段が取れない問題があります。そこで、視覚と聴覚でない感覚を用いれば良いのではないかと考えました。今回は頭部の触覚を用いました。入力は音声で、目的地の方向が振動として出力される帽子です。この男の子が手に持ってるリモコンに向かって目的地名を言うと、内部でいろいろ起きて、結果的に帽子に内蔵されたバイブレーターが震えて目的地の方向がわかるという次第です。操作もリモコンでできます。(ちなみにランプもついていて、プログラムの状態を確認できます、完全にデバッグ用ですが)なお装着すると見た目がエグいことになります。次に、どんなアイデアで、"音声"から"目的地方向が振動"までのシステムを作ったか説明します。コードは汚すぎてちょっと見せられたもんじゃありません...システムフローは以下のアニメーションに示した通りです。Piというのは小型のパソコンとでも思ってください。こいつが外部と通信し、情報を処理して、バイブレーターをコントロールしてます。各段階について軽く説明します。入力&音声認識マイクは市販のUSBマイクのガワを引っペリ返し、センサーのみをリモコン内に埋め込みました。アドバンスト・メディア】というものです。ここでマイクが聞き取った音声を外部に送信して、次の段階で使うためのテキストデータを取得します。目的地検索&センサーデータ取得まず目的地を検索します。目的地名を入力すると、その目的地の緯度経度を返してくれます。次にセンサーのデータを取得します。帽子のてっぺんに取り付けた地磁気センサーで自分の向いている方向を、GPSセンサーで自分のいる緯度経度(座標)を取得することができます。(詳細は省きますが、センサーの性質がそれぞれ違うからか、取得したデータから正確な値を計算できず、キャリブレーションに苦労しました。生のセンサーデータを信用するなってのは経験になったかもしれないです。)目的地の座標と、自分の座標、向きがわかったところで、"自分から見た目的地の方向"を計算することができます。直感的には、以下の図のイメージ。オレンジ色の矢印が自分→目的地までを示しています。青い矢印は自分の向きを示しています。黒い数字は真東を0度をとしたときの向きです。青い矢印とオレンジ色の矢印の間の角度を取れば、"自分から見た目的地の方向"がわかります。これがオレンジ色の数字です。上のイメージ図からも極座標変換を駆使すれば計算できることが予想できます。注意したいのは、緯度と経度は直交座標系ではなく球面座標系であるので、工夫が必要です。今回は、自分と目的地の座標の差分が大円距離を描く角度を採用しました。大遠距離についてはwikipediaから図を拝借したので適当にイメージしてください。以上で、音声から目的地の方向を得ることができたので、あとはそれを帽子上のバイブレーターに出力するだけです。拙い裁縫技術でなんとかバイブレーターを帽子に縫い付け、配線をしました。あれぇ!?おかピーぞ!???デバッグ用にLEDをダンボールに設置して、ちゃんと出力ができてるか見る。いや、出力はできてるな。テスターでいろいろ測ってみた結果、圧倒的にバイブレーターを動かすための電流が足りてませんでした。電圧の規格は確認してたんですけどねぇ...トラップでした。そこで、外部電源(乾電池)から電流を取ってくるべくトランジスタを用いて制御することにしました。このとき、電子回路を履修していたことに涙を流して感謝しました。実際に使ってみました。プライバシーに配慮して、動画をここに載せられませんが、装着者のしらないあるラーメン屋に案内してもらいました。最初は順調だったのですが、目的地付近で少々迷ってしまいました。想像できていたことですがここは改良が必要そうです。最終的に、看板を見つけラーメンをいただきました。お問い合わせはてなブログをはじめよう!aotamasakiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。