- Published on
Raspberry Piに「MG92B」を接続し制御する
1333文字3分で読めます–––
閲覧数
- Authors
- Name
- 将 有坂
- short bio
- ラズパイやArduinoで電子工作をしてます。
はじめに
Raspberry Piは小型でパワフルなシングルボードコンピュータであり、様々なデバイスの制御に利用できます。この記事では、小型で高トルクなサーボモーター「MG92B」をRaspberry Piに接続し、制御する方法について解説します。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚
1. MG92Bサーボモーターの概要
MG92Bは、小型でありながら高いトルクを発揮できるサーボモーターです。一般的に、水平方向に最大180度の回転が可能で、PWM信号を受け取り角度を制御します。このモーターは、Raspberry Piなどのシングルボードコンピュータと連携して様々なプロジェクトに利用されます。
2. MG92Bの接続
MG92Bには通常、三つの線があります。
- VCC(赤色): 5Vの電源
- GND(茶色): 接地
- 信号線(橙色または黄色): PWM信号
これらを対応するRaspberry Piのピンに接続します。例えば、VCCを5Vに、GNDをGNDに、信号線をRaspberry PiのGPIOピンに接続します。
3. Raspberry Piコードの作成
Raspberry PiではPythonや他のプログラミング言語を使用してMG92Bを制御します。以下は、Raspberry PiのGPIOピンが17番だと仮定した例です。
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)
mg92b_pwm = GPIO.PWM(17, 50) # PWM周波数を50Hzに設定
mg92b_pwm.start(0) # 初期化
def set_angle(angle):
duty = angle / 18 + 2
GPIO.output(17, True)
mg92b_pwm.ChangeDutyCycle(duty)
time.sleep(1)
GPIO.output(17, False)
mg92b_pwm.ChangeDutyCycle(0)
try:
while True:
set_angle(0) # 0度の角度に移動
time.sleep(1)
set_angle(90) # 90度の角度に移動
time.sleep(1)
set_angle(180) # 180度の角度に移動
time.sleep(1)
except KeyboardInterrupt:
mg92b_pwm.stop()
GPIO.cleanup()
4. コードの実行と動作確認
コードを実行する前に、Raspberry PiにRPi.GPIOモジュールがインストールされていることを確認してください。
pip install RPi.GPIO
次に、コードを実行してMG92Bが指定した角度に移動するか確認します。コード内のset_angle
関数で指定した角度や待ち時間を変更することができます。
これで、Raspberry PiにMG92Bを接続し、制御するための基本的な手順が完了しました。MG92Bの制御を拡張するには、他のセンサーやモジュールと組み合わせて様々なプロジェクトを作成することができます。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