CNCの自作とCNCで作る工作


超音波自律走行と倒立振子型の複合ロボット その2


 実はNo.31よりも先に製作に掛かってたのですが、駆動用モーターにロータリータイプのサーボモーターを
使った関係で倒立時のバランスが悪く、試行錯誤しながらの工作とプログラミングで完成が少し遅れました。

 サーボモーターは減速比が大きくトルク重視型なので超音波自律走行やライントレース等の細かい動きには
最適ですが、倒立バランスロボットには回転数不足でバランスを取るのが難しく、対策としてモーターの出力
軸に40:12の増速用ギア(約3.3倍)を自作して追加しました。 本当はこんな不細工な事をしなくてもサーボ
メーカーに頼んで初段ギア比を変更して貰えれば済むのですが、その様なコネもなく大きな歯車がむき出しの
変てこなスタイルになってしまいました。                              

 何時ものようにフレームに3㎜厚のシナべニアをCNCで加工、サーボモーターを組み込みましたました。  
超音波センサーはNo.31と同様に首振り式ではなく、正面と左右斜め45度にセットした3個を使い障害物を感知
するよにしました。                                        

 この作品も超音波自律ロボットを赤外線リモコンを使い、ボタン操作一つで倒立するようにしました。
 倒立はNo.31同様にさーボーモータに取り付けた倒立用木製アームにより、バランスポイントまで車体を
持ち上げる構造です。No.31と併せてご覧ください。                        
製作過程の変遷

躯体とサーボモーターの取り付け(最初は倒立を考えてなかった)

サーボモーターの取り付けを向きを変え、倒立補助用サーボを取り付ける

この状態でも一応倒立は可能だが不安定!

そこで、CNCを使ってアクリル板の増速用ギアを製作

改造が終わった複合ロボット(裏側)

改造が終わった複合ロボット(側面)


                     部品リスト
購入部品
AVRマイコン ATmega328P秋月電子250円
16MHz水晶発振子1個秋月電子30円
ジャイロモジュール MPU6050アマゾン430円
GWSロータリーサーボ S35 STD 2個秋月電子:1個900円
補助アー用ムRCサーボモーターSG90秋月電子:400円
超音波センサーHC-SR04 3個アマゾン:5個990円
木製車輪のタイヤ用Oリング2個ヨドバシカメラ:696円
前輪自在キャスター1個HSコーナン:98円
シャープ赤外線受信モジュール GP1UXC4秋月電子:50円
手持ち部品
ユニバーサル基板1枚
メインアーム用RCサーボモーター1個
ニッケル水素電池単3型4個
単3型電池ボックス4個用1個
ターミナルブロック:2ピン1個
基板用トグルスイッチ3P1個
基板用スペーサー10mm×4個
シナベニヤ公称3㎜(実際は2.8mm前後)300×300(mm)1枚
表示用3mmLED5個
その他CR類及びピンジャックと線材など少々

基板の回路図


使用する赤外線リモコンについて
赤外線リモコンの送信機には色々ありますが、ここで使用するのに都合が良いリモコンは、
テレビ用のリモコンです。しかし、メーカーや機種によっては使えないものがあります。
下記のsketchをArduinoIDEにコピーして手持ちのリモコン送信機が使えるかCODEの受信テストを行います。
このsketchでは、赤外線受信モジュールの入力ピンを6番としてますが適当に変更が可能です。
押されたボタンに対応した受信CODEがシリアルモニターに表示されます。
尚、ここではボタンが押されてる間、連続して同じCODEが出力するタイプの送信機が必要です。
用意するもの:赤外線リモコン送信機、Arduino uno等、赤外線受信モジュール、ブレッドボードなど

#include <IRremote.h> // use the library
int receiver = 6; // pin 1 of IR receiver to Arduino digital pin 6
IRrecv irrecv(receiver); // create instance of 'irrecv'
decode_results results;
void setup()
{
  Serial.begin(9600); // for serial monitor output
  irrecv.enableIRIn(); // Start the receiver
}
void loop()
{
  if (irrecv.decode(&results)) // have we received an IR signal?
  {
    Serial.println(results.value, HEX); // display it on serial monitor in hexadecimal
    irrecv.resume(); // receive the next value
  }  // Your loop can do other things while waiting for an IR command
}</font>

ソフトウエア(Arduino sketch)について
今回は今までに作った作品の寄せ集め的なスケッチになりましたが、公開の要望がありましたので
注釈を付けて次のページに掲載しました。  sketchのページへ移動します。
何せ、スケッチは素人なので完全ではありません。間違いやアドバイスがあればお知らせ下さい。

ご注意
このスケッチを丸ごとコピーするだけでは再現できません。特に倒立は、フレームの形状や使用部品
及び部品配置によってバランスが異なり、安定させるには機体に合わせた設定値の変更が必要です。

完成した複合ロボットの動画をご覧下さい。



皆様の参考になれば幸いです。

by Paradise


MENUへ戻ります。



inserted by FC2 system