環境
- Raspberry Pi 3 Model B
- Raspbian GNU/Linux 9.4 (stretch)
- サーボモーター: SG90
wiringpi2 インストール
$ sudo pip3 install wiringpi2
Python3 コード
SG90 の信号線は Raspberry Pi の GPIO18 に接続しています。
DUTY_MIN, DUTY_MAX の値は適当に。。。
あと、このスクリプトは root 権限で実行しないと、Raspberry Pi が固まります。
#!/usr/bin/env python3
import wiringpi
import time
PWM_PIN = 18
DUTY_MIN = 45
DUTY_MAX = 105
wiringpi.wiringPiSetupGpio()
wiringpi.pinMode(PWM_PIN, wiringpi.GPIO.PWM_OUTPUT)
wiringpi.pwmSetMode(wiringpi.GPIO.PWM_MODE_MS)
wiringpi.pwmSetClock(375)
while True:
for duty in range(DUTY_MIN, DUTY_MAX):
wiringpi.pwmWrite(PWM_PIN, duty)
time.sleep(0.01)
for duty in range(DUTY_MAX, DUTY_MIN, -1):
wiringpi.pwmWrite(PWM_PIN, duty)
time.sleep(0.01)
参考
- https://kakakikikeke.blogspot.jp/2016/01/raspberrypi-pwm.html
- http://bufferoverruns.blogspot.jp/2016/08/raspberry-pisg-90.html
- http://pongsuke.hatenablog.com/entry/2015/12/28/170747
- https://qiita.com/anzaitetsu/items/a66213c97fdb04d9baa7
- http://www.takunoko.com/blog/raspberrypi%E3%81%A7%E3%82%B5%E3%83%BC%E3%83%9C%E3%83%A2%E3%83%BC%E3%82%BF%E3%83%BCsg90/