サーボモータについて
サーボモータについての解説は
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度の角度に動きます。