はんぎょねこの憂鬱

耳から変な汁が出てきた

RaspberryPi 3 RPIOでサーボモーターを動かす

RPIOをインストール

モーターは デジタル・マイクロサーボ SG90 を使いました

下記サイトを参考に github.com

こんな感じでインストール

cd ~
git clone https://github.com/metachris/RPIO.git --branch v2 --single-branch
cd RPIO
sudo python3.4 setup.py install

スクリプトを書く

root権限で実行しないといけないっぽい

from RPIO import PWM
import time

servo = PWM.Servo()
pin = 14


def deg_to_width(deg):
    ''' 角度からパルス幅に変換

    :param: deg 角度(-90~+90)
    :return: パルス幅
    '''
    center = 127
    margin = 45
    step = (center - margin) / 90.0
    deg = max(-90.0, min(deg, 90.0))
    return int(center + deg * step) * 10

while True:
    for x in [-90, 0, 90, 0]:
        servo.set_servo(pin, deg_to_width(x))
        time.sleep(1)

ちなみにPWMとPCMは同時に使えないのでサーボ制御しながら音も出したいときはBluetoothスピーカーとかUSBサウンドカードを使ったほうがよさげ