arduinoと xbeeでラジコン的なもの

2010/06/06

Categories: arduino

先月観に行ったMTM05会場で、スイッチサイエンスの出店で、xbee×2とxbeeシールドを買ってきた。
ZigBee対応版は在庫がないそうで、シリーズ2を2つ購入。後からファーム更新してZB対応版相当品に。

xbeeでラジコン的な作例はたくさんあるので、今さら感あふれる感じなんだけど、とにかく自分で実際にやってみたかったのだった。

機構・構造部品は、少年時代を思い出すTAMIYAの「楽しい工作シリーズ」を使った。
昔懐かし、ツインモーターギアボックストラック&ホイールセットでクローラ風にしてみる。
このギアボックス、子供の時は金属フレームかつ完成品だったような気がしたんだけど(はっきり覚えてない)、今はプラスチック製で組み立て式なんだな。

最初、ユニバーサルプレートという工作界のユニバーサル基板みたいなヤツを一枚しか買ってなくて、ギアボックスとキャタピラを乗せたら、電池も回路も置く場所がなくなってしまった・・・。
ユニバーサルプレートをもう一枚と、ユニバーサル金具というL字に使える構造材を買い足した。

で、出来たのがコレ。なんか配線がピンピン飛び出てて危なっかしい・・。
SN3E0071.JPG

テーマは、
ていう感じ。

モーターは2つで、左右の動輪をそれぞれ駆動している。細かい回転の制御は何もやってなくて、全開かオフかの二択だ。TA7291Pを2つ使っていて正転と逆転のコントロールはかろうじて可能に。

手持ちの電池ケースが単三×4のしかなくて、勢いが良すぎた。TA7291PのVrefをもっと下げておけばよかった。ギア音うるさいし。

arduino用の電源は、二階建ての裏面に取り付けた006Pから供給。xbeeシールドを乗せちゃうと、Vinが隠れてしまうが、シールドと本体の隙間から無理やり差し込んだ。

ユニバーサルプレートはネジ止めだけで構造を乗せていけるので便利なんだけど、穴のピッチが5mm間隔のため、基板と合わなくて難儀する。結局、arduinoの方は2穴だけ使って斜めに配置、モータードライバを載せた基板は、アングルを使って90度立てることに。若干斜めになっているのは、こっちもネジ穴の位置が合わなかったため。

SN3E0073.JPG
arduino~xbee(シールド)間の通信は、普通にシリアル通信出来てしまう。便利だ。0ピンと1ピンを使うので、単にSerial.begin(ボーレート)しておいて、読み書きするだけ。

コード上は、aruduino IDE上のシリアルモニタを使って、コマンドとモータの動作を実装・確認。で、動かす時はXbeeシールドを乗っけるだけ(もちろんxbee間の設定は先に済ませておく必要がある)。

xbeeの設定は、XbeeエクスプローラUSBとDigi社公式のX-CTUで。

ここの環境では、2つのXbeeをどっちもFunctionSetを「Zigbee Router/End device AT」にして、お互い相手のシリアルナンバーをDH/DLに指定している。

1対1の通信では、Xbeeの良さをスポイルしてしまうが、ラジコン風用途で用いる分にはいいだろう、てことで。

PC側のXbeeは、XbeeエクスプローラUSBによって仮想COMポートとして見えているので、何らかのTerminalからぽちぽちと入力すれば、arduino側のXbee+シールドを通じてシリアル通信で読みだされる。

SN3E0072.JPG
シャープ測距モジュール GP2Y0A21YK。秋月電子で購入した。対象、というか壁のようなものとの距離を電圧で得られる。

距離と電圧の関係はリニアではないけど、近似式を求めた人がいたので、丸パクリしちゃう。ごっちゃんです。arduinoの場合、アナログ入力の分解能が10bitなので、analogRead()で得られた値を、(5/1024)倍して近似式に放り込む。

室内の蛍光灯下で、「手のひら」を対象に測った感じでは、9cmから50cmぐらいまではそれっぽい値が出ている感じがした。(これ以上遠くは物差しがなかったのでよくわからん)

本ラジコン風クローラでは、前進中で正面12cm未満に障害物が出てきたときは停止、というコードにしてみた。

十分加速したところから、検知・制動すると、壁際2~3cmというところで、危なっかしい(^^; が、制御して遊ぶのが目的なのでヨシとする。



キーボードからの入力で、工作がきーきー動くのはなんとも不思議な感じ。
やっぱり、モータの制御がON/OFFで大雑把過ぎるな。今度は各種センサからの情報を取り入れて細かく制御することをテーマにしてみたい。

ひとしきり遊んだ後で、いくらかかったかなーとふと思う。
 ・arduino=3,200円
 ・xbeeシールド=2,200円
 ・XbeeエクスプローラUSB=2,500円
 ・xbeeシリーズ2×2=5,960円
 ・ユニバーサルプレート×2=700円
 ・ツインモーターギアボックス=800円
 ・トラック&ホイールセット=600円
 ・ユニバーサル金具セット×2=800円
 ・測距センサ=400円
 ・TA7291P×2=360円
あとLEDとかコンデンサとかソケットがあるけど無視して・・・17,520円。
わぁ。


環境:
 Windows 7 Ultimate x64
  arduino 0018
 Arduino Duemilanove

>> Home