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

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

前回、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のコアな機能のところに集中できますね。

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

 

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

Add a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close