サーボモーターを制御する
micro:bitで、サーボモーターを制御する方法を解説します。ここで紹介するサーボモーターは、ホビー用途でよく使われるSG92R(Tower Pro)です。
3-9-1.サーボモーターとは
サーボモーターには、用途・構造・制御方式などによってさまざまな種類のものがありますが、ここではラジコンなどに用いられるホビー用途のサーボモーターについて解説します。
サーボモーターの特徴
ホビー用途のサーボモーターは、図3-9-1-1のように主動力となるモーター・トルクを高めるギヤボックスとそれらを制御する基板が一体型のボックスに収められ、上部に動力を出力するためのギヤが飛び出しています。このギヤの回転運動を外部に伝えるため、ギヤにサーボホーンというパーツを取り付けて使います。
サーボモーターは、DCモーターと異なり、連続回転するのではなく、あらかじめ決められた回転角度の範囲内で回転します。例えば、回転角度が0[度]~180[度](中心から±90[度])、0[度]~120[度](中心から±60[度])のように決められています。そのため、ロボットの関節や模型自動車のステアリングなどに用いられます。
サーボモーターには、電源・グランド・信号線の3本の線があり、信号線によって回転角度が制御されます。制御信号はPWM(パルス幅変調/Pulse width modulation)で、デューティー比によって回転角度が決まります。PWMは「3-3.LEDをぼわっと点滅させる【電子蛍】」の「3-3-6.解説【PWM(パルス幅変調)】」を参考にしてください。
制御信号(PWM)により回転角度が制御されている間は、その角度を保持しようとする電気的なブレーキが働きます。ただし、無理な力を加えると、ギヤボックスやモーターを破損するので注意が必要です。
特殊なサーボモーター
特殊なサーボモーターとして、連続回転するものがあります。制御信号はPWMですが、デューティー比によって回転方向・回転速度を制御することができます。
サーボモーターSG92R
この記事で使用するサーボモーターSG92R(Tower Pro)の仕様です。
- 回転角度:0[度]~180[度](±90[度])
- PWMサイクル:20ミリ[秒]
- 制御パルス幅:0.5ミリ[秒]~2.4ミリ[秒](中央:1.45ミリ[秒])
- 電源電圧:4.8[V]
- トルク:2.5[kgf・cm]
- 動作速度:0.1[秒]/60[度]
- 配線:茶(グランド)・赤(電源)・橙(信号線)
micro:bitで使用するときに注意する点は、サーボモーターSG92Rの動作電圧が4.8[V]であるということです。サーボモーターSG92Rを駆動するための電源が別途必要になります。この記事では、1.2[V]の充電式ニッケル水素電池4本を使ってサーボーモーターを駆動します。また、充電式ニッケル水素電池4本からmicro:bitの駆動に必要な3.3[V]を作ります。
3-9-2.用意するもの
表3-9-2-1は、この電子工作に必要な部品などの仕様・定格です。
品名 | 数量 | 仕様・定格など |
---|---|---|
micro:bit本体 | 1 | |
プロトタイピングセット | 1 | KITRONIK-5609 |
サーボモーター | 1 | SG92R(Tower Pro) 秋月電子通商(通販コード:M-08914)にて購入可能 |
三端子レギュレーター | 1 | TA48033S(TOSHIBA) 秋月電子通商(通販コード:I-00534)にて購入可能 ※以下のコンデンサーが含まれたセットです。 |
積層セラミックコンデンサー | 1 | 0.1μ[F] |
電解コンデンサー | 1 | 47μ[F]・35[V] |
電池ボックス | 1 | 単三型電池4本用 |
単三型電池 | 4 | 充電式ニッケル水素電池1.2[V] |
ジャンプワイヤー(オス-メス) | 2 | KITRONIK-5609に付属のもの |
ジャンプワイヤー(オス-オス) | 適量 | 秋月電子通商(通販コード:P-00288)にて購入可能 |
プロトタイピングセットとは、ブレッドボードとmicro:bitのエッジコネクターをピンヘッダーに変換する基板が一つになった製品で、micro:bitを使った電子工作がハンダ付けなしで簡単に始められます。
プロトタイピングセットには、必要なジャンプワイヤーが付いてきます。
3-9-3.作る前に
micro:bitに何かプログラムが入っていると、想定外の動きをするかもしれません。「何もしない」プログラムをダウンロードして、micro:bitに送っておきましょう。
3-9-4.作り方
では、早速作ってみましょう。まず、部品がすべて揃っていることを確認したら、プロトタイピングセットのブレッドボードが手前になるように置きます。このブレッドボード上に部品を並べて、サーボモーター回路を作ります。
「3-7.電池4本から3.3Vを作る【電源回路】」を参考にして電源回路を作ります。これによって、micro:bitに近い電源ラインが3.3[V]、遠い電源ラインが4.8[V]になります。
サーボモーターの電源とグランドを4.8[V]の電源ラインに接続します。続いて、信号線をmicro:bitのエッジコネクター「0」に接続します。サーボモーターのコネクターはメスなので、ブレッドボードへ接続する電源・グランドにはオスーオスのジャンプワイヤー、エッジコネクターへ接続する信号線にはオスーメスのジャンプワイヤーを間に入れて延長します。ジャンプワイヤーはプロトタイピングセットに付属しています。何色を使っても問題ありません。最後にもう一度、回路に間違いがないか確認しましょう。
完成したサーボモーター回路です。
3-9-5.プログラミング(ブロック)
サーボモーター回路のサンプルプログラムです。
ずっと実行されるプログラム
3-9-6.プログラミング(Javascript)
Javascript(テキスト)のサンプルプログラムです。
3-9-7.動かしてみよう
プログラムが完成したら動かしてみましょう。500ミリ秒ごとに0度・30度・60度・90度・120度・150度・180度と動けば完成です。
3-9-8.解説
micro:bitで、サーボモーターを制御するのはとても簡単です。「サーボ出力する」ブロックを使えば、制御信号のPWMを意識することなく、回転角度を指定するだけで動作させることができます。実際には、micro:bitからPWMサイクルが20ミリ[秒]・回転角度に応じたパルス幅(デューティー比)の制御信号(PWM)が出力されています。
図3-9-8-1は、回転角度90[度]を指定したときのmicro:bitが出力する制御信号(PWM)のようすです。周期(Freq)が50[Hz]であることからサイクル20ミリ[秒]、デューティー比(Duty)が7.5[%]であることからパルス幅1.5ミリ[秒](20ミリ[秒]×7.5[%])になります。サーボモーターSG92Rの制御信号(PWM)は、サイクルが20ミリ[秒]、回転角度90[度]時のパルス幅が1.45ミリ[秒]なのでほぼ一致しています。
micro:bit関連のおすすめ品
micro:bitのエッジコネクターをピンヘッダーに変換するエッジコネクターピッチ変換基板と、ブレッドボードが一つになった製品です。付属のジャンパーワイヤーを使用することで、手軽に回路の実験ができます。
Tower ProのマイクロサーボSG92Rです。
Tower ProのマイクロサーボSG90です。