3Dプリンターでロボット作ってみる 多脚ロボット編 35 コントローラを改良します1
前回 遠隔操作できました!
このロボットの3Dデータは下のリンクのものを使用しています
前回でロボットの遠隔操作に成功したので、このプロジェクトもほぼ完了なのですが、実際に作ってみて気になることが一つ
コントローラが使いづらい!
もう嫌になるくらい使いづらいんですよ!
問題点を挙げてみると、
- 基板が小さくて持ちにくい
- 電池がぶらぶらしていて危なっかしい
- 基板の裏がショートしそう
- スイッチが小さくて押しづらい
とりあえずこのへんの問題をなんとか解決できないもんかと思いました。
そこで、基板にカバーを被せて電池を内臓し、ボタンなんかも大きくしてみたいと思います。
参考にしたのはこれ
www.thingiverse.comこういったケースを3Dプリンターでつくってみようと思います。
モデリングに使うのは定規とノギスです。
これだけあれば、十分なモデルをつくることができます。
XBee基板の角等、少々違うところもありますが、コントローラのカバーを作るにはこれで十分です。
9V電池のモデルは、世界共通規格なので、探してみるとすぐ見つかりました。
grabcad.comこのCADデータを少々面倒ですが、会員登録してもらってきます。
はめあいなんかがどうなるかわからないので、まず作ってみます。
基板をネジで留めて、横に電池とスイッチを配置します
パーツの固定はM3のねじとナットで
こだわったポイントがここです
ネジが干渉するので、基板を差し込んで留めます
そんなわけでさっそく印刷します。5時間くらいかかりました。
基板もバッテリーもしっかりとはまりました。
ただ、電源スイッチはキツくて嵌りませんでした。要修正です。
基板の差込もしっかりとできました。
明日からは今回わかった問題点を修正して出力してみます。
3Dプリンターでロボット作ってみる 多脚ロボット編 34 XBeeで遠隔操作できました!
前回 モーション作りました
このロボットの3Dデータは下のリンクのものを使用しています
前進、後退、右旋回、左旋回のモーションをつくることができたので、ロボットをコントローラーで動かしてみます。
まず基本はコレです。
something-make.hatenablog.com各種設定を完了したXBeeをArduinoのTXとRXに繋ぐと、シリアル通信をそのまま転送してくれます。
- コントローラーからシリアル通信で一文字送る
- ロボットでシリアル通信を受信する
- switch-case文でモーションを選択して実行
- モーション実行中に送られた文字は全て読みこんでなかったことにする
- 最新のシリアル通信データを受信する
という以外に簡単なプログラムでできました。
4は動作中に送られたシリアル通信を無視することで、モーション終了時点で最新のシリアル通信データを読み込み、コントローラに対する反応を良くしています。
この機能が無いと、シリアル通信で送られた信号に対応するモーションを片っ端から実行してしまうので、コントローラからの操作にすぐ反応せず、操作が困難になります。
この機能は以前のArduino開発環境ではSerial.flush()関数でしたが、仕様変更によりSerial.flush()関数の機能が変更になったので、Serial.read()関数が-1を返すまでSerial.read()を繰り返すことで代用しています。
while( Serial.read() != -1){}
実際にコードを書く場合はこのようになります。Serial.read()が-1(データ無し)にならない限り、Serial.read()を実行し続けます。
これでコントローラでロボットを自在に動かすことができるようになりました。
3Dプリンターでロボット作ってみる 多脚ロボット編 33 モーション作ります
前回
このロボットの3Dデータは下のリンクのものを使用しています
今日はモーションを作ります。
まず歩行のモーションですが、下のリンクを参考にします。
Make: Japan | Arduino搭載四足歩行ロボットのプログラム
まあ、このモーションの入力は以前やったので楽勝です。
しっかり歩くようになった際の記事はこれです。
さて、前進することができたら、後退はこれを逆にするだけなので簡単です。
ロボットを自由に動かすために、今度は旋回をプログラミングします。
上のリンクにあるクリープゲイツの応用で旋回させます。
黄色の矢印がロボット本体の向きを示しています。
1.まず左側の足を45度ずつ開き、右側の足を側面に平行に出します。
2.右後ろ足を持ち上げて、ロボットの後方90度に下ろします。
3.全ての足を左回りに45度回転させて、ロボット本体を右回りに45度回転させます。
4.左後ろ足を持ち上げて、ボディー側面に平行に下ろします。
5.左前足を持ち上げて、ロボットの前方90度におろします。
6.全ての足を左回りに45度回転させて、ロボット本体を右回りに45度回転させます
7.右前足を持ち上げて、ボディー側面に平行に下ろします。
これでロボットが右回りに90度回転しました。
左旋回は、右と左を逆にすればできます。
このモーションをロボットに入力すると、こんなふうに動くようになります。
前進、後退、右旋回、左旋回ができるようになったので、これでモーションの作成は完了です。
3Dプリンターでロボット作ってみる 多脚ロボット編 32 ちょっとした改良 滑り止めにはグルーガン
前回 基板完成しました
このロボットの3Dデータは下のリンクのものを使用しています
youtubeをうろついていると、似たようなロボットを作っている動画を見つけました。
このブログで作っているロボットの作者さんが公開しているデータを使ってロボットを作ってみたという動画です。
ちなみにこのロボットのデータは下のリンクにあります。
秋月電子通商でも取り扱っているSG-90を使用しているので作りやすいと思います。
この動画で目を惹いたのは、ホットグルー(ホットボンド)を足先に塗ることで、足先が滑らないようにしていることです。
早速やってみました。
少々形が歪ですが、これで歩かせてみると、明らかに足先の滑りがなくなりました。
3Dプリンターでロボット作ってみる 多脚ロボット編 31 遠隔操作編 Eagleで基板製作4 Seeedから基板届きました
前回 基板を製作業者のSeedStduioに注文しました。
このロボットの3Dデータは下のリンクのものを使用しています
なるべく早く届けて欲しかったのでDHL使いました。送料は15$。
データ送信して届くまで大体2週間くらいでした。
ずいぶん大きい袋です。中にさらに紙袋が入っています。
中身がこれです。ちゃんと基板ができています。
早速組み立ててみることにしました。
微妙かもしれなかったスイッチですが、問題無く嵌りました。
しかしここで大誤算が発生しました。
ピンヘッダが嵌りません!
このピンヘッダは自作したライブラリのものを使っているのですが、穴が小さくて嵌りません。
同じく自作したXBee変換基板は特に問題ありませんでしたが、
変換基板のピンとピンヘッダの太さが違うということに気付いていませんでした。
ライブラリ製作時の穴径はちゃんとピンの太さを測ってから設定するべきでした。
完全にやらかしました
でも、もう後戻りはできません。
2週間の時間を費やして作ってもらったのですから。
とにかくリカバーです。基板を修正します。
ちゃんと組み立てることができて、問題なく動けば問題ありません。
ピンヘッダの対角線が0.8mmなので、0.8mmのピンバイスでゴリゴリと穴を拡げます。
持ってて良かったピンバイス
ちなみに穴の数は3pin×サーボモーター12chで36個あります。
卓上ボール盤とか無いので手作業で片っ端から穴をあけます。
かなり手間ですが、やるしかありません!
ちなみにこれをやると穴の周囲のパターンがほとんど剥げてしまいます。
これではハンダが付きません。
なので穴に繋がるパターンの保護層をヤスリの先っぽで削ります。
多分これで大丈夫です。
無事に穴が大きくなったので、ブレッドボードを利用してピンを並べてハンダ付けします。
一時はどうなるかと思いましたが、無事ハンダ付けすることができました。他は特に問題なくハンダ付けすることができました。
他の部品もハンダ付けして基板製作は完了です。
これからはモーションの作成と遠隔操作のプログラミングをやります。
3Dプリンターでロボット作ってみる 多脚ロボット編 30 遠隔操作編 Eagleで基板製作3 Seeedに基板を発注してみる
前回
このロボットの3Dデータは下のリンクのものを使用しています
最初はこの基板をFabLabの3Dルーターで作る予定でしたが、製作当事、基板製作業者のSeeed Studioが基板3枚1$というキャンペーンをやっていたので、Seeed Studioに発注をしてみました。
要はSeed Studioに製造に必要なファイルを送って、Paypalで支払いをすれば、完成品の基板が送られてくるわけです。
Eagleから製造用のガーバーデータ(基板の寸法、穴の位置、大きさ、プリントパターン)のデータをまとめたファイルを出力する方法は下のリンクを参考にします。
Eagleからガーバーファイルを出力する方法 – Feedback & Ideas for seeed
このガーバーデータというもの、なかなかのクセモノのようで、プリント基板製造業者によって、データ生成時の設定を変えてやったり、専用の設定ファイルを読み込ませる必要があったりするようです。
これは恐らく業者ごとの設備の差によるものでしょう。
しかし、現在Seeed StduioはEagleのサードパーティ業者として登録されているので、特にこれといった設定をせずにガーバーデータを出力することができます。
基板が完成したらCAM Processorをクリックします。
下の図のようにプルダウンリストからThird Party -> Seed Fusion -> Seed Fusion 2-Layerを選択します。
そのままProcess Jobをクリックすると、ガーバーデータのZIPファイルが生成されます。このファイルをアップロードすれば製造してもらえます。
ちなみに、製造時の設定がページ下にありますが、こういった単純な基板なら一番安いやつで問題なく製造してもらえます。
後はpaypalで支払いをすれば製造してもらえます。
ちなみに現在100mm×100mmの基板5枚で7.9$のセールをやっています。
これまたかなり安いのでオススメです。
3Dプリンターでロボット作ってみる 多脚ロボット編 29 遠隔操作編 Eagleで基板製作2
前回
このロボットの3Dデータは下のリンクのものを使用しています
今回は基板のパターンを製作します。
といっても、特別なことはしません。
- プリント基板の寸法をロボットに搭載できるように75×58mmにする
-
角から4mmのところにネジ用の穴をあける
-
部品が干渉したりしないように配置る
-
Netclassで配線ルールを決める
-
オートルーターで配線をする。
でこんな基板ができました。
配線ルールはこんな感じに設定します。
Edit -> Netclassから配線ルールを決めます。
サーボモータに繋がる電源ラインとGNDは大電流が流れるのでpowerと名づけ、太めの1.5mmにします。サーボモータの動作信号や通信用のラインはsignalと名づけて一般的な0.5mm配線にしました。
ちなみに2mmだとオートルーターが配線を決めることができませんでした。太くすれば良いというものでもないようです。
配線ルールは次のように適用します。
回路図でinformationのボタンをクリックした後。緑の配線をクリックして、配線のプロパティを表示します。
Net Classのタブがあるので、これで配線ルールを設定してやります。
これで基板データが完成しました。
これを実際に製作するにはどうするかをやっていきます。