Node.js
robotics
obniz
Node.jsDay 15

ついにNode.jsでサクッとハードウェアをやれる時代が来た!「obniz」でJavaScript Robotics

こんにちは、ちゃんとくです。

Node.js Advent Calendar 2018 15日目の記事です。毎度滑り込みですみません。

フロントもサーバサイドもJavaScriptな時代が来ていますが、ハードウェアもJavaScriptな時代が来ました。

Wi-Fi通信対応でAPI制御できるマイコンボード、その名も「obniz」です!!


obniz

Image from Gyazo


  • 名称: obniz(おぶないず)

  • 価格: ¥5,980(公式サイト)

  • Wi-Fi/BLE対応

  • モータ直差し、過電流保護、全ピンUART対応などいろいろ優しい

SDKはPython、Ruby、モバイル系にも対応しているみたいです。

Image from Gyazo

obniz公式 - obnizの仕組み


これまでのJavaScript Roboticsのツラミ


Johnny-Five(NodeBots)

Image from Gyazo

PC上でNode.jsを実行し、Firmataプロトコル(PC-マイコン間通信)で通信させてArduinoを制御する方法です。

セットアップや制御はわりとサクッとやれるのですが、Firmataプロトコル通信が必要なためスタンドアロンで実行できないのがあまりお手軽じゃないなあと思っていました。(ちゃんとく所感)


JSボード

Image from Gyazo

Tessel2という海外で人気のJSボードがあるのですが、技適が通っていないため日本では使えません

※技適…日本の電波法。技適の通っていないデバイスを起動すると電波法違反。

その他にもJavaScriptに対応したマイコンボードはいくつか出ているのですが、諸々の制約やつらみがあって日本では流行っていません。(ちゃんとく所感)


obnizをサクッとNode.jsで動かしてみる

さっそくですがHello,worldしてみます。


マイコンボードのセットアップ

obnizを使い始めるために必要なことは、Wi-Fiセットアップのみです。PC使うときもスマホ使うときも一緒ですね。

Image from Gyazo

obnizにはディスプレイとカーソル操作スイッチがついているので、obniz単体で設定できるのも胸アツポイントです。

ちなみにSSIDを日本語にしているので鬼のように文字化けしています。

⇨ 参考: obniz(Node.js)で画面に日本語を表示する

設定すると8桁の識別IDが表示されます。

Image from Gyazo

このIDで、どこからでもなんの言語でも、いつでもどこでもHello,worldです。(適当)


obnizモジュールの導入

Node.jsの操作に慣れている前提で進みます。適当なディレクトリを作成しておきましょう。

まずはみんな大好きnpmでobnizモジュールをサクッとインストール。

$ npm init -y

$ npm i obniz


Node.jsでプログラム&実行

サクサクプログラムします。(公式ドキュメント(左タブ)

'use strict';

const Obniz = require("obniz");

const obniz = new Obniz("XXXX-XXXX"); // 8桁のID
obniz.onconnect = function() {
obniz.display.print("Hello, world!");
}

そして実行するだけ!

$ node app.js

どや!

Image from Gyazo

思ってたんと違うのが出ました。

ディスプレイの初期表示(QR、IDなど)を消すにはdisplay.clear()の宣言が必要みたいです。

'use strict';

const Obniz = require("obniz");

const obniz = new Obniz("XXXX-XXXX"); // 8桁のID
obniz.onconnect = function() {
obniz.display.clear();
obniz.display.print("Hello, world!");
}

気を取り直して!

Image from Gyazo

わーい!Node.jsで秒速ハローワールドできました!


ワークショップもやってみました

先日のNodeFest 2018では、ワークショップの時間をお借りしてobnizでブラウザ制御できるラジコンカーを作ってみました。

Image from Gyazo

Image from Gyazo

Image from Gyazo

ホスティングしたり、モバイルバッテリから給電したりすればそのまま超簡単にスタンドアロン稼働です。

普段Arduino系のハンズオンを開催しているとソフトウェアのインストールやUSBドライバ、OSの違いなど色々と苦労があるのですが、obnizではサクッとやれすぎて嫉妬しました

アンケートも大変満足度が高かったです。この機会に皆でハードウェア!