世紀末の墓

世紀末の墓

IT系寄りの雑記

raspberry pi 3 でサーボモータを動かす

ドアの自動開錠/施錠機構を作りたかったので、ラズパイからサーボモータを動かしていきます。

使ったもの

  • raspberry pi 3 本体 (OS: raspbian)
  • マイクロサーボ SG92R
  • ジャンパー線

配線

まず、サーボモータ側の仕様を見ます
秋月電子のページを見ると、

配線:茶=GND、赤=電源[+]、橙=制御信号 [JRタイプ]

とあるのでその通りにします。

次にラズパイ側のピンアサインを調べます。

f:id:silmin:20181023013841p:plain f:id:silmin:20181023013831p:plain

こういう仕様みたいなので、茶色をGNDへ、赤を+5Vへ、橙をGPIO4へ(GPIOならどこでも)、それぞれジャンパー線を介して繋げます。

こんな感じになりました。

今回に関してはブレッドボードを介そうが、直挿しだろうがどちらでもいいです。

プログラム

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

で動く