組み込みAndroidな元気人を探せ!(3) ―― 音声認識ロボット「ドロンくん」を作ってみた
●ドロンくんを製作開始,まずは足回りから
筆者も電子部品を購入して,いざ製作開始!注5
注5:主要な電子部品は秋葉原の秋月電子通商で手に入る.もちろんネット通販でも購入できる.
足回りは,模型用のDCモータ2個で動くものなら何でもよいのですが,今回はモータやギア,シャーシなどの足回りについては,筆者の押し入れで眠っていたブルドーザの基本キットのものを使用しました(写真4).
ちなみに,今岡さんが2009年11月に作成した資料「Androidデバイスを搭載した2輪独立駆動ロボット」に載っている初期のドロンくんの写真から,足回りを安価にすませるためのアイディアを見ることができます.
●DTMFデコーダ部の回路製作と確認
足回りができたので,次は電子回路の製作です.まずはDTMFのデコーダ部を,ブレッド・ボードに組みました(写真5).
秋月電子の150円ブレッドボードにDTMFデコーダIC(CM8870)を載せて,3.58MHzセラミック発振子を取り付け,後は,音声入力廻りなどのC(コンデンサ)とR(抵抗)を取り付けるだけで,DTMFデコーダ部が完成します(回路図は写真3を参照のこと).音声入力のコネクタは,100円ショップで買ってきたステレオ・イヤホンの線とプラグ(3極ステレオ・ミニジャック)を流用し,Androidのイヤホン・ジャックから直接信号を取り出して,基板の音声入力に接続しました注6.
注6:なお今回は,Android端末として「HTC EVO WiMAX ISW11HT」を使用した.Androidのイヤホン・ジャックは機種によって異なるので,工夫が必要な場合もある.
DTMFデコーダのテストは,Androidの代わりにパソコン用のDTMF信号生成ソフトウェア注7を使って音を出し,テストをしました.多少の不具合注8はありましたが,無事動作しました.
注7:使用したDTMF信号生成ソフトウェアは,「ソフトウェアDTMFコントローラ」である.
注8:秋月電子でCM8870PIを購入すると,おまけの3.58MHzセラミック発振子が付いてくる.CM8870PIのデータシートを見ると水晶発振子の使用が推奨されているが,今回はこのセラミック発振子を使用した.しかし,電源を入れても発振せず,別のセラミック発振子に交換したところ動作した.本来5Vの回路を,電池2個の3Vで動作させていることもあるが,もしかしたら相性の問題があるのかもしれない.
●モータ駆動部の製作とテスト
次はモータ駆動部の製作!と思ったら,トランジスタ(2SC1815)の手持ちの数が足りないことが分かりました.今岡さんに教えてもらったオリジナルの回路では,2SC1815が8個必要でした(入力段が1個,出力段は3個並列でダーリントン接続注9とし,それを2組用意する).そこで,出力段のトランジスタを,手持ちの2SC2120Yに変更してみました(回路は写真3を参照).2SC2120Yのコレクタ電流は800mAと大きいので,数が1個ですみます.
注9:ダーリントン接続とは,複数のトランジスタを組み合わせて,電流増幅率(hFE)を増加する手法である.
なお,DCモータを駆動すると大きなノイズが発生します.そのため,ノイズ吸収用のコンデンサを取り付ける必要があります.このコンデンサはモータの端子に直接取り付けます(写真6).
回路に電源をつなぎ,電源を入れると,DTMFトーン信号を入れなくてもモータが回転するときがあります.そのため,電源ON時にドロンくん(の本体)が意図しない動きをする場合がよくあります(暴走モード注10).そのとき机から落ちないように,注意してください.
注10:自走式ロボットを組んだことのある人は経験があると思うが,電源ONで暴走することがよくある.運悪く机から奈落の底へ転落...とならないように,まずは床の上での試運転をお勧めする.筆者も10年ほど前,LEGO MINDSTORMSが暴走して机から落下し,お亡くなりになった.それも営業先でのデモの準備中に....orz
この制御が効かない暴走モードは,ドロンくんにAndroidを載せて,ドロンくんのアプリで制御することにより,収束します注11.
注11:ドロンくんのアプリは,モータを止めるためのDTMFトーン信号を随所で出すように組んである.
最後に,ドロンくんの足回りと電子回路,電池ケース(単三電池2個,スイッチ付きが便利)を接続すれば,ハードウェアは完成です(写真7).