Cylon.jsで遊んでみた

Cylon.jsとは

Cylon.jsとはjavascriptから様々なハードウェアデバイスをコントロールすることができるようになるフレームワークです。現在は、35種類のプラットフォームに対応しています。

cylonjs
<このモノアイのキャラクタがたまらない>

対応プラットフォーム

ARDrone
Arduino
Arduino YUN
Audio
Beaglebone Black
BLE
Crazyflie
Digispark
Imp
Intel Galileo
Intel Edison
Intel IoT Analytics
Joystick
Keyboard
Leap Motion
M2X
MiP
MQTT
Nest
Neurosky
Ollie
OpenCV
Pebble
Philips Hue
Pinoccio
PowerUp
Rapiro
Raspberry Pi
Salesforce
Skynet
Spark
Speech
Sphero
Tessel
WICED Sense

ArduinoやRaspberry Pi, Leap Motionといったフィジカルコンピューティングやインタラクティブシステムで良く見るようなものから、OpenCVといったSoftware、セールスフォースなどのクラウドサービスにも対応しています。ここにRapiroが入っているあたり、Rapiroさんさすがです。

事始め

環境構築

では、MaxBookProとCylon.js、Arduinoで遊んでみます。今回は、Arduino Advent Calender 2014のCylon.js on Arduinoの記事を参考にしました。まずは、cylonのnpmモジュールをインストールします。

gortというコマンドが必要となるので、実行環境にふさわしいデータをダウンロードし、実行可能なパスに配置します。ArduinoをUSB経由で接続後、まずはこのgortコマンドを使って、シリアルポートのスキャンを行います。(結果は実行環境によって異なります。)ここで、/dev/cu.*と/dev/tty.*はどちらでも良いみたいです。

ちなみにこの後、公式ではgort firmata installを実行すると書いてあるが、実際にこれを実行するとNo help topic for ‘firmata’と出てなにも起きないです…(´・ω・`)。どうやらCylon.jsのサイトのDocument作成時よりも、gortのバージョンがアップデートしているらしく下記を実行すればOKでした。

プログラム作成

Arduinoを操作するためのソースコードを作成します。7行目のポート名は、先ほどgortスキャン結果のポート名を記載します。また、今回のプログラムでは、12行目で指定しているように13ピンを使用します。そのため、アノードが13ピン、カソードがGNDになるようにLEDを挿します。

実行

最後にターミナルから上記のプログラムを実行します。

これで完了です。実際に、Arduinoに接続さたLEDがブリンクすることが確認できます。

ターミナルをCtr+Cで中断すると、点滅も終わります。