logo
Published on

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

Authors
  • avatar
    Name
    Shou Kawakami / 川上翔
    Twitter

はじめに

Raspberry Piは豊富なGPIOピンを備え、様々なデバイスを制御するのに適しています。この記事では、小型のサーボモーター「MG90S」をRaspberry Piに接続し、制御する手順について説明します。

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

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

MG90Sは、小型で高トルクのサーボモーターであり、主にラジコンカーなどの模型制作やロボットプロジェクトで利用されます。MG90Sは通常、PWM信号を使用して角度を制御します。

2. MG90Sの接続

MG90Sは通常、三つの線があります。

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

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

3. Raspberry Piコードの作成

Raspberry PiではPython言語を使用してサーボモーターを制御することが一般的です。以下は、MG90Sが接続されたGPIOピンが17番だと仮定した例です。

import RPi.GPIO as GPIO
import time

# GPIOの設定
servo_pin = 17  # MG90Sが接続されたGPIOピン
GPIO.setmode(GPIO.BCM)
GPIO.setup(servo_pin, GPIO.OUT)

# PWMの設定
pwm = GPIO.PWM(servo_pin, 50)  # PWM周波数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にPythonコードを保存し、ターミナルで実行します。MG90Sが正しく接続されていれば、指定した角度にサーボモーターが移動するはずです。

これで、Raspberry PiにMG90Sを接続し、簡単な制御を行うための基本的な手順が完了しました。MG90Sの動作を組み込んで、様々なプロジェクトを実現することができます。