logo
Published on

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

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Raspberry Piは、シングルボードコンピューターとして非常に人気があり、様々なプロジェクトで利用されています。この記事では、小型のサーボモーター「FS5106R」をRaspberry Piに接続し、制御する方法について解説します。

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

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

FS5106Rは、TowerProが製造するサーボモーターで、高いトルクと安定性が特徴です。通常、PWM(パルス幅変調)信号を受け取り、そのパルス幅に応じて角度を制御します。このモーターは、ロボットやラジコンカーなどのプロジェクトに広く利用されています。

2. FS5106Rの接続

FS5106Rは通常、三本の線があります。

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

これらを対応するRaspberry Piのピンに接続します。例えば、VCCを5Vに、GNDをGNDに、信号線をRaspberry PiのGPIOピンに接続します。

3. Raspberry Piコードの作成

Raspberry PiでFS5106Rを制御するために、Python言語を使用します。以下は、FS5106Rが接続されたGPIOピンが18番だと仮定した例です。

import RPi.GPIO as GPIO
import time

servo_pin = 18  # FS5106Rが接続されたGPIOピン

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

# PWMの初期化
pwm = GPIO.PWM(servo_pin, 50)  # PWM周波数は50Hz

pwm.start(0)  # PWMの開始

try:
    while True:
        # 0度から180度までサーボモーターを動かす例
        for angle in range(0, 181, 10):
            duty_cycle = angle / 18 + 2
            pwm.ChangeDutyCycle(duty_cycle)
            time.sleep(0.5)

        # 180度から0度までサーボモーターを動かす例
        for angle in range(180, -1, -10):
            duty_cycle = angle / 18 + 2
            pwm.ChangeDutyCycle(duty_cycle)
            time.sleep(0.5)

except KeyboardInterrupt:
    pwm.stop()
    GPIO.cleanup()

このコードは、FS5106Rを0度から180度まで動かし、逆方向に戻す例です。適宜、動作させたい角度や待ち時間を変更することができます。

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

最後に、書いたPythonコードを実行し、FS5106Rが正しく動作しているか確認します。コードが正しく実行されれば、サーボモーターが指定した角度に移動するはずです。

これで、Raspberry PiにFS5106Rを接続し、簡単な制御を行うための基本的な手順が完了しました。FS5106Rの制御を応用して様々なプロジェクトを作成することができます。