Raspberry Pi(初代)でラジコン用サーボを制御してみました。
ラジコン用サーボの信号生成には、秋月の16chキットを使いました。まず、コマンドラインでI2Cのレジスタを見ることができるようにします。
pi@raspio:~ $ sudo apt install i2c-tools python-smbus
pi@raspio:~ $ ls -la /dev/i2c*
crw-rw---- 1 root i2c 89, 0 10月 19 08:57 /dev/i2c-0
pi@raspio:~ $ sudo i2cdetect -y 0
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: 70 -- -- -- -- -- -- --
次に、Python3でサーボ制御用の仮想環境を用意します。
pi@raspio:~/python3 $ sudo apt-get install python3-pip python3-venv
pi@raspio:~/python3 $ python3 -m venv servo
pi@raspio:~/python3 $ cd servo/
pi@raspio:~/python3/servo $ source bin/activate
(servo) pi@raspio:~/python3/servo $ pip install --upgrade pip
(servo) pi@raspio:~/python3/servo $ python -V
Python 3.7.3
gitでAdafruitのPCA9685用のライブラリをダウンロードしてきてインストールします。
(servo) pi@raspio:~/python3/servo $ sudo apt-get install git
(servo) pi@raspio:~/python3/servo $ git clone https://github.com/adafruit/Adafruit_Python_PCA9685.git
Cloning into 'Adafruit_Python_PCA9685'...
(servo) pi@raspio:~/python3/servo $ cd Adafruit_Python_PCA9685
(servo) pi@raspio:~/python3/servo/Adafruit_Python_PCA9685 $ python setup.py install
exampleディレクトリにあるサンプルを実行します。
(servo) pi@raspio:~/python3/servo/Adafruit_Python_PCA9685 $ cd examples/
(servo) pi@raspio:~/python3/servo/Adafruit_Python_PCA9685/examples $ python simpletest.py
これでPCA9685の16チャネルのサーボモータ接続端子のうちの0番に接続したラジコン用サーボが動作しました。