機材の準備

  • CHIRIMEN
  • microUSBケーブル
  • microHDMI-HDMIケーブル
  • ACアダプタ
  • HDMIディスプレイ
  • サーボモータ
  • サーボドライバ
  • ルーホール用ジャンパワイヤ適量

サーボモータとは?

  • サーボモータとは、回転位置を制御することができるモータで、ロボットの関節部分などに用いられることが多い。
  • 回転位置の検出器付きのモーターで、フィードバック制御されるものが一般的。
サーボモータ - Wikipedia

サーボドライバ

  • サーボモータはPWM信号で制御されることが一般的。PWM制御とは電源オン/オフのパルス間隔を変化させることで制御を行う方式である。
  • CHIRIMENからPWM信号を出力するために、I2Cインターフェースを持つサーボドライバを使用する。
  • サーボドライバはI2Cの信号を受けて、PWM信号によってサーボモータを制御する。
MMMDB - PWM制御

サーボモータサンプルアプリの実行

  • サーボモータサンプルアプリの読み込み
  • サーボモータ回路の配線
  • アプリ実行

サーボモータサンプルアプリの読み込み

  • サーボモータサンプルアプリをダウンロードして、任意のディレクトリに展開する。
  • Web IDE左上から「パッケージ型アプリを開く」からダウンロードしたボタンサンプルアプリを読み込む。

サーボモータ回路の配線

  • 配線図に従ってサーボモータ、サーボドライバを接続する。接続にはスルーホール用ジャンパ線を用いる。
  1. CHIRIMENのI2C0_SDA(CN2-12)、I2C0_SCL(CN2-11)とサーボドライバのSDA、SCLを接続する。
  2. CHIRIMENのGND(CN2-1)、VCC(CN2-18)とサーボドライバのGND、VCCを接続する。
  3. サーボドライバのV+(モータ用の電源入力)とVCCを接続する。
  4. サーボモータのPWM、V+、GNDとサーボドライバのPWM、V+、GNDを接続する。

アプリ実行

  • 配線が正しいことを確認し、CHIRIMENとPCを接続する。
  • アプリをインストールする。
  • 正しく動作すればサーボモータが回転し始めることが確認できる。

プログラムの解説

  • ライブラリの読み込み
  • I2Cの初期化とポートオープン
  • サーボドライバの初期化
  • サーボモータの制御

ライブラリの読み込み

  • I2Cのセンサと同様、サーボモータもライブラリを用いて制御を行う。
該当コード:ライブラリの読み込み

I2Cの初期化とポートオープン

I2Cセンサと同様に、サーボドライバの制御するためにI2Cの初期化処理とポートオープンの処理を行う。
該当コード:I2Cの初期化とポートオープン

サーボドライバの初期化

  • サーボドライバによりサーボモータを制御するために、サーボドライバの初期化処理を行う。
該当コード:サーボドライバの初期化
  • PCA9685.init(<I2Cポートオブジェクト>,<デバイスアドレス>)でサーボドライバの初期化を行うことができる。
  • サーボドライバのデバイスアドレスは0x40(初期設定)を用いる。

サーボモータの制御

  • サーボモータの制御を行う。
該当コード:サーボモータの制御
  • PCA9685.setServo(<I2Cポートオブジェクト>,<デバイスアドレス>,<サーボモータのID>,<サーボモータの角度>)でサーボモータを制御することができる。
  • <サーボモータのID>でサーボドライバに接続されたどのサーボモータを動かすかを指定する。0〜15の整数で指定する。
  • <サーボモータの角度>で指定した角度にサーボモータを動かすことができる。-90〜90の整数で指定する。