XBeeラジコンテスト1

XBeeでタミヤの紐コンをラジコン化するテスト
(今日は似非リアルタイム更新で書きます)

 昨日XBeeでのPWM出力を調べてましたが、ぜんぜん見つからない。で、今朝見つけました。そこにはPWM出力はXBeeのシリーズ1のみ。自分が持ってるシリーズ2では使えないとな。

 PWMはロボットのモーターの速度変更に使いたいだけなので、固定速度での動作なら必要はない。でも、なんか負けた気がするのでマイコンをはさもうと思う。

  1. XBeeシリアルにコマンド文字列を送ってマイコンが解釈して制御するパターン
  2. XbeeのDIOを使って数パターンのPWMデューティー比を渡しマイコンが解釈して制御するパターン

 1.だとXBeeのAPIフレームを解釈するのでメモリ大きめのマイコンが必要。ただ、今後の搭載センサによる自律行動のプログラミングは楽になる。
 2. だと左右のモータの制御につかう4つのDIO以外を使って数ビットのPWM値パターンを決めておいての制御。2ビットか3ビットなら、ATtiny45/85系の8ピンAVRとかでもできるし。

今回は敢えて、2.の方法を試してみたい。自律行動をさせる為のセンサーの接続も14ピンのATtiny84にすれば良い。ちょうどうちには在庫があるし。

 なんてことを書いたものの、プロトタイプ版はAVRはATmega328Pで、フレームワークもArduinoで。時間短縮の為です。あとでシュリンクしていけば良いのさ。

 さて洗濯物干しが完了したので、Fritzingでブレッドボードでの実体配線図を書きます。

ロボット側XBeeのピン選択
モーター1-正 DIO1(XBee Pin19)
モーター1-逆 DIO2(XBee Pin18)
モーター2-正 DIO3(XBee Pin17)
モーター2-逆 DIO6(XBee Pin16)
PWM値ビット0 DIO4(XBee Pin11)
PWM値ビット1 DIO8(XBee Pin9)
PWM値ビット2 DIO11(XBee Pin7)

 こんなかんじですかね。モータドライバTB6612のPWMは最初はデューティー比100%でテスト。デューティー比は3ビット表現の8値から選ぶ感じ。2つ使って現在値から上げる、下げるにする事もありですが、そんな細かい速度調整の操作は要らんからやめた。
20130518_01

 X-CTUでピンの設定をしようとしたら、DIGITAL OUTにHighとLowの二種類ある。どういう意味だ?デフォルト値の設定なのか?調べ中。よくわからんのでとりあえずHigh。
 さらに問題。DIOの8はX-CTUの設定項目に無いようで・・・。DIO12に変更しました。

ロボット側XBeeのピン選択
モーター1-正 DIO1(XBee Pin19)
モーター1-逆 DIO2(XBee Pin18)
モーター2-正 DIO3(XBee Pin17)
モーター2-逆 DIO6(XBee Pin16)
PWM値ビット0 DIO4(XBee Pin11)
PWM値ビット1 DIO12(XBee Pin4)
PWM値ビット2 DIO11(XBee Pin7)

20130518_02

 こうですかね?PWMは短期的には次の目標なので、まぁこのままで置いておく。

 さて、現実のブレッドボードでの配線をします。

 どうやら、X-CTUのDigitalOUTの HIGH LOWは初期状態の設定のようです。モータドライバの入力の片方をLOW・片方をHIGHにしたら、モータが回りましたから。あと、モータドライバはスタンバイピンをONにする必要があったようで追加配線しました
20130518_03
 次はリモート側からの制御テストです。

 一旦休憩。

 お古のXBeeの設定がうまく保存できなくて、ファーム焼き直してデフォルトから設定。
どうやらDIO6も使えなさそうなのでDIO10に移設するか、2bit4値にするか。

で、XBeeの設定ですったもんだ。設定したあとで読み直すと変わっているという状態が何度か。シリアルアダプタかUSBハブの問題か?どちらも電源容量かと。セルフパワーの7ポートUSBハブを2個使ってますので。
 とりあえず、デバイス側のXBeeからモータードライバを介してつながってるモータの制御は成功しました。
 なんかX-CTUも落ちるし、Windows8だから?自分の意識的には最新のOS最新のソフトを使ったほうがセキュリティ的には全然安心できると思うのですけどね。

 では、タクトスイッチを使った似非リモコンを作ります。

 20130518_11
 結局こんな感じかい(苦笑)

 続きは明日か、来週末か?


