JavaScript(johnny-five)でArduinoのFirmata方式で、PCA9685複数サーボを動かす!
前に、RaspberryPiとPythonとPCA9685を使って、複数サーボを動かす方法をご紹介しましたが
今回は、ArduinoとJohnny-fiveを使って、JavaScriptで、PCA9685を使って、
複数サーボを動かす方法をご紹介したいと思います!
そうなんです、JavaScriptで電子工作までできてしまうんです!笑
まず、こちらの記事を先にお読みになることをお勧めします。
目次
ハードウェア
①まずは、主役のPCA9685です!前回と同じです!
こちら!
緑のソケットは、複数の大出力サーボを動かすときに電力を補強するときに使います。
PCA9685がPythonでRaspberryPiで簡単にサーボを動かせますが
留意点として、ACモーターと100% デジタルサーボは動作しないことです、気をつけてください。

②もちろんRaspberry Pi

③Arduino

④動かすサーボたち!

⑤ブレッドボード一枚
接続
PCA9685側の接続は前回の記事と全く同じで

そのまま、Raspberry Piに接続したワイヤーをArduinoに接続し直します!
(色がちょっと変えましたので、色を見ないで、しっかり下記の配線説明通りに接続して見てください。)
PCA9685 GND -> Arduino GND
PCA9685 VCC->Arduino 3V3 (大事!)
PCA9685 V+ ->Arduino 5V サーボ駆動電源
PCA9685 SDA ->Arduino A4(写真の黄色)
PCA9685 SCL ->Arduino A5(写真の緑)

プログラム
今回はJavaScriptとなります!
node.jsがインストールしているRaspberry Pi環境をご用意ください。
まだnode.jsをインストールしていない場合は、下記の記事をご参考ください。
http://johnny-five.io/examples/servo-PCA9685/
var five = require("johnny-five");
var board = new five.Board();
board.on("ready", function() {
console.log("Connected");
// Initialize the servo instance
var a = new five.Servo({
address: 0x40,
controller: "PCA9685",
pin: 0,
});
var b = new five.Servo({
address: 0x40,
controller: "PCA9685",
range: [0, 180],
pin: 1,
});
var degrees = 0;
a.to(degrees);
b.to(degrees);
});
上のプログラムは、2つのサーボしか動かすことしかしません。

画像は、こちらから引用:http://johnny-five.io/examples/servo-PCA9685/
8個まで動かすように、プログラムを改修してください。
また、 package.jsonは下記の通りとなります。
今回は、johny-fiveが必要です。
{
"name": "pca9685",
"version": "1.0.0",
"description": "pca9685",
"main": "board.js",
"dependencies": {
"johnny-five": "^0.14.1"
},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
好きなフォルダに格納して、コマンド npm install を実行してください。
いざ実行!
node pca9685.js
サーボが動きました!
まとめ
前回と合わせて、RaspberryPi+Python+PCA9685で複数サーボの動かし方と今回の
RaspberryPi(PCも)+JohnnyFive+Arduino(Firmata)+PCA9685で複数サーボの動かし方をご紹介しました。
いかがですか?
1つの目的を達成するには、様々な方法、アプローチがありますね。
どれが絶対良いというよりは、実際の応用にによって、どれが、コストパフォーマンスが良いか
どれが実装しやすい、メンテナンスしやすいかなど様々な観点から、総合的に判断するものですね。
では、また、他のやり方を調査しましたら、また共有します!
ご機嫌よう!
[amazonjs asin=”B0044X2E5S” locale=”JP” title=”【永久保証付き】Arduino Uno”]
[amazonjs asin=”B01KXB1KGS” locale=”JP” title=”Johnny-Fiveでマイコン制御 Raspberry Pi偏”]
[amazonjs asin=”B00U5W3EQU” locale=”JP” title=”OSOYOO(オソヨー) マイクロサーボ (10個セット)”]