Raspberry Piでサーボモーターを回す
このエントリは「Raspberry Piでスマートロックつくった」の解説2つめになります。
サムターンを回してカギを開閉するためにサーボモーターSG92Rを使います。Pythonでサーボを簡単に扱うライブラリはいくつかありますが、今回はRaspbianに最初から入っているRPi.GPIOを使って動かします。
GPIOピンに接続
秋月電子通商の商品紹介ページによると、
動作電圧:4.8~6V、
配線:茶=GND、赤=電源[+]、橙=制御信号
だそうです。
なので茶色をGND、赤を5V、黄色を4番あたりに繋いで制御パルス用に用います。
プログラム
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
#GPIO4を制御パルスの出力に設定
gp_out = 4
GPIO.setup(gp_out, GPIO.OUT)
#「GPIO4出力」でPWMインスタンスを作成する。
#GPIO.PWM( [ピン番号] , [周波数Hz] )
#SG92RはPWMサイクル:20ms(=50Hz), 制御パルス:0.5ms〜2.4ms, (=2.5%〜12%)。
servo = GPIO.PWM(gp_out, 50)
#パルス出力開始。 servo.start( [デューティサイクル 0~100%] )
#とりあえずゼロ指定だとサイクルが生まれないので特に動かないっぽい?
servo.start(0)
#time.sleep(1)
for i in range(3):
#デューティサイクルの値を変更することでサーボが回って角度が変わる。
servo.ChangeDutyCycle(2.5)
time.sleep(0.5)
servo.ChangeDutyCycle(7.25)
time.sleep(0.5)
servo.ChangeDutyCycle(12)
time.sleep(0.5)
servo.ChangeDutyCycle(7.25)
time.sleep(0.5)
servo.stop()
GPIO.cleanup()
実行結果
サーボモーター動いたo(^▽^)o #RaspberryPi pic.twitter.com/09ljoifxkY
— undo (@undo) 2017年11月25日
ちなみに
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
#GPIO4を制御パルスの出力に設定
gp_out = 4
GPIO.setup(gp_out, GPIO.OUT)
#「GPIO4出力」でPWMインスタンスを作成する。
#GPIO.PWM( [ピン番号] , [周波数Hz] )
#SG92RはPWMサイクル:20ms(=50Hz), 制御パルス:0.5ms〜2.4ms, (=2.5%〜12%)。
servo = GPIO.PWM(gp_out, 50)
#パルス出力開始。 servo.start( [デューティサイクル 0~100%] )
#とりあえずゼロ指定だとサイクルが生まれないので特に動かないっぽい?
servo.start(0)
#time.sleep(1)
for i in range(3):
#デューティサイクルの値を変更することでサーボが回って角度が変わる。
servo.ChangeDutyCycle(2.5)
time.sleep(0.5)
servo.ChangeDutyCycle(7.25)
time.sleep(0.5)
servo.ChangeDutyCycle(12)
time.sleep(0.5)
servo.ChangeDutyCycle(7.25)
time.sleep(0.5)
servo.stop()
GPIO.cleanup()
サーボモーター動いたo(^▽^)o #RaspberryPi pic.twitter.com/09ljoifxkY
— undo (@undo) 2017年11月25日
ちなみに
ラズパイでサーボっていうとよくSG90が紹介されていますが今回はSG92Rを使っています。カギを回すために一応トルクがちょっと強めなSG92Rを採用したのが理由ですが、結果としては十分すぎるくらい強かったのでSG90でも問題なく回せると思います。サイズ感で好みの方を使えば良いでしょう。
Next:Raspberry PiにNFCリーダを接続してSuicaを読み取る
Author And Source
この問題について(Raspberry Piでサーボモーターを回す), 我々は、より多くの情報をここで見つけました https://qiita.com/undo0530/items/51cc446eefec6c91c26d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .