【夏休みの自由研究】RaspberryPi3でサーボモーター(SG-90)を動かしてみた
イマサラナガラ
[amazonjs asin="B01CSFZ4JG" locale="JP" title="Raspberry Pi3 Model B ボード&ケースセット (Element14版, Clear)-Physical Computing Lab"]
前提
Pyenvをホームディレクトリに構築 でpython環境を構築した後に、
pip install RPi.GPIO
でインストール。
回路図
ソースコード
#!/usr/bin/python
# coding: utf-8
import RPi.GPIO as GPIO
import time
import signal
import sys
def exit_handler(signal, frame):
servo.ChangeDutyCycle(2.0)
time.sleep(0.5)
servo.stop()
GPIO.cleanup()
sys.exit(0)
def rotate(servo, angle, sleep_time=1):
"""
回転する
"""
dc =(1.0 + angle/180.0)/20.0*100.0
servo.ChangeDutyCycle(dc)
time.sleep(sleep_time)
def refresh(servo):
"""
終わったら初期化する
"""
servo.ChangeDutyCycle(2.0)
time.sleep(1.0)
servo.stop()
if __name__ == '__main__':
signal.signal(signal.SIGINT, exit_handler)
GPIO.setmode(GPIO.BCM)
gp_out = 25
GPIO.setup(gp_out, GPIO.OUT)
servo = GPIO.PWM(gp_out, 50)
# 初期化
servo.start(0.0)
houkou = 1
angle = 0
while True:
rotate(servo, angle, 0.5)
if angle >= 270:
houkou = -1
elif angle <= -90:
houkou = 1
angle += houkou * 30
refresh(servo)
GPIO.cleanup()
実行後
回転させただけ。
ディスカッション
コメント一覧
まだ、コメントがありません