logo
Published on

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

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Raspberry Piは豊富なGPIOピンを備えたシングルボードコンピュータであり、様々なデバイスを制御するのに便利です。この記事では、サーボモーター「FS5106B」をRaspberry Piに接続し、制御する手順について解説します。

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

1. FS5106Bサーボモーターの概要

FS5106Bは、中型のサーボモーターであり、最大で180度の回転が可能です。PWM信号を使用して制御され、通常は3本の線で構成されています。

  • VCC(赤色): 5Vの電源
  • GND(茶色): 接地
  • 信号線(橙色または黄色): PWM信号

これらの線をRaspberry PiのGPIOピンに接続して使用します。

2. FS5106Bの接続

まず、FS5106BをRaspberry Piに接続します。GPIOピンの選択には注意が必要で、例えば、GPIO 18ピンを使用する場合は、次のように接続します。

  • VCC(赤色): GPIO 18ピン (5V)
  • GND(茶色): 任意のGNDピン
  • 信号線(橙色または黄色): GPIO 18ピン

3. Raspberry Piコードの作成

次に、Pythonを使用してFS5106Bを制御するためのコードを作成します。以下は、FS5106BがGPIO 18ピンに接続された場合の例です。

import RPi.GPIO as GPIO
import time

servo_pin = 18  # 使用するGPIOピン

GPIO.setmode(GPIO.BCM)
GPIO.setup(servo_pin, GPIO.OUT)

# PWMの設定
pwm = GPIO.PWM(servo_pin, 50)  # 周波数50Hz
pwm.start(0)

def set_angle(angle):
    duty = (angle / 18) + 2
    GPIO.output(servo_pin, True)
    pwm.ChangeDutyCycle(duty)
    time.sleep(1)
    GPIO.output(servo_pin, False)
    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:
    pwm.stop()
    GPIO.cleanup()

4. コードの実行と動作確認

コードを保存したら、Raspberry Piに接続して実行します。サーボモーターが指定した角度に正確に動作することを確認してください。

これで、Raspberry PiにFS5106Bを接続し、Pythonを使用して制御する基本的な手順が完了しました。将来的には、このサーボモーターを使用して様々なプロジェクトを構築することができます。