PWMを使ったサーボモーターの制御Arduinoで学ぶ基礎からのモーター制御(6)(1/3 ページ)

ラジコンカーのステアリングやロボットの関節などに用いられ、角度を指定して動かす機能を持つのが「サーボモーター」です。今回はArduinoからこのサーボモーターの制御をPWMを用いて行う手法を紹介します。

» 2016年05月12日 07時00分 公開
[今岡通博MONOist]

はじめに

 前回は“マブチモーター”に代表される「直流ブラシ付きモーター」を、PWM(Pulse Width Modulation)と呼ぶ技術によって制御する手法を紹介しました。今回はこの続編として、PWMを使った「サーボモーター」の制御について紹介します。

サーボーモーターとは

TowerProの模型用サーボモーター「SG90」 TowerProの模型用サーボモーター「SG90」

 一般にサーボモータと言えば「フィードバック制御が可能なモーター」を指しますが、ここで扱うサーボモーターはラジコン模型などに用いられる、「PWMで軸の回転角度(0〜約180度)を制御できるアクチュエーター」を指します。

 その内部にはギア付き直流ブラシ付きモーターと軸の角度によって抵抗値が変わる角度センサーの1つであるポテンションメーターが搭載されており、この組み合わせによってフィードバックの制御が行われています。

 サーボモーターはこれまで紹介してきた直流ブラシ付きモーターのように360度以上、回転するものではありません。角度を制御するという特長を持つことから、ラジコン模型の車であればステアリング、飛行機あればラダーの制御などに用いられます。

SG-90

 今回は低価格で入手性の良いTowerProのサーボモーター「SG90」を例に(Amazonや秋月電子通商などでは1個400円程度で販売されています)、マイコン(Arduino)からの制御方法を紹介します。以下が、SG-90のデータシートから抜粋した仕様です。

Specifications
1) Weight 9 g
2) Dimension 22.2 x 11.8 x 31 mm approx.
3) Stall torque 1.8 kgf-cm
4) Operating speed 0.1 s/60 degree
5) Operating voltage 4.8 V (〜5V)
6) Dead band width 10 μs
7) Temperature range 0 ℃〜55 ℃

 1)がサーボモーター本体の重さです。2)が寸法。3)が最大トルクです。4)が軸の回転スピードを表します。60度回転するのに0.1秒必要ということになります。5)が電源電圧のその範囲を示しています。4.8Vが最適な電圧で5Vは超えてはなりません。

 6)は後に説明しますが1ミリ秒から2ミリ秒のパルス幅でサーボモーターを制御しますが、その分解能力を示しています。角度で表すと180度×(1ミリ秒/10マイクロ秒)ですから1.8度単位の制御が可能であることを示しています。数値が小さいほど高分解能となりますがノイズ等による小さな信号の変化にも反応しやすくなります。この値を調整できるサーボモーターもありますがSG-90の場合は10μsに固定されています。7)は運用可能な温度範囲を示しています。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.