環境
- 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/