今年の種まき

20130517_01

 朝顔のたねをジフィーセブンに蒔いていたのが発芽して来ました。朝顔は4つくらい。残りはツレのリクエストでコリアンダー。コリアンダーは食材として大事なのでこっちがメインかも。
 うちのベランダは奥まで光があたらないので、朝顔は結構微妙な成長になります。

 とは言っても今週はツレのバラがガンガン咲いてこんな感じ。
20130517_02
 あまり咲かせていると弱るので、今朝ツレが花を切り取って玄関に飾ってました。玄関に入るとナエマの良い香りです。


今週末の趣味工作の素材

20130517_03

 まな板の上の食材状態でブレッドボード上に並べてみた。

 XBeeでモーターをリモコン操作するのがこの週末の目標。最終目標は自律型行動とキネクトでのコントロールだけど。最終までやらないと思うw。
 とりあえず使っていないXBeeをパーツ棚から選別して、基地局側をXBee PRO S2B,デバイス側XBee S2のチップアンテナタイプ。このチップアンテナタイプってディスコンみたいでもう売ってない。うちには5,6個ある。で、X-CTUにてPAN IDを揃えてファームを入れ替える設定まではした。

 で、この2つのXBeeで通信ができるように、PCでの基地局コントロール側の環境を構築する。PCを変えてからProcessingを使っていないのでProcessing&XBeeな環境を構築予定。ただProcessingがjavaベースなので、環境とライブラリのバージョン違い関連でハマったら速攻でC++で書けるmbedのマイコン基地局作成に切り替える。

 通信ができたらPWMは使わない、ON/OFFでのモータ制御。正転、逆転、ストップ、ブレーキ。電流も目安的に測定。

 次はPWMを入れた回転速度調整ありの感じで実装。と思っていたけど、XBee単体でPWM出力はできないのかな?AVRをつなぐかね。


TB6612モータードライバテスト

20130516_01

 帰りがちと遅くなったので軽くテスト。

 まずSparkfunのTB6612FNGのブレイクアウトにピンヘッダを半田付。モーターなので太ピン。「TB6612」&「3V」で検索して引っかかったこのサイトのままでテスト。
 電源3.3vでFA130はOK。plasma DASH MOTORは動こうと頑張ってるけどダメだな。電流が足りない感じ。
 マイコンばかりいじってたので加減がよくわからん。

 あとで単三電池3本の4.5Vをつないだらプラズマダッシュモーターも動いてはいました。でも、pwmでon部分が少ない状態だと回り始めないですね。理屈はなんとかなくわかる。

 ともあれFA130なら3VでもTB6612で動かせるのがわかったので大収穫。


タミヤの紐コン模型の改造計画

 まずはラジコン化しようと思う。

 で、XBeeの出力レベルで動作するモータードライバをさがして東芝のTB6612FNGが見つかった。PWM入力もOK。即発注してみたものの、これモータ側電源が4.5V~13.5Vだとわかった。実際にモータードライブ側にどれくらいの電圧で出てくるかしだいだけど、タミヤの模型のモーターは1.5V~3Vが定格のFA130だぞな。現物合わせで試してみるしか無いかね。

 ただ、タミヤのこれ系の紐コン模型シリーズはモーターがFA130が基本みたいで、一斉を風靡したミニ四駆のカスタムモータもFA130と形は一緒。ということで、お試しにプラズマダッシュモーターを発注してみました。

 FA130とかRE260とかは小学校の頃お世話になりましたよ。寿命がきたらバラして中の磁石を取ったり。で、マブチのHPみてみたらFC-130SA(3V~4.5V)とかあったり。モーター系は知識が小学生で止まっているので色々発見ばかり。ギアボックスの歯車が金属製じゃなくなっていたりとかね。


TAMIYAのリモコンインセクトを作成

20130514_01

 TAMIYAの6本脚歩行模型の「リモコンインセクト」を作成。ネジ止めorはめ込みなのでサクッと完成。動かしてみると実に面白い。本体上にはいくらか余裕があるので、電池ボックスとXbeeとマイコンとモータードライバを載せてラジコン化とか、マイコンと近接センサを載せて自律移動ロボットとかにしていきます。

 今までセンサタイプのマイコン工作しかしていないので、自分で操作するタイプとか動くタイプは新鮮です。

 で、その前に。同じくTAMIYAの「リモコンロボット製作 クローラータイプ」も入手してあるのでこいつも組み立てます。