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

JavaScriptで電子工作できるIoTボード obniz ! nodejsからobnizを操作する

JavaScriptでIoT! obnizのnode.js利用

今日は、obnizとnode.jsの連携についてご説明していきたいと思います。

他のobnizの記事もよろしければご参考ください。

obniz サーボを動かしての第一印象、これは未来だ!

目次

物理構造

obnize本体サイズは74.5×36.3mm

128×64ドットのOLEDディスプレイやIEEE 802.11b/g/n(2.4GHz)無線LANとBluetooth 4.2などを搭載しています。(ESP32が搭載ているので)

モーターやセンサーを接続できるIO数は全部で12で

全てのピンで最大1Aの電流を流すことができるというバケモノ設計になっています!ありがたい!

DCモーターやRCサーボなどを直接接続して動かすことも可能です!

DCモーターやRCサーボのために別の電源を用意しなくても良いところが便利ですね!

しかも過電流保護機能あります、ショートしたり、プラスマイナスが逆転したり、電流が大きくなったりすると、自動的に停止して、警告音を鳴らしてくれあます。ありがたい!

電源はmicroUSBケーブルで供給する形になっています。

クラウド経由で制御できる電子工作ボード

obnizはJavaScriptで制御を行うことができるIoT用のコントロールボードです。

obnizは組み込み電子回路やアプリの開発を手掛ける東京のスタートアップCambrianRoboticsが開発したボードです。

onnizは今までのAruduinoと及びその互換機と一番決定的な違いは

クラウド経由で制御できる電子工作ボードというところです。

Arduino系のボードなど、M5StackやESP32などと違ってJavaScriptを使って制御するプログラムを書きます。

もちろんArduino系もESP32系も、oledと繋げて、プログラミングすれば、似たような動作も実現できなくはないですが

obnizがそれを全部パケージ化して、あらかじめ動作できるように提供しているところが大きいな特徴です。

JavaScriptを使っているので、今まで敷居の高いIoTと電子工作も

ちょっとJavaScriptの利用経験のある、ウェブ開発者たちもすぐ馴染むことができて

IoTの電子工作がすぐ始められます。

まさに、革命的です!

開発環境はArduinoIDEではない

obniz(オブナイズ)は、スマートフォンなどを使ってWeb上からプログラムを書くことができます。

パソコンと接続する必要がありません!(USBが電源だけです。)

ハードウェアの専門的な部分にobnizのライブラリーがその難しさを隠蔽してくれて、IoTの電子工作がとても簡単なものになります。

センサーやモーターなどのパーツライブラリが豊富に用意されいます。

今のその対応するセンサーのライブラリーが増えています。

日本語も何も設定せずに、そのまま表示できちゃいます!

他のESP32やM5Stackですと、日本語を表示することがでいなくはないですが、ライブラリーを必要だったり、自分でコンパイルしたり、プログラムしたりするなど、やや手間がかかることになります。

obnizのプログラミングはブラウザ上で行うため(もちろんnode.jsでローカルのPCで開発することもできます、このあと一つの簡単な事例をご紹介します。)

ブラウザが動作する環境であればどのOS上でもプログラミングできます。

PCやスマートフォンなどにプログラム用のソフトウェアやアプリをインストールする必要はない。ブラウザーがあればすぐできます。今時、ブラウザーのないPCとスマホがありませんよね。笑。

obnizをWi-Fi経由でインターネットに接続してしまえば

センサーやサーボなどのパーツを基板につなぎ

OLEDディスプレイに表示されるQRコードをスマートフォンに読み込まるだけで

プログラムを始めることができます。

Node.jsでの開発もできる!

ウェブブラウザーでの開発は、前の記事をお読みになっていただければ

イメージを掴むことができるかと思います。

obnizで連続回転サーボを動かしてみる!

ブラウザで開発してobnizを動かす場合は

そのページを開いていないとobnizを使えないですが

nodejsを使えば手元のパソコンやサーバーなどでずっと動かすことが出来ます。

例えば、1時間ごとに気温を記録して処理してkibanaなどに送信することなどが簡単にできるようになります。

他のAPIと連携すれば、色々高度なこどができるようになります。

まさにInternet Of Things ですね!

今回は、node.jsでローカルPCでプログラミングする方法を簡単な例を通して、ご紹介したいと思います!

実はもうすでにお気付きですが、前の記事でもすでにnode.jsでobnizを利用していました。

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

環境の用意

すでに、JavaScript開発に慣れている方にとっては説明することがないぐらい簡単ですが

まずは、好きなロケーションで

mkdir myobniz

というふうにフォルダを一つ作成してください。

cd myobniz

そのフォルダに入って

npm install obniz

obnizをインストールしてください。(Node.jsがすでにインストールしている前提で)

その後、下記のようにプログラムを書けば、obnizは意図した通りに動きます!

var Obniz = require("obniz");

var obniz = new Obniz("1234-5678");
obniz.onconnect = async function () {
  var servo = obniz.wired("ServoMotor", {gnd:0, vcc:1, signal:2});
  servo.angle(90);
}

ここは、何がすごいかというと

インタネットにどう接続するかとか

ネットワークどう設定するかなど、一切触れていませんですよね!

一番面倒で、大変な部分はもうしなくて良いです!

obniz初期化するときに

var obniz = new Obniz(“1234-5678”);

obnizのID「1234-5678」を設定するだけで、あなたのobnizをインタネットに繋がった状態で動作するようになります!

しかも、これが、毎回obnizのバージョンアップしても

obniz本体のソフトウェアを更新するなどの作業が不要です!便利ですよね。

ソフトウェアのメンテナンスも楽になります。

まとめ

node.jsがそのまま使えるところは

ずっとAngular.jsReact.jsReactNativeなど開発してきた私にとっては

全て繋がったような気がします。

前ご紹介しました leapmotionやcylon.jsとの連携も何も違和感なくできてて

いい意味でのショックを受けました。

今まで、node.jsのエコシステムで使ってきたライブラリーもそのまま全部使えるわけですので

応用が幅がほぼ無限大ですね。

これからも、限界までobnizを遊び倒したいと思います!

余談ですが、Raspberry Piにnode.jsを入れれば、もちろんRaspberry Piからobnizを制御することもできます!

世界一簡単なRaspberryPiにnode.jsを入れる方法

ではまた!

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

[amazonjs asin=”B01NAHBSUD” locale=”JP” title=”Raspberry Pi 3 Model B V1.2 (日本製) 国内正規代理店品”]

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