🐍
ラズパイでサーボモーターを制御する
GPIOピンの接続方法
ラズパイのGPIOに接続するために、サーボモーターのコネクタにジャンパワイヤを取り付けます。
茶: GND -> 6番ピン.
赤: 電源 -> 2番ピン.
黄: 制御信号 -> 12番ピン.
ライブラリのインストール
GPIO制御のライブラリーをインストール。
$ sudo pigpiod
ソースコード
プログラムはMacのVSCodeからssh接続して書いてます。
import pigpio
import time
SERVO_PIN = 18
ANGLE = 90 # 回転角度
# pigpioを初期化
pi = pigpio.pi()
# サーボモーターを特定の角度に設定する関数
def set_angle(angle):
assert 0 <= angle <= 180, '角度は0から180の間に注意する'
# 角度を500から2500のパルス幅にマッピングする
pulse_width = (angle / 180) * (2500 - 500) + 500
# パルス幅を設定してサーボを回転させる
pi.set_servo_pulsewidth(SERVO_PIN, pulse_width)
# 使用例
try:
while True:
set_angle(90 + ANGLE) # +angle度
time.sleep(1)
set_angle(90) # 0度
time.sleep(1)
set_angle(90 - ANGLE) # -angle度
time.sleep(1)
set_angle(90) # 0度
time.sleep(1)
except KeyboardInterrupt:
# Ctrl+Cで終了
pi.set_servo_pulsewidth(SERVO_PIN, 0)
pi.stop()
実行結果
今後の課題
目標は、LINE Messaging APIと連携して、LINEからサーボモーターを制御してマンションの解錠ボタンを押すこと。
そのために、ラズパイで立ち上げたflaskのローカルサーバーを、ngrok経由で通信できるようにしようと思う。
Discussion