logo
Published on

Raspberry Piに「SG-5010」を接続し制御する

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Raspberry Piは小型で手軽に利用できるシングルボードコンピュータであり、センサーやアクチュエーターを制御するための優れたプラットフォームです。この記事では、サーボモーター「SG-5010」をRaspberry Piに接続し、Pythonを使用して制御する方法について解説します。

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

1. SG-5010サーボモーターの概要

SG-5010は一般的なサーボモーターで、コスト効果が高く、堅牢な構造を持っています。通常、0度から180度の範囲で回転し、PWM信号を使用して角度を制御します。Raspberry Piとの接続には、一般的にGPIOピンを使用します。

2. SG-5010の接続

まず、SG-5010をRaspberry Piに接続します。SG-5010には通常、三つの線があります。

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

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

3. Pythonコードの作成

次に、Raspberry Pi上でPythonを使用してSG-5010を制御するためのコードを書きます。RPi.GPIOライブラリを使用します。以下は、SG-5010が接続されたGPIOピンが17番だと仮定した例です。

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
servo_pin = 17  # SG-5010が接続されたGPIOピン

GPIO.setup(servo_pin, GPIO.OUT)
sg5010 = GPIO.PWM(servo_pin, 50)  # PWM周波数50Hzを設定

sg5010.start(0)  # 初期位置

try:
    while True:
        sg5010.ChangeDutyCycle(2)  # 0度の角度に移動
        time.sleep(1)
        sg5010.ChangeDutyCycle(7)  # 90度の角度に移動
        time.sleep(1)
        sg5010.ChangeDutyCycle(12)  # 180度の角度に移動
        time.sleep(1)

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

このコードも、SG-5010を0度、90度、180度に順番に移動させる簡単な例です。動作させたい角度や待ち時間を適宜変更できます。

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

最後に、PythonコードをRaspberry Pi上で実行し、SG-5010が正しく動作しているか確認します。実行が成功すると、SG-5010が指定した角度に移動するはずです。

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