徒然なるままにMake:

Fusion360 3Dプリンタ 電子工作 面白そうなモノづくりをやっていくブログ

3Dプリンターでロボット作ってみる 多脚ロボット編 26 遠隔操作編 XBeeの通信設定2

前回

XBee同士の通信をしました。

something-make.hatenablog.com

このロボットの3Dデータは下のリンクのものを使用しています

 

今日はXBeeArduino同士の通信をやってみます。

 

このページを参考にArduino同士の通信をXBeeの無線通信でやってみます。

www.storange.jp

左のスイッチを押すと、信号が左のArduinoから右のArduino

に伝わり、右のLEDが点灯します。


3Dプリンターでロボット作ってみる 多脚ロボット編 26 遠隔操作編

 

これでXBeeArduinoどうしを通信させる方法がわかりました。

これを使えばロボットを遠隔操作できそうです。

3Dプリンターでロボット作ってみる 多脚ロボット編 25 遠隔操作編 XBeeの通信設定1

前回

EAGLEのライブラリでXbee用のソケットを作りました

something-make.hatenablog.com

このロボットの3Dデータは下のリンクのものを使用しています

 

今日はXBeeで通信をやってみます。

XBeeの設定方法がとてもわかりやすかったサイトを参考にしました。

www.storange.jp

 

 

 

 

用意したもの

XBee2つ

相互通信するので当然2つ必要です。

不具合が無いように型番が同じものを用意したほうがいいと思います。

 

 

XBee USBアダプター2つ

XBeeとPCをUSB接続することができるパーツです。XBeeに合わせて二つ買っておきます。

 

ちなみに私は秋月のXBee USBインターフェースボードキットを使っています。こちらの方が安価です。

akizukidenshi.com

・USB-microBケーブル2本

インターフェースボードをPCに接続するためのUSBケーブルもそろえておきます。

手元にあるのなら当然必要ありません。

必要ならブレッドボードも買っておきましょう。

 

 

PCとの接続

XBeeをUSBインターフェースに取り付け、USBケーブルで両方ともPCに繋ぎます。そのままだとケーブルの曲がりでUSBインターフェースが転がってしまうので、私はブレッドボードに刺しました。

f:id:something-make:20181001231758j:plain

 

PCに接続したらXBee設定ソフトのXCTUをダウンロードしてインストールします。

起動させたら画面左上のDiscover Deviceをクリックして、PCに繋がっているXBeeを探します。

f:id:something-make:20181001232359p:plain

 

すると私の環境ではCOM5COM6に接続されているのがわかりました。

両方を選択してNextをクリックします。

f:id:something-make:20181001232726p:plain

 

次に通信速度等の設定をするのですが、これはデフォルトのままでとくに問題ないと思うのでFinishをクリックした後、ADD SELECT DEVICEをクリックして接続設定が完了します。

f:id:something-make:20181001233443p:plain

f:id:something-make:20181001234241p:plain

 

 

 

XBeeファームウェア設定

XCTUがXBeeを認識したので、それぞれにファームウェアを書き込みます。

f:id:something-make:20181001234343p:plain

XBeeは様々な通信形態に合わせて機能別のファームウェアを書き込むことで、その機能が変わります。

現在3種類の機能があり、

  • コーディネータ
  • ルータ
  • エンドデバイス

と呼ばれます。今回は片方をコーディネータもう片方をルータにするためのファームウェアを書き込みます。

それぞれのXbeeを選択してUpdateボタンを押します。

f:id:something-make:20181001235024p:plain

するとファームウェアの選択画面が出るので、コーディネーターにするために、ZigBee Cordinator ATの最新バージョン(Newest)を選択してUpdateで入力します。

f:id:something-make:20181001235152p:plain

もう片方はルータにするためにAigBee Router ATをUpdateで入力します。

f:id:something-make:20181001235156p:plain

 

ここから、それぞれのXBeeの設定を行います。

設定項目は3つ

  • PANID
  • DH
  • DL

まずPANIDですが、これはルータとコーディネータで同じ数字を入力します。

要は同じグループなら同じ数字なわけです。私は777を入力しました。

 

DHは通信相手のMACアドレスの上8ケタ、DLは通信相手のMACアドレスの下8ケタを入力します。

ルータのDHDLにはコーディネーターのMACアドレスを、

コーディネーターのDHDLにはルータのMACアドレスを入力します。

MACアドレスはそれぞれの左側のXBeeバイスに表示されています。

f:id:something-make:20181001235740p:plain

設定が終わったらWriteボタンを押して書き込みます。

f:id:something-make:20181002001024p:plain

これでファームウェアの設定は完了です。

 

パケット送信

コーディネータとルータの両方に書き込みが終わったら、右上のコンソールボタンを押して、コンソールモードにします。

f:id:something-make:20181002001126p:plain

 

コーディネータとルータのOpenになっているボタンを押して、Closeにして接続します。

f:id:something-make:20181002001317p:plain

 

どちらか片方のXBeeを選択して、Add new packet to the listをクリックして、送信するパケット(メッセージ)を作ります。

f:id:something-make:20181002003904p:plain

 

とりあえず「Hello」というパケットを作ります。

f:id:something-make:20181002004755p:plain

 

パケットを選択して、Send selected packetで送信します。

