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

obniz(オブナイズ)+leapmotion+cylon.js連携でマジックハンドでサーボを動かす!本邦初公開!leapmotionとobnizの連携記事

前回、leapmotionとArduinoの連携について書きました。

LeapmotionとArduinoとCylon.jsでFirmataを利用して連続サーボの回転方向を制御する!俺のフォースを感じろ!

今回は少しパワーアップして(構成がもしろ簡単になった!)

目次

obniz(オブナイズ)+leapmotion+cylon.js連携でマジックハンドでサーボを動かす!もちろんJavaScriptで!本邦初公開!leapmotionとobnizの連携記事

前回で、cylon.jsを使って、Firmataで

Arduinoに接続しているサーボを動かしてみましたが

そういえば

obnizもnode.jsでネットワーク越しに

色々制御できますから

leapmotion+cylon.js+obnizで組み合わせたら

どうなるかが気になって、これを作ってみました!

まだ、公式サイトにもleapmotionとobnizの連携は書いていませんよ!

これは、間違いなく本邦初公開

まず、ハードウェアの接続です。

leapmotionはパソコンのUSBに接続する(もちろん、あなたのPCにはleapmotionのソフトウェアドライバーなどがインストール済みという前提で)

連続サーボ、前回の記事の同じものFS90R

サーボのGND  –> obnizのpin0

サーボのV               –> obnizのpin1

サーボのS               –> obnizのpin2

(プログラム起動したら、接続指示がoledに出ます。)

プログラム

好きなところで、作業フォルダを作りましょう

mkdir obniz

必要なパッケージpackage.json

{
  "name": "obniz",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "dependencies": {
    "obniz": "^1.4.4",
    "cylon-firmata": "^0.24.0",
    "cylon": "^1.3.0",
    "cylon-i2c": "^0.26.1",
    "cylon-gpio": "^0.30.1",
    "cylon-leapmotion": "^0.21.0",
    "leapmotion": "^0.0.4"
  },
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

上のpackage.jsonを作って作業フォルダに入れて下記のコマンドを実行します。

npm install

本体

"use strict";
var Cylon = require("cylon");
var Obniz = require("obniz");

var obniz = new Obniz("YOUR_OBNIZ_ID");

Cylon.robot({
  connections: {
    leap: {
      adaptor: "leapmotion"
    }
  },

  devices: {
    leapmotion: {
      driver: "leapmotion",
      connection: "leap"
    }
  },
  work: function (my) {
    var type = '';
    my.leapmotion.on("frame", function (frame) {
      console.log(frame.toString());

    });
    my.leapmotion.on("hand", function (hand) {
      type = hand.type;
      console.log(type);
    });

    obniz.onconnect = async function () {
      var servo = obniz.wired("ServoMotor", {
        gnd: 0,
        vcc: 1,
        signal: 2
      });

      var angle = 0;

      setInterval(async function () {
        servo.angle(angle);
        if (type == "left") {
          angle = 100; //この辺の角度を色々調整してみてください。
        } else if (type == "right") {
          angle = 80;
        }
      }, 200);

    }
  }
}).start();

好きなEditorで上のファイルを作ってください、好きな名前にしてください。例えば、leapmotion2servo.js

実行

いよいよ実行する時間です。

node leapmotion2servo.js

そうすると、両手を交互にleapmotionセンサーの上にかざしてみてください。

ちゃんと、右手、左手と認識され

obnizに送信して、サーボの回転方向を変えてくれます。

大成功ですね!

こんな簡単でいいですか!

まとめ

obnizはやはり今までのarduinoと全く違うカテゴリーのものですね。

node.jsでプログラムをすぐ書けて、すぐ、ネットワーク越しに動作できるところが感動的です。

要は、ネットワークは最初から前提となっていて

全ての動作は全部ネットワーク越しに実行される、しかもこれは特に開発者は意識しなくて良いところが大きいですね。

前、ESP32でwifiのアクセスポイントやサーバーなどを作りましたが

ESP32をアクセスポイントにした上、ウェブサーバーを立てる!

やはりそれなりのプログラムも必要ですし、設定も接続も手間がかかりますが

obnizの方では、それを気にしなくてよく済みます。

そうするとネットの設定やプログラミングではなく

IoTのコアな機能のところに集中できますね。

これはなかなか貴重な価値提供です!

[amazonjs asin=”B07DD6FK8G” locale=”JP” title=”obniz (オブナイズ)”]

[amazonjs asin=”B00GWCATS8″ locale=”JP” title=”【国内正規代理店品】 Leap Motion 小型モーションコントローラー 3Dモーション キャプチャー システム”]

[amazonjs asin=”B077JFCPCX” locale=”JP” title=”Feetech FS90R マイクロサーボ 360度連続回転 6V 9G 車輪付き 2点入り 900us-2100us 並行輸入品”]

 

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