7個のサーボモータ制御してロボットを動かそう

サーボモーターとは

サーボモーターは、扇風機などに使われているモーターとは異なり、角度や速度などを指定して、好きな場所まで自由な速度で回転して止めることができるモーターです。

クムクムロボットでは、顔、両腕、足の付け根、足 の合計7個のサーボモーターがあり、これらの一つ一つを個別の角度、速度で回転して止めることができます。

サーボモーターのイメージ

黒…GNDライン
赤…電源
橙…回転角度(パルス)

制御方法

Arduinoなどマイコンから指定角度に回転させるには、その角度に該当するパルスをプログラムから出力します。
この方法をPWMと呼び、クムクムロボットでは0~180度の回転角度に対して500パルス~2500パルスを与えて制御します。

配線

一般的に、Arduinoとの接続は下記のようにします。
下記の図で、モーターを回転させるために大きな電流が必要なため、モーターの電源をArduinoの5Vピンに接続せず、電池の+に接続している点に注意してください。
もしArduinoの5Vピンからモーターの電源を取った場合、ArduinoのCPUが壊れてしまします。
必ず、モーター用の電源を用意します。
※GNDは必ず共通にしてください

サーボモーターの接続と関数

Arduinoとしてのポート 部位
4 右腕
5 右足の付け根
6 右足
7
8 左足
9 左足の付け根
10 左腕
11 モーターへの電源供給制御

プログラミング

Arduinoでは、多くのサーボモーターを制御させるためのライブラリーがありますが、ここでは標準的な Servoクラスを使ってみます。

また、クムクムロボットでは、モータへの電源のON/OFFをプログラムからコントロールできる仕組みがあり、サーボモーターを駆動させる前には、電源供給をONにしなくてはなりません。
逆に、使わない場合はOFFにしてもいいのですが、万が一足が斜めでそこに全体重をかけている状態で電源をOFFにしてしまうと、モーターが突っ張れなくなってクムクムロボットが転倒してしまうこともあります。

電源のON/OFFのタイミングは気を付けて使います。

関数 機能
サーボ.attach(PIN) 出力ピンとモータークラスの結び付け
0~90度指定で回転させる場合に使用
サーボ.attach(PIN,最小パルス,最大パルス) 出力ピンとモータークラスの結び付け
パルス指定で細かく回転させる場合に使用
サーボ.detach() 結び付けを解除
サーボ.write(角度) 0~90度指定で回転させる
サーボ.writeMicrosecond(パルス) 指定パルスを出力し回転させる

モーターを1個だけ角度で回転させる

モータを1個だけパルスで回転させる

7個のモータを90度から左右10度ずつ回転

コメント

タイトルとURLをコピーしました