logo
Published on

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

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

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

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

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

SG90は、小型で軽量ながら優れた性能を持つサーボモーターです。通常、水平方向に最大180度の回転が可能で、PWM信号を受け取ることで角度を制御します。Raspberry Piと組み合わせて使用することで、様々なプロジェクトで役立ちます。

2. SG90の接続

SG90をRaspberry Piに接続するには、以下のように接続します。

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

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

3. Pythonコードの作成

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

import RPi.GPIO as GPIO
import time

# GPIOピンの設定
servo_pin = 17
GPIO.setmode(GPIO.BCM)
GPIO.setup(servo_pin, GPIO.OUT)

# PWMの初期化
pwm = GPIO.PWM(servo_pin, 50)  # 50HzのPWM信号
pwm.start(0)

def set_angle(angle):
    duty_cycle = (angle / 18) + 2
    GPIO.output(servo_pin, True)
    pwm.ChangeDutyCycle(duty_cycle)
    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()

このPythonコードは、SG90を0度、90度、180度に順番に移動させる簡単な例です。必要に応じて、動作させたい角度や待ち時間を変更することができます。

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

最後に、書いたPythonコードをRaspberry Pi上で実行し、SG90が正しく動作するか確認します。コードが実行されると、SG90が指定した角度に移動するはずです。

これで、Raspberry PiにSG90を接続し、Pythonコードを使用して制御するための基本的な手順が完了しました。SG90の制御を活かして、様々なRaspberry Piプロジェクトを展開することができます。