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個セット)”]