- Published on
Raspberry Piに「SG-5010」を接続し制御する
- Authors
- Name
- 将 有坂
- short bio
- ラズパイやArduinoで電子工作をしてます。
はじめに
Raspberry Piは小型で手軽に利用できるシングルボードコンピュータであり、センサーやアクチュエーターを制御するための優れたプラットフォームです。この記事では、サーボモーター「SG-5010」をRaspberry Piに接続し、Pythonを使用して制御する方法について解説します。
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の制御を応用して、様々なプロジェクトを開発することができます。