サイトアイコン KOKENSHAの技術ブログ

JavaScript(johnny-five)でArduinoのFirmata方式で、PCA9685複数サーボを動かす!

前に、RaspberryPiとPythonとPCA9685を使って、複数サーボを動かす方法をご紹介しましたが

今回は、ArduinoとJohnny-fiveを使って、JavaScriptで、PCA9685を使って、

複数サーボを動かす方法をご紹介したいと思います!

そうなんです、JavaScriptで電子工作までできてしまうんです!笑

まず、こちらの記事を先にお読みになることをお勧めします。

RaspberryPi+Python+PCA9685で複数のサーボを制御する!簡単!

目次

ハードウェア

①まずは、主役の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をインストールしていない場合は、下記の記事をご参考ください。

世界一簡単なRaspberryPiに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個セット)”]

モバイルバージョンを終了