3Dプリンターでロボット作ってみる 多脚ロボット編 26 遠隔操作編 XBeeの通信設定2
3Dプリンターでロボット作ってみる 多脚ロボット編 25 遠隔操作編 XBeeの通信設定1
前回
EAGLEのライブラリでXbee用のソケットを作りました
このロボットの3Dデータは下のリンクのものを使用しています
今日はXBeeで通信をやってみます。
XBeeの設定方法がとてもわかりやすかったサイトを参考にしました。
用意したもの
・XBee2つ
相互通信するので当然2つ必要です。
不具合が無いように型番が同じものを用意したほうがいいと思います。
・XBee USBアダプター2つ
XBeeとPCをUSB接続することができるパーツです。XBeeに合わせて二つ買っておきます。
ちなみに私は秋月のXBee USBインターフェースボードキットを使っています。こちらの方が安価です。
・USB-microBケーブル2本
インターフェースボードをPCに接続するためのUSBケーブルもそろえておきます。
手元にあるのなら当然必要ありません。
必要ならブレッドボードも買っておきましょう。
PCとの接続
XBeeをUSBインターフェースに取り付け、USBケーブルで両方ともPCに繋ぎます。そのままだとケーブルの曲がりでUSBインターフェースが転がってしまうので、私はブレッドボードに刺しました。
PCに接続したらXBee設定ソフトのXCTUをダウンロードしてインストールします。
起動させたら画面左上のDiscover Deviceをクリックして、PCに繋がっているXBeeを探します。
すると私の環境ではCOM5とCOM6に接続されているのがわかりました。
両方を選択してNextをクリックします。
次に通信速度等の設定をするのですが、これはデフォルトのままでとくに問題ないと思うのでFinishをクリックした後、ADD SELECT DEVICEをクリックして接続設定が完了します。
XBeeのファームウェア設定
XCTUがXBeeを認識したので、それぞれにファームウェアを書き込みます。
XBeeは様々な通信形態に合わせて機能別のファームウェアを書き込むことで、その機能が変わります。
現在3種類の機能があり、
- コーディネータ
- ルータ
- エンドデバイス
と呼ばれます。今回は片方をコーディネータ、もう片方をルータにするためのファームウェアを書き込みます。
それぞれのXbeeを選択してUpdateボタンを押します。
するとファームウェアの選択画面が出るので、コーディネーターにするために、ZigBee Cordinator ATの最新バージョン(Newest)を選択してUpdateで入力します。
もう片方はルータにするためにAigBee Router ATをUpdateで入力します。
ここから、それぞれのXBeeの設定を行います。
設定項目は3つ
- PANID
- DH
- DL
まずPANIDですが、これはルータとコーディネータで同じ数字を入力します。
要は同じグループなら同じ数字なわけです。私は777を入力しました。
DHは通信相手のMACアドレスの上8ケタ、DLは通信相手のMACアドレスの下8ケタを入力します。
ルータのDHDLにはコーディネーターのMACアドレスを、
コーディネーターのDHDLにはルータのMACアドレスを入力します。
MACアドレスはそれぞれの左側のXBeeデバイスに表示されています。
設定が終わったらWriteボタンを押して書き込みます。
これでファームウェアの設定は完了です。
パケット送信
コーディネータとルータの両方に書き込みが終わったら、右上のコンソールボタンを押して、コンソールモードにします。
コーディネータとルータのOpenになっているボタンを押して、Closeにして接続します。
どちらか片方のXBeeを選択して、Add new packet to the listをクリックして、送信するパケット(メッセージ)を作ります。
とりあえず「Hello」というパケットを作ります。
パケットを選択して、Send selected packetで送信します。
送信に成功するとConsole logに青字で表示されます。
そして、もう片方のXBeeのConsole logに受信結果が赤字で表示されます。
これでXbee間の通信をすることができました。
割と簡単にできて驚いています。
この機能を使って文字をArduinoからArduinoに送ってやれば、ロボットを遠隔操作することができるはずです。
次回は、これをどうやってArduinoに接続するかについてやっていきます。
3Dプリンターでロボット作ってみる 多脚ロボット編 24 遠隔操作編 Eagleで基板製作3
前回
EAGLEでライブラリ作れるようになりました。
このロボットの3Dデータは下のリンクのものを使用しています
今日からはEAGLEで実際にデータを作っていきます。
学習方法はこちらのブログを参考にしました。
まず無線通信用のXBee変換ソケットを作ります。
XBeeはZigBee規格の無線通信を行うユニットで、XbeeユニットをArduino等のマイコンのTX,RXコネクタに接続することで、マイコン間の低電力相互通信ができるようになります。
要はこのユニットをつければ、ロボットに信号を送るだけでなく、ロボットからの信号も受信することができるようになるわけです。
今回はこのXBeeを使ってロボットの遠隔操作をします。
XBeeは基板の規格が一般的なピン間隔2.54mmではなくピン間隔2mmだったり、電源と信号がArduinoの5V規格と違って3.3V規格なので変換基板を使うのが一般的です。
まあ、何より重要なのは変換基板を使えば工作用の電子部品として比較的高価なXBeeユニットを使いまわせることです。
基板を自作するので、直接基板に2mm間隔の穴をあけて半田づけすれば機能としては問題ありませんし、Arduinoには3.3Vの電源も標準でついていますが、2500円もするXBeeユニットを基板につけっぱなしというのはちょっと勿体無いわけです。毎回毎回ハンダ吸い取り線や吸い取り機を使って20箇所のハンダを剥がすのも面倒ですしユニットが痛みます。
ちなみにこういったXbee変換ソケットは似たようなものがいくつかありますが、大体は電源と信号の変換機能の有無で区別されます。電源を5V→3Vに変換するレギュレーターや入力される信号と出力される信号を5V→3.3V 3.3V→5Vに変換してくれるレベル変換ICを搭載しているかの違いです。
ちなみに今回ライブラリを作るのは秋月電子通商の変換基板です。
Arduinoに3.3V電源がついているのにわざわざ変換するのは無駄な気もしますが、
スイッチサイエンスよりも安いのでこれを買いました。
早速EAGLEでライブラリを作っていきます。
まず足の配置とパーツの外枠を入力します。
配置されているピンの情報を入力します。
それぞれのデータを関連付けることで、ライブラリが完成しました。
この調子で他の部品も入力していく予定です。
3Dプリンターでロボット作ってみる 多脚ロボット編 23 遠隔操作編 Eagleで基板製作2
前回
EAGLEはじめました。
このロボットの3Dデータは下のリンクのものを使用しています
きのうに引き続き、EAGLEの使い方を学びます。
学習方法はこちらのブログを参考にしました。
今日はライブラリの作り方をやりました。
部品のコネクタ配置、基板での寸法等のデータを入力して関連付けることでライブラリを作ることができます。
座標関係で少々手間取りましたが、これでいろんな部品を作れるようになるはずです。
3Dプリンターでロボット作ってみる 多脚ロボット編 22 遠隔操作編 Eagleで基板製作1
前回
しっかり歩くようになりました。
このロボットの3Dデータは下のリンクのものを使用しています
3Dプリンターのトラブルやサーボモータの初期不良、バッテリーの重量等、様々なトラブルに逢いましたが、ついにロボットを歩かせることができました。
ここからはロボット製作技術ステップアップのための作業になります。
とりあえずの今後の目標として
- 回路基板の自作
- 無線通信での操作
- 歩行プログラムの改善
があります。
このうち1と2は同時にできるので、直近の目標としてやっていきます。
基板の作り方
基板の製作は生基板をCNCルータで削って作る予定です。
現在基板CADとして有名なEAGLEの無償版を使用します。
Fusion360との連携も考えられているので便利そうです。
学習方法はこちらのブログを参考にしました。
こういう部品の関係を作ると、
それに対応した基板のデータを自動生成してくれる便利なソフトです。
次回はさらに詳しくEAGLEの使い方を学びます。
3Dプリンターでロボット作ってみる 多脚ロボット編21
3Dプリンターでロボット作ってみる 多脚ロボット編20
前回
このロボットの3Dデータは下のリンクのものを使用しています
昨日から足の一本が不調でプログラムを何度修正しても直りませんでした。
何度やってもわからないので、試しに昔のプログラムをロードしてみました。
このプログラムは初期姿勢をとり続けるプログラムなのですが、これを入れてようやく原因が判りました。
原因はプログラムのミスではなくサーボモータの不調でした。
ずっと動かしていたのでこの不調に気付けませんでした。
とりあえず次回は交換してみます。