f:id:something-make:20181002010136p:plain

 

送信に成功するとConsole log青字で表示されます。

f:id:something-make:20181002010227p:plain

 

そして、もう片方のXBeeConsole logに受信結果が赤字表示されます。

f:id:something-make:20181002010243p:plain

 

これでXbee間の通信をすることができました。

割と簡単にできて驚いています。

この機能を使って文字をArduinoからArduinoに送ってやれば、ロボットを遠隔操作することができるはずです。

 

次回は、これをどうやってArduinoに接続するかについてやっていきます。

3Dプリンターでロボット作ってみる 多脚ロボット編 24 遠隔操作編 Eagleで基板製作3

前回

EAGLEでライブラリ作れるようになりました。

something-make.hatenablog.com

このロボットの3Dデータは下のリンクのものを使用しています

 

 今日からはEAGLEで実際にデータを作っていきます。

www.autodesk.co.jp

学習方法はこちらのブログを参考にしました。

akiracing.com

まず無線通信用のXBee変換ソケットを作ります。

 XBeeZigBee規格の無線通信を行うユニットで、XbeeユニットをArduino等のマイコンのTX,RXコネクタに接続することで、マイコン間の低電力相互通信ができるようになります。

 

要はこのユニットをつければ、ロボットに信号を送るだけでなく、ロボットからの信号も受信することができるようになるわけです。

 

今回はこのXBeeを使ってロボットの遠隔操作をします。

 

 

akizukidenshi.com

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を搭載しているかの違いです。

 

 

ちなみに今回ライブラリを作るのは秋月電子通商の変換基板です。

akizukidenshi.com

Arduinoに3.3V電源がついているのにわざわざ変換するのは無駄な気もしますが、

 

スイッチサイエンスよりも安いのでこれを買いました。

 

早速EAGLEでライブラリを作っていきます。

まず足の配置とパーツの外枠を入力します。

f:id:something-make:20180930225929p:plain

 

配置されているピンの情報を入力します。

f:id:something-make:20180930230033p:plain

それぞれのデータを関連付けることで、ライブラリが完成しました。

f:id:something-make:20180930230256p:plain

この調子で他の部品も入力していく予定です。

3Dプリンターでロボット作ってみる 多脚ロボット編 23 遠隔操作編 Eagleで基板製作2

前回

EAGLEはじめました。

something-make.hatenablog.com

このロボットの3Dデータは下のリンクのものを使用しています

 

 きのうに引き続き、EAGLEの使い方を学びます。

www.autodesk.co.jp

学習方法はこちらのブログを参考にしました。

akiracing.com

今日はライブラリの作り方をやりました。

部品のコネクタ配置、基板での寸法等のデータを入力して関連付けることでライブラリを作ることができます。

座標関係で少々手間取りましたが、これでいろんな部品を作れるようになるはずです。

f:id:something-make:20180929202025p:plain

3Dプリンターでロボット作ってみる 多脚ロボット編 22 遠隔操作編 Eagleで基板製作1

前回

しっかり歩くようになりました。

something-make.hatenablog.com

このロボットの3Dデータは下のリンクのものを使用しています

 

 3Dプリンターのトラブルやサーボモータ初期不良、バッテリーの重量等、様々なトラブルに逢いましたが、ついにロボットを歩かせることができました。

 


3Dプリンターでロボット作ってみる 多脚ロボット編21

 

ここからはロボット製作技術ステップアップのための作業になります。

とりあえずの今後の目標として

  1. 回路基板の自作
  2. 無線通信での操作
  3. 歩行プログラムの改善

があります。

このうち1と2は同時にできるので、直近の目標としてやっていきます。

 

基板の作り方

基板の製作は生基板をCNCルータで削って作る予定です。

現在基板CADとして有名なEAGLEの無償版を使用します。

Fusion360との連携も考えられているので便利そうです。

www.autodesk.co.jp

学習方法はこちらのブログを参考にしました。

akiracing.com

こういう部品の関係を作ると、

f:id:something-make:20180928193210p:plain

それに対応した基板のデータを自動生成してくれる便利なソフトです。

f:id:something-make:20180928193214p:plain

次回はさらに詳しくEAGLEの使い方を学びます。

3Dプリンターでロボット作ってみる 多脚ロボット編21

前回

something-make.hatenablog.com

このロボットの3Dデータは下のリンクのものを使用しています

 

サーボモータを交換したらしっかり歩いてくれました。

 


3Dプリンターでロボット作ってみる 多脚ロボット編21

 

これで3Dプリンターで作るロボットは一区切りです。

今後は無線通信でコントロールすることを目標にします。

3Dプリンターでロボット作ってみる 多脚ロボット編20

前回

something-make.hatenablog.com

このロボットの3Dデータは下のリンクのものを使用しています

 

昨日から足の一本が不調でプログラムを何度修正しても直りませんでした。

何度やってもわからないので、試しに昔のプログラムをロードしてみました。


3Dプリンターでロボット作ってみる 多脚ロボット編20

このプログラムは初期姿勢をとり続けるプログラムなのですが、これを入れてようやく原因が判りました。

 

原因はプログラムのミスではなくサーボモータの不調でした。

 

ずっと動かしていたのでこの不調に気付けませんでした。

 

とりあえず次回は交換してみます。