PCA9685 16チャンネル 12ビット PWM サーボモータードライバ I2C モジュール

PCA9685 は、NXP セミコンダクターズの I2C 接続の PWM コントローラである.これを搭載したモジュールを使うことで、Raspberry Pi や micro:bit などから、16 チャンネルのサーボモーターや LED を制御できる.

主な仕様

サーボモーターは、動作時に大きな電流を消費する.Raspberry Pi の電源からサーボモーターに給電すると、電圧降下により Raspberry Pi が再起動することがある.サーボモーター用には、モーターの定格に合った外部電源を V+ 端子に接続する.

Raspberry Pi での準備

  1. I2C の有効化

    端末で,次のコマンドを実行.

    表示されるメニューで「Interface Options」、「I2C」の順に選び、有効にする.

    sudo raspi-config
    
  2. I2C ツールのインストールと接続確認

    端末で,次のコマンドを実行.

    モジュールが認識されていれば、アドレス(既定では 40)が表示される.

    sudo apt update
    sudo apt -y install i2c-tools
    i2cdetect -y 1
    
  3. Python ライブラリのインストール

    Raspberry Pi OS のシステム Python は外部管理環境(PEP 668)として保護されているため、Python の仮想環境を作成してインストールする.

    python3 -m venv --system-site-packages ~/servo
    source ~/servo/bin/activate
    pip install -U adafruit-circuitpython-pca9685 adafruit-circuitpython-servokit
    
  4. 動作確認

    0 番のチャンネルに接続したサーボモーターを、0 度、90 度、180 度の順に動かすプログラムである.

    from adafruit_servokit import ServoKit
    import time
    
    kit = ServoKit(channels=16)
    
    for angle in [0, 90, 180]:
        kit.servo[0].angle = angle
        time.sleep(1)
    

関連する外部ページ

サーボモーター