Raspberry Piでラジコン用サーボを動かす

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番に接続したラジコン用サーボが動作しました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)