PWMを利用したモータ制御の仕上げとして、ロボットの関節などに使われるサーボモータのプログラミングを解説する。
前々回から2回にわたって、PWMの仕組みとそれを利用したモータ制御の方法について説明してきました。今回はPWMによるモータ制御の最後として、サーボモータの制御についてH8マイコンのプログラムと併せて説明していきます。
まず、サーボモータの用途と仕組みをおさらいしておきましょう。サーボモータがどういったところで使われているか、表1に簡単にまとめました。
本連載のターゲットボード(仕様は第6回を参照)で取り扱うのは一般にラジコンサーボと呼ばれるサーボモータで、工作機械向けの大掛かりなものに比べて安価でコンパクトなところが特徴です。ラジコンカーのステアリングや、ホビー用途の2足歩行ロボットの関節などでよく使われていますので、見たことがある方もいるかと思います。
特徴 | 用途 | |
---|---|---|
外部からの信号(主にパルス信号)によって、回転軸を任意の角度に回転できる。ステッピングモータと似ているが、こちらは回転角を自由にできるという点で異なる。そのため、何度回転したかを知るためのフィードバック回路が必要 | ロボットの関節(ラジコンサーボ)、パソコンのCDドライブの制御など、正確な位置決めが必要な製品 | |
サーボモータの仕組みについては、第9回の図を使用してもう一度まとめておきます(図1)。
ラジコン用のサーボモータは180度程度回転できるモータです。ラジコンカーなどの正面を基準として、左右に90度ずつ回転すると考えても構いません。そして、どの角度に回転(というよりは移動)するかは、PWM波のパルス幅に比例します。
第9回でも簡単に触れましたが、一般的にサーボモータに与えるPWM波の周期は10〜20msで、モータが真ん中で停止するようなパルス幅は1.5ms前後のようです。そしてプラスマイナス0.5msの範囲で左右に動きます。つまりサーボモータは1〜2ms程度のパルス幅を10〜20msの周期で与えることで、停止させたい位置に停止できるようになります。この数字は同じ製品のモータであっても個体差があり、真ん中で停止するパルス幅がどの程度なのかなどは、実際に動かして確認しなければなりません。
ラジコン用サーボモータには制御部が内蔵されており、それが現在のモータ位置と入力されたパルス信号の幅を比較します。その結果により、入力されたパルス幅の示す位置に移動するためには現在位置から左右どちらに回転すればよいか決定し、モータが実際に回転します(図2)。
入力されたパルス幅が現在のモータ位置に対応したパルス幅だった場合、モータはその場で停止します。そしてPWM波のパルス幅が変化すると、その幅に対応した位置に動きだします。また、すでに目的の位置まで回転したときに外力が加わって停止していた位置からモータが動いてしまった場合、元の位置(PWM波のパルス幅に対応した位置)に戻ろうとします。
Copyright © ITmedia, Inc. All Rights Reserved.