Raspberry Pi Zero WでPCA9685 16チャネルPWMサーボモータドライバを使ってみた(python)。
- 2018/02/18
- 22:05
Raspberry Pi Zero WでPCA9685 16チャネルPWMサーボモータドライバを使ってみた(python)。
RoboTakaoです。ようこそ「極力ローコスト ロボット製作 ブログ」にお越しくださいました。
前回はArduinoでPCA9685 16チャンネルPWMサーボモータドライバを使ってみましたが、今回はRaspberry Pi Zero Wで使用してみたいともいます。
前回のArduinoについてはこちらを参照してください。

I2Cの設定
私の環境では既にI2Cを使えるようにしていますが、初めての場合は以下の設定が必要です。
pi@raspberrypi:~ $ sudo raspi-config
5 Interfacing Options → P5 I2C → 有効にします


結線
PCA9685
+5V バッテリのプラス
OE 未接続
SCL Raspberry PiのSCL
SDA Raspberry PiのA4
GND Raspberry PiのGND およびバッテリーのマイナス
VCC Raspberry Piの5V

I2Cの番号確認
pi@raspberrypi:~ $ sudo i2cdetect -y 1

pythonのライブラリーインストール
pi@raspberrypi:~ $ git clone https://github.com/adafruit/Adafruit_Python_PCA9685.git
pi@raspberrypi:~ $ git clone https://github.com/adafruit/Adafruit_Python_GPIO.git
pi@raspberrypi:~ $ git clone https://github.com/adafruit/Adafruit_Python_PureIO.git
pi@raspberrypi:~ $ cd Adafruit_Python_PCA9685/
pi@raspberrypi:~/Adafruit_Python_PCA9685 $ sudo python3 setup.py install
pi@raspberrypi:~/Adafruit_Python_PCA9685 $ cd ../Adafruit_Python_GPIO/
pi@raspberrypi:~/Adafruit_Python_GPIO $ sudo python3 setup.py install
pi@raspberrypi:~/Adafruit_Python_GPIO $ cd ../Adafruit_Python_PureIO/
pi@raspberrypi:~/Adafruit_Python_PureIO $ sudo python3 setup.py install
動作テスト
Arduinoの時と同じように周波数50Hzで最小パルス幅150 最大パルス幅500で動かしてみます。
サーボは1番ピンつまり2番目のピンで動作するように設定。
一つのサーボを0〜180度で回転させる。
コマンド
set_pwm_freq(周波数Hz)
set_pwm(チャンネル番号, パルスのスタート, パルスの終了)
パルスの長さは周波数/4096 x パルス幅 = ms みたいです。
例えば
20ms/4096 x 150 = 732μs
20ms/4096 x 500 = 2441μs
python上で以下実行
>>> import Adafruit_PCA9685
>>> pwm = Adafruit_PCA9685.PCA9685()
>>> pwm.set_pwm_frep(50)
>>> pwm.set_pwm(1,0,500)
>>> pwm.set_pwm(1,0,150)
これで無事動くことを確認。
次は16個のサーボを動かすようにコードを書いてみます。
(サーボは手持ちが7個しかなかったので7個です。)
import Adafruit_PCA9685
import time
pwm = Adafruit_PCA9685.PCA9685()
pwm.set_pwm_freq(50) #周波数50Hzに設定
while True:
for i in range(16):
pwm.set_pwm(i,0,150) #0度にする
time.sleep(1)
for i in range(16):
pwm.set_pwm(i,0,500) #180度にする
time.sleep(1)
無事動きました。
それでは今回はこの辺で失礼します。ありがとうございました。
スポンサードリンク