スタジオ ミュウ

RCサーボの制御

LED計測制御 | LEDグループ学習 | メロディのプログラム | RCサーボの制御 | モーターのPWM制御
MYUロボ-II | MYU-USB転送ソフト | MYU USB BASIC | USBドリトル | C アセンブラMYUUSB-1基板 | MYUUSB命令一覧
転送ソフト(232C) | MYU BASIC(232C) | 構造化ドリトル | エクセルで制御 | エクセルで計測 | MYUアセンブラ | MYUROBO-1A基板 | MYUロボ(232C)命令一覧 | ドリトル命令一覧


●RCサーボ制御の基本
RCサーボの制御信号線(通常は白)には右図のようなパルスが送られてきます。このパルス幅によってサーボの角度がコントロールされています。一般のRCサーボは1.5msec前後が中立位置となりこのパルス幅を変えることでサーボ角が変化します。パルス周期は通常10msec以上で大きすぎると反応が遅くなります。

※MYUUSB-1A基板は8個、MYUROBO-1A基板の場合は6個のサーボをコントロールできます。

●2.54mmピンヘッダ(3P)の取り付け
RCサーボを使うためにはサーボ用のコネクタをに半田付けしなければなりません。※MYUUSB-1A基板(S1-S8)、MYUROBO-1A基板(S1-S6)
コネクタは電子部品店などで売られている2.54mmピッチのピンヘッダ(3P)を使います。これにRCサーボのコネクタを接続しますが必ず黒コード(−側)を外側にします。

モーターとRCサーボの制御は同じ出力ポートを使っているので同時使用には制限があります。

MYUUSB-1A基板の場合
1、4モーター制御の場合はサーボ制御は不可
2、M1モーターとS1・S2・S3・S4・S5・S6サーボ制御は可能
3、M1・M2モーターとS1・S2・S3・S4サーボ制御は可能
4、M1・M2・M3モーターとS1・S2サーボ制御は可能
5、8サーボ制御の場合はモーター制御は不可
MYUROBO-1A基板の場合
1、3モーター制御の場合はサーボ制御は不可
2、M1モーターとS1・S2・S3・S4サーボは可能
3、M1・M2モーターとS1・S2サーボ制御は可能
4、6サーボ制御の場合はモーター制御は不可

●RCサーボの制御
サーボ命令は、第1引数の値mでサーボ角を、第2引数の値nでサーボ番号を指定します。
※サーボ角の中立位置は、MYUUSB-1A基板の場合は 140、MYURUBU-1A基板の場合は 185 前後となります。
※S1に接続した場合、サーボ番号は 1 となります。
※サーボは電圧3V以下では動作しません。3.5V以上での利用をお勧めします。
※サーボ命令を実行すると20msecごとにタイマーがクリアされます。

サーボ,m,n     ※転送ソフトの命令
Servo m,n      ※MYU BASIC の命令
m n サーボ     ※ドリトルの命令

使用例(転送ソフト) ※サーボ命令と時間設定可能な命令と組み合わせて使います。
サーボ,150,1  //S1のサーボ角を150
サーボ,180,2  //S2のサーボ角を180
前進,10     //前進1秒
サーボ,120,1  //S1のサーボ角を120
サーボ,150,2  //S2のサーボ角を150
停止,10     //停止1秒

●アナログ入力を使ったサーボ制御
右図のように10Kのボリューム(B型)をアナログポート(MYUUSB-1A基板はAN10、MYUROBO-1A基板はIn4)に接続すると簡単なプログラムでサーボをコントロールできます。ボリュームを回すとそれに比例してサーボが動きます。

//ボリュームコントロール(転送ソフト)
繰り返す{
  AN,10    //AN10のアナログ値をAレジスタにセット、MYUROBO-1A基板の場合は、AN,4
  サーボ,A,1  //Aレジスタの値をS1のサーボ角にセット
}
  
//ボリュームコントロール(MYU BASIC)
Do
  Servo AN(10),1 //AN10のアナログ値をS1のサーボ角にセット、MYUROBO-1A基板はAN(4)
Loop

●パソコンからサーボのリモート操作
パソコンと基板を転送ケーブルで接続、計測/R実行ボタンを押すと右のダイヤログが現れサーボをリモコン操作できます。

●ゆっくり連続的にサーボを動かす
Aレジスタや変数を使いサーボをゆっくり動かします。

//(転送ソフト)
A,100         //Aレジスターの値を100にする
繰り返す(A < 200){ //Aレジスタが200以下の間、{・・}内を繰り返す
  サーボ,A,1    //Aレジスタの値をS1のサーボ角にセット
  待つ,1       //0.1秒の待ち
  ADD,1       //Aレジスタに1加える
}

//(MYU BASIC)
Byte S        //変数Sを宣言
For S=100 To 199 //Sの値を100から199まで1づつ増やす
  Servo S,1   //Sの値をS1のサーボ角にセット
  Wait 1     //0.1秒の待ち
Next


●3個のRCサーボを使った2足歩行ロボット工作例

直立 → 片足立(重心移動) → 前進(足首回転)

★動画(888KB)はこちら