シェルスクリプトマガジン

Raspberry Piを100%活用しよう(Vol.77掲載)

筆者:米田 聡

小型コンピュータボード「Raspberry Pi」(ラズパイ)向けにさまざまな拡張ボードが発売されています。その拡張ボードとラズパイを組み合わせれば、ラズパイでいろいろなことが簡単に試せます。第10回は、サーボモーターを制御できる拡張基板を扱います。

シェルスクリプトマガジン Vol.77は以下のリンク先でご購入できます。

図6 チャンネル1に接続したSG90を動かすサンプルプログラム(sv.py)

import smbus, SVO
import time

servo = SVO.SVO()

#init

servo.Servo_Switch('b', '0')         # 両チャンネルオフ
servo.Set_servo_cycle('20000')       # PWMピリオド20ミリ秒
servo.Set_servo_duty_min('b','500')  # 最小デューティサイクル0.5ミリ秒
servo.Set_servo_duty_max('b','2400') # 最大デューティサイクル2.4ミリ秒
servo.Set_servo_duty('b', '500')     # -90度に初期化
servo.Set_servo_Write()              # 初期値を書き込み

# 作動
servo.Servo_Switch('b', '1')         # 両チャンネルオン
time.sleep(3)

for r in range(10, 190, 10):         # 10度から180度まで
    print("r=" + str(r))
    sval = str(int( r*1900/180 + 500 ))
    servo.Set_servo_duty('1', sval)
    servo.Set_servo_Write()
    time.sleep(3)