Mais conteúdo relacionado
Semelhante a Adkを使って音声コマンドで操作する戦車を作ってみた (15)
Mais de Yusuke Ohmichi (8)
Adkを使って音声コマンドで操作する戦車を作ってみた
- 1. ADKを使って
音声コマンドで操作する
戦車を作ってみた
第13回Android勉強会in札幌
at 2012/6/2(sat)
大路 裕介(まいむぞう)
12年6月2日土曜日
- 2. あばうと・みー
札幌のWeb/スマートフォン系フリーランサーです。
最近はAndroid専業になってます。
元々Web系プログラマーです。単独のサーバから
Amazon EC2やGAEを使ったクラウドまで、サーバ構
築からシステム開発まで一人でやってます。
最近はOpenCVやKinectや電子工作やってます。
日本Androidの会の北海道支部長をしています。
12年6月2日土曜日
- 3. あばうと・みー
一方、電子工作に関しては...
ラジコンは好きです。
元々電子工作には興味がありました。
でも最後にハンダゴテを触ったのは、高校の工作の
時間だった気がします。
電気の小難しい理論はわかりません。直列繋ぎと並
列繋ぎはわかります。(えっへん)
12年6月2日土曜日
- 6. 全体構成
コイツ日本語わかる
Android
コイツ動く WiFi (XMPP)
直流コード
USB
ADK Android
コイツしゃべる
12年6月2日土曜日
- 7. 何を作ろう?
せっかくなので、動くものがいい
ラジコンを改造しよう!
どんなラジコンを改造しよう?
ヘリコプター → × 操縦が繊細過ぎる
車 → × 速度が早すぎてハンドル操作が難しそう
戦車 → 鈍いし、キャタピラなので安定してる
◎ 操作がラフでもOK
12年6月2日土曜日
- 8. 戦車を買う
ヤフオクでジャンク扱いのものを買いました
基盤は死んでてもどうせ捨てるので
挫ける可能性を考慮し最初は安いやつを狙う
12年6月2日土曜日
- 9. まずは戦車を動かしてみる
マジにゴミだと困るので、一応動くことを確認
多少壊れてるけど一応ひと通り動くようだ
12年6月2日土曜日
- 10. 戦車ラジコンの構造
基本的に、左右のキャタピラそれぞれにモーターが
付いている
両方回せば前進、右だけ回せば左旋回、両方逆回転
すればバック
12年6月2日土曜日
- 11. 立止マッテ考エル
このプロポ、左右ともに上下しかついて無いよね
でも、戦車にはBB弾を発射する機能ついてるよね
12年6月2日土曜日
- 13. 戦車をバラす
そうは言っても買ってしまったのでしょうが無い
バラして構造を確かめ、テスターを使って電圧を計測
する
戦車が届いて
5分後の状況
12年6月2日土曜日
- 14. どうやら、右キャタピラを
逆回転させると、
BB弾を発射するらしい。
変なの。
(そういうギヤボックスになってる)
12年6月2日土曜日
- 15. 調査結果
搭載しているバッテリーはマンガン電池単三4本直列
(1.5V×4本=6.0V)
モーター2つだけで動いている
モーターはそれぞれ6.0Vで動いているらしい
左キャタピラは前後に動くが、右キャタピラはバッ
クさせるとBB弾を発射する
モーターを逆回転させるには、+と-を入れ替えれば
良い(一般的にそういう構造)
12年6月2日土曜日
- 16. 基本方針を考える
Arduinoには5V電源が必要、かつモーターを回すと電
圧が下がり5Vをキープできないので、別途バッテ
リーを積む必要がある
とりあえず最初はブレッドボードで回路を組んでみ
て、動いてから細部を考える(というか、最初から細
部まで想像できない)
12年6月2日土曜日
- 17. モーターを逆回転させる方法
ソフトならif文でできることが、電子工作だと意外に
面倒らしい
ググってみたら、Hブリッジという回路が必要らしい
こうしたい Hブリッジ概念 実際の回路図
12年6月2日土曜日
- 19. モーターを逆回転させる方法
さらに調べると、Hブリッジ回路を内蔵したドライバ
(IC?)があるらしい
使い方は単純に結線するだけ!
前進・後退・停止はデジタル出力でコントロール。
PWMを使ってアクセルコントロールも出来る。
モーター駆動は別電源を使える
すばらしい!!
こんなの
12年6月2日土曜日
- 20. ブレッドボードで組む
そんなこんなで、一旦できました!
でも問題点山積み...
頭でっかち!
そして重い
戦車に載り切らない
...動かない...
電流は来てるっぽい
12年6月2日土曜日
- 21. 対策を考える(その1)
そもそも何故動かんのだ?
逆さにするとキャタピラは動く。でもトルクがな
いので走ることはできない。
9V電池を4個直列繋ぎ(=36v)にしてみる → 煙が出る
そもそも、単三電池4本(=6v)で動いていたはず!
単三電池6本(=9v)のケースを見つけた。これなら
いけるんじゃね? → 動いた
よくわからんけど、9v電池だと出力できる電流が足りないとかなのかな?
動く要素は電圧だけじゃないんだ。へー
12年6月2日土曜日
- 22. 対策を考える(その2)
USB給電用のバッテリーでかすぎ!
コレはラジコンのバッテリーボックス(単三電池4
本)から取るように変更
接続用のコネクタはハンダ付けして自作
電圧がちょっとぐらい変わっても動くはず!
12年6月2日土曜日
- 23. 対策を考える(その3)
Arduino Mega-ADKでかすぎ!
使ってないポートが多すぎる! むだムダ無駄!!
最近発売されたHarpy-Nanoってのが、ちっちゃく
て安くて良い感じ!
ADK互換
Arduino互換
デジタル入出力6ポート
アナログ入力7ポート
これで¥2880!!
(HarpyNano単体の場合)
参照:harpyhack.com
12年6月2日土曜日
- 24. 対策を考える(その4)
そもそもブレッドボードでかすぎ!
ユニバーサル基板を使えば、小さ 表
くできるかも!?
部品をはんだで固定し、自分で
配線する
おれのハンダゴテが火を噴くぜ! 裏
ユニバーサル基板の例
12年6月2日土曜日
- 25. ユニバーサル基板で組む
ホントに火を吹いた
実際に部品がハンダゴテに焼かれてしまった!!
でも、なんとかできた
すごく小さくなった!
でも、収まりが悪い
作り直しだ…
12年6月2日土曜日
- 26. ハード部分完成
今度こそ完成!
HarpyNanoとユニバーサル基板をソケットで接続し
た。収まり良いのでオススメ!
ケースは名刺入れのプラケースを削った
12年6月2日土曜日
- 28. ADKの制御
ADKのリファレンス実装を理解することは大切だけ
ど、あれを毎回書くのは大変
Javaコード部分は、要はシリアル通信なので、送信
と受信をシンプルに実装した汎用クラスを使い回せ
ば良いと思う
12年6月2日土曜日
- 29. ADKCore(自作クラス)
ADK制御用自作クラスADKCoreを作った
インスタンスを作って
面倒な処理は全部移譲
12年6月2日土曜日
- 30. ADKCore(自作クラス)
ADKへのメッセージ送信はsendCommand()
メッセージ受信はReceiveListenerを使う
これだけ。
12年6月2日土曜日
- 31. 音声コマンドの実装
android.speech.SpeechRecognizerというクラスを使
うと、音声認識した結果の文字列を取得できる
12年6月2日土曜日
- 32. 音声レスポンス
本当は映画などから必要な音源をピックアップした
かったけど、あまりに語彙が少なくて断念。Android
にしゃべらせることにした
Android標準のテキスト読み上げシステムText to
Speach(TTS)は、日本語をサポートしていない
2011年9月にKDDI研究所よりN2 TTSという、標準フ
レームワーク互換の日本語読み上げシステムが提供さ
れた。現在はPlayストアからN2 TTSを無料でダウン
ロードでき、TTSとして登録した後、日本語を渡すと
読み上げることができる
12年6月2日土曜日
- 33. 音声レスポンス
使い方
APIDemosと同じコードで十分動きます
Locale.JAPANを指定するだけ
12年6月2日土曜日
- 34. リモートコントロール
やっぱ人として、手元のAndroidを使って、ラジコン
を操作したくなりますよね?
せっかくアンテナ取ったのにね。
IP指定でソケット通信してもいいけど、将来的に複数
の端末を協調動作させたいので、ちゃんとしたプロ
トコルを使いたい
12年6月2日土曜日
- 35. リモートコントロール
今回はXMPPを使う
GTalkとかJabberに使われてるプロトコル。要はIM
として必要な機能のためのプロトコル
今回は、手元のAndroidからラジコンに乗ってる
Androidに、テキストメッセージを渡してコント
ロールする(複雑なデータならJSONでもOK)
でも最近XMPPは下火で、ちゃんとメンテナンスされ
ているAndroid用XMPPライブラリが少ない
今回はasmack-android-7というライブラリを使用す
る。コードはステップ数が結構あるので割愛
12年6月2日土曜日
- 36. まとめ
電子工作おもしろい。
みんな手を付けてない(=比較的簡単に解決できる問題
が身近にたくさん残っている=ビジネスチャンス!?)
タブレット型Android+ADKを使った自作デバイス+自
作アプリ(+サーバ)の組み合わせで、業務用システムを
作る機会が増えてくるのでは?
12年6月2日土曜日
- 37. おしまい
ご清聴ありがとうございました
12年6月2日土曜日