実践Linux                 TOPへ  Raspberry pi目次へ

Raspberry Piで遊ぶ  サーボモーター編    2016年3月


サーボモーター SG-90 (5個 1900円)
PCA9685搭載 16チャンネル PWM/サーボ ドライバー (1980円)
いずれもAmazonで購入できた。
あと、サーボモーター用5V電源はスマホの充電器を用いた。



●PCA9685を制御するためのI2Cライブラリのインストール
まず、アップデートしておく。
# apt-get update
# apt-get upgrade
# apt-get install i2c-tools  I2Cをチェックするためのツール
# apt-get install python-smbus  I2C通信用ライブラリ

●I2Cデバイスを有効にする
GUIで設定する場合
Menu→設定→Raspberry Piの設定→「インターフェイス」タブ
「i2c」を有効にする。

GUIでの設定ができない場合
# raspi-config
起動したら、「8 Advanced Options」、「A7-I2C」の順に選択。
その後2回確認があるので「はい」や「了解」を選択する。

エディタで/etc/modprobe.d/raspi-blacklist.conf を開き、
#blacklist i2c-bcm2708を確認(コメントアウトされていることを確認。あるいは、記述されていないことを確認)。
ここを直接編集してもよい?

●つづいて、 /etc/modulesを編集
最終行に追加
i2c-dev
i2c-bcm2708

ここで一旦再起動。




●サーボを動かす
サーボを動かすためのドライバをインストール
まず、インストールにはgitを使うので、gitがインストールされているか調査
# dpkg -l | grep git   NOOBS 1.8.0にはインストールされていた。
入っていなければ、インストール # apt-get install git
このgitを使って、ドライバをインストール
# git clone https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git

インストールが終わったら、これを/開発/サーボモーター/にでも移動しておく。

Adafruit-Raspberry-Pi-Python-Code/Adafruit_PWM_Servo_Driver/Adafruit_PWM_Servo_Driver.pyを編集
self.i2c = Adafruit.I2C(address)という行があるので、このAdafruit.I2C(address)の部分をAdafruit.I2C(adress,1)と書き換えておく(新しいRaspberry Pi type B 512mbの場合、type A 256mbモデルの場合は0)。

サーボを動かす
# cd /開発/サーボモーター/Adafruit-Raspberry-Pi-Python-Code/Adafruit_PWM_Servo_Driver
# python Servo_Example.py
サーボが一定周期で動き出したら成功。
止めるときはCTRL+C。
Servo_Example.pyを編集すると、独自のソフトがいろいろ作ることができる。



TOPへ  Raspberry pi目次へ