こんにちは、ちゃんとくです。
Node.js Advent Calendar 2018 15日目の記事です。毎度滑り込みですみません。
フロントもサーバサイドもJavaScriptな時代が来ていますが、ハードウェアもJavaScriptな時代が来ました。
Wi-Fi通信対応でAPI制御できるマイコンボード、その名も「obniz」です!!
obniz
- 名称: obniz(おぶないず)
- 価格: ¥5,980(公式サイト)
- Wi-Fi/BLE対応
- モータ直差し、過電流保護、全ピンUART対応などいろいろ優しい
SDKはPython、Ruby、モバイル系にも対応しているみたいです。
obniz公式 - obnizの仕組み
これまでのJavaScript Roboticsのツラミ
Johnny-Five(NodeBots)
PC上でNode.jsを実行し、Firmataプロトコル(PC-マイコン間通信)で通信させてArduinoを制御する方法です。
セットアップや制御はわりとサクッとやれるのですが、Firmataプロトコル通信が必要なためスタンドアロンで実行できないのがあまりお手軽じゃないなあと思っていました。(ちゃんとく所感)
JSボード
Tessel2という海外で人気のJSボードがあるのですが、技適が通っていないため日本では使えません。
※技適…日本の電波法。技適の通っていないデバイスを起動すると電波法違反。
その他にもJavaScriptに対応したマイコンボードはいくつか出ているのですが、諸々の制約やつらみがあって日本では流行っていません。(ちゃんとく所感)
obnizをサクッとNode.jsで動かしてみる
さっそくですがHello,worldしてみます。
マイコンボードのセットアップ
obnizを使い始めるために必要なことは、Wi-Fiセットアップのみです。PC使うときもスマホ使うときも一緒ですね。
obnizにはディスプレイとカーソル操作スイッチがついているので、obniz単体で設定できるのも胸アツポイントです。
ちなみにSSIDを日本語にしているので鬼のように文字化けしています。
⇨ 参考: [obniz(Node.js)で画面に日本語を表示する](https://qiita.com/hmaruyama/items/54ffe20816e275f55570)
この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
どや!
思ってたんと違うのが出ました。
ディスプレイの初期表示(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!");
}
気を取り直して!
わーい!Node.jsで秒速ハローワールドできました!
ワークショップもやってみました
先日のNodeFest 2018では、ワークショップの時間をお借りしてobnizでブラウザ制御できるラジコンカーを作ってみました。
ホスティングしたり、モバイルバッテリから給電したりすればそのまま超簡単にスタンドアロン稼働です。
普段Arduino系のハンズオンを開催しているとソフトウェアのインストールやUSBドライバ、OSの違いなど色々と苦労があるのですが、obnizではサクッとやれすぎて嫉妬しました。
アンケートも大変満足度が高かったです。この機会に皆でハードウェア!