raspberry pi 3 でサーボモータを動かす
ドアの自動開錠/施錠機構を作りたかったので、ラズパイからサーボモータを動かしていきます。
使ったもの
- raspberry pi 3 本体 (OS: raspbian)
- マイクロサーボ SG92R
- ジャンパー線
配線
まず、サーボモータ側の仕様を見ます
秋月電子のページを見ると、
配線:茶=GND、赤=電源[+]、橙=制御信号 [JRタイプ]
とあるのでその通りにします。
次にラズパイ側のピンアサインを調べます。
こういう仕様みたいなので、茶色をGNDへ、赤を+5Vへ、橙をGPIO4へ(GPIOならどこでも)、それぞれジャンパー線を介して繋げます。
こんな感じになりました。
今回に関してはブレッドボードを介そうが、直挿しだろうがどちらでもいいです。もちろん「直挿し」だよなぁ!? pic.twitter.com/vD5nQFv7qP
— mina (@silmin_) 2018年10月21日
プログラム
motor.py
import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) out_pin = 4 GPIO.setup(out_pin, GPIO.OUT) servo = GPIO.PWM(out_pin, 50) servo.start(0) servo.ChangeDutyCycle(2.5) time.sleep(0.5) # 90度回転 servo.ChangeDutyCycle(7.25) time.sleep(0.5) # さらに90度回転 servo.ChangeDutyCycle(12) time.sleep(0.5) servo.stop() GPIO.cleanup()
参考先↓ bufferoverruns.blogspot.com PWM制御の話とか、周波数とDutyCycleと角度の関係とかが詳しく説明されてるので、知りたかったら読んだらよさそう。 決して、説明がめんどうだから貼ったというわけではない。
実行
$ python motor.py
で動く