- Published on
Raspberry Piに「FS5106B」を接続し制御する
1261文字3分で読めます–––
閲覧数
- Authors
- Name
- 将 有坂
- short bio
- ラズパイやArduinoで電子工作をしてます。
はじめに
Raspberry Piは豊富なGPIOピンを備えたシングルボードコンピュータであり、様々なデバイスを制御するのに便利です。この記事では、サーボモーター「FS5106B」をRaspberry Piに接続し、制御する手順について解説します。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚
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を使用して制御する基本的な手順が完了しました。将来的には、このサーボモーターを使用して様々なプロジェクトを構築することができます。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