3Dプリンターでロボット作ってみる 多脚ロボット編 28 遠隔操作編 Eagleで基板製作1
前回
something-make.hatenablog.com前回はコントローラーを作りました。
このロボットの3Dデータは下のリンクのものを使用しています
今回はロボットの基板を製作していきます。
まずは回路図の作成です。
Eagleのライブラリのどこに何があるのかをリストにしているサイトを見つけたので、下にリンクを貼っておきます。
さて、このロボットに必要な部品をリストアップしてみます
- 電源用ピンヘッダ(3ピン)×1
- サーボモータ電源安定用電解コンデンサ1000μF×2
- 秋月電子通商低ドロップ三端子レギュレーターセット×1
- ArduinoNano互換機×1
- 秋月電子XBee変換基板×1
- サーボモータ用ピンヘッダ(3ピン)×12
- 電源用トグルスイッチ×1
リストアップしてみるととくに数はありません。部品を必要なだけ入れていきます。
Eagle部品ライブラリ選択
1.電源用ピンヘッダ
電源のバッテリーを接続するためのピンヘッダです。
pinhead->PINHD-1X3というそのまんまのものがあるのでこれを使います。
rcl -> CPOL-EU -> CPOL-EUE5-10.5
右の説明にgrid 5.08 mm, diameter 10.5 mmとあります。
5-10.5は配線間隔5.08mm,直径10.5mmの電解コンデンサという意味だったわけです。
こういった電子部品は一定の規格で作られていることがわかります。
3.秋月電子通商低ドロップ三端子レギュレーターセット×1
レギュレータがどこにあるのかわからなかったのでライブラリを自作します。
ライブラリ自作の方法は過去の記事を
something-make.hatenablog.com寸法は秋月電子通商のデータシートから得ます。
akizukidenshi.com20分程て完成しました。
4.ArduinoNano互換機は
を検索すると出てきたのでこれを入れます。
これは以前作ったものをそのまま使用します。
6.サーボモータ用ピンヘッダ(3ピン)×12
これもPINHD-1X3を使用すればいいように思いますが、今回の形式では使用してはいけません。今回、ロボットのサーボモータを接続する関係上、コネクタを横にならべるのですが、PINHD-1X3はPadが横に長いので、並べると干渉します。
左側のPadが重なっている部分が干渉しています。
これはパターンを細くしているので目立ちませんが、パターンを太くすると干渉したりするので、専用の3ピンのライブラリを作りました。
7電源用トグルスイッチ×1
switch -> 320-916が近いのでこれを採用します。
回路図
部品を接続して、下の図のような回路を作ります。
電源回路
低ドロップの5Vレギュレータを使うことで、バッテリーの6.6VからArduinoを安定して動かす5V電源を作ります。バッテリーをArduinoに直結して、Arduino内臓のレギュレータで電圧を変換しても動くかもしれませんでしたが、Arduinoに搭載しているレギュレータでは6.6Vのバッテリーからでは安定して5Vを作り出せない可能性があり、動作を安定させるためにレギュレータを別に搭載しました。この部分は秋月のキットに書いているものをそのまま使っています。
さらにサーボモータ動作時の大電流で電圧低下が起きないよう、2000μF分の電解コンデンサを搭載しました。
ピンヘッダ
3ピンのピンヘッダにバッテリーからの電源と、GNDとArduinoのデジタル端子を繋ぎます。数が多くてめんどくさいですが、地道にやっていきます。
通信機能
XBee変換基板のVCCに5V電源を接続し、GNDにGNDを接続します。
を接続します。
これだけでシリアル通信ができるようになるので簡単です。
これで回路図ができたので、次回はパターンの製作に移ります。
3Dプリンターでロボット作ってみる 多脚ロボット編 27 遠隔操作編 XBeeとArduino互換機でコントローラ製作1
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の使い方を学びます。