logo
Published on

Raspberry Piに「MG92B」を接続し制御する

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Raspberry Piは小型でパワフルなシングルボードコンピュータであり、様々なデバイスの制御に利用できます。この記事では、小型で高トルクなサーボモーター「MG92B」をRaspberry Piに接続し、制御する方法について解説します。

※モジュールの価格を比較 ▶ TemuAliExpress楽天メルカリ

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の制御を拡張するには、他のセンサーやモジュールと組み合わせて様々なプロジェクトを作成することができます。