サーボモータについて

  • サーボモータについての解説はCHIRIMEN Servoに記載してあります。

ハードウェアの準備

  • CHIRIMEN Basic Shieldを使用します。
  • シールドがない場合はCHIRIMEN Servoを参考にして回路を準備してください。

Basic Shieldとの接続

  • GROVE - 4ピン-ジャンパメスケーブルをI2C0という印字のある列の5Vという印字のある箇所に接続してください。

PCA9685の接続

  • GROVE - 4ピン-ジャンパメスケーブルの黒、赤、黄色、白色のケーブルをそれぞれPCA9685のGND,VCC,SCL,SDAに刺してください。
  • 普通のジャンパワイヤ(オス~メス)でPCA9685のVCC,V+を接続してください。
  • サーボモーターをch0に接続してください。

ソフトウェアの準備

  • CHIRIMENでサーボモータを制御する方法 を参考にソースコードを準備してください。
  • task.js、webgpio polyfillを使用するので準備してください。
  • WoTsignageアプリと同様に準備すれば大丈夫です。

プログラムの説明

サンプルプログラムについて解説する。
  • I2Cポートの初期化
  • サーボドライバの初期化処理
  • サーボモータの制御

I2Cポートの初期化

  • CHIRIMENアプリのベースを準備します。
  • I2Cポートの初期化処理をspawn関数内に記述します。

サーボドライバの初期化処理

  • サーボモーターを制御するための処理はPCA9685クラスにまとめてあります。
  • 初期化したI2Cポートオブジェクトとサーボドライバ(PCA9685)のアドレス(0x40)を指定して、pca9685クラスをnew呼び出しして、さらにサーボドライバの初期化処理を記述します。
  • 引数に指定している数値(0.00050,0.00240,180)はサーボモータ毎に異なる設定値です。SG90というサーボモータを使用する場合は、この通りに記述します。

サーボモータの制御

  • サーボモータの制御は制御するサーボモータのチャンネル(今回は0を指定)と、角度(angle変数で指定)を指定して、サーボモータの制御処理のように記述します。
  • 以下の記述は10度と170度を交互に設定する処理です。
angle = (angle<=10) ? 170 : 10;
  • 正しく動作すれば、サーボモータが1秒毎に10度、170度の角度に動きます。