アドベントカレンダー作ろうと思っていたけど気がついたら12/2になってたので、12/2の記事として投稿しちゃいます
Espruino とは
EspruinoはJavaScript
で制御することができるマイコンボードです。ArduinoのJS版 と思って頂いて問題ないです。JavaScript
が書ければハードが制御できちゃう。良い時代になったものです。
詳しくは後々の記事で述べたいと思いますが、「とりあえずJSでハード制御してみる」を実現するには最も簡単で、財布にも優しい選択肢、と言えるボードです。
LED光らせるまでの流れ
細かいセールスポイントは置いておき、とにかく最初の一歩を踏み出せるよう、購入するところからJSでLEDを光らせるところまでの流れを解説したいと思います。大丈夫です。簡単です。
- 買う
- WebIDEインストールする
- USB繋ぐ
-
LED1.write(1)
でLEDを光らせる
買う
公式サイトのbuy_nowに販売しているサイトのリンク一覧があります。
送料も場合によっては結構かかるので複数台、または一緒に遊ぶためのモジュールと一緒に購入するのが良いでしょう。
wifiを使うのであればadafruitのCC3000がおすすめです。というのも、公式でモジュール化してくれるセンサー類(後々出てきます)は大体秋葉原を彷徨うと手に入りますが、公式サイトに載っているWifiモジュールは海外でしか買えないので(現在)、ついでに購入するのには適しているかと思います。adafruitのサイトでEspruinoも購入できるので、こちらでまとめて購入するのも手かと思います。
またはBluetooth、BLE等も買っておくと良いかもしれません。
ちなみに私はseed studioから単体で購入しました。送料に積む金額によって配送期間が変わります。無料だと2週間程度、30ドル払ったら4日で届きました。
WebIDEをインストールする
WebIDEはChrome Extentionなので、chromeをインストールした状態でコチラよりextentionをインストールします。
USBを繋ぐ
EspruinoのマイクロUSB端子とPCのUSB端子をつなぎ、WebIDEを立ち上げます。
立ち上がったら左上の接続ボタンを押して、/dev/tty.usbmodem????? (?????はマシン依存)
を選択します。
こんな画面が出れば成功
LED1.write(1)
でLEDを光らせる
WebIDEの左側にプログラムを入力することで、対話形式でEspruino
に命令を送る事ができます。
下記を入力してEnterを押すと、本体についている小さく赤いLEDが点灯します※。
LED1.write(true);
おめでとうございます。とりあえず、これで特に難しい設定もなく、JavaScriptでハードを制御することができました。
1行だけの実行ではなく、複数行のプログラムを書き込んだり、外付けLEDを光らせたり、センサーの情報を読み取ったりというところは、後日の記事にご期待ください。
エラーが出る場合
エラーが出る場合は残念ながらファームウェアのアップデートが必要です。
手順
- WebIDE右上の歯車アイコンをクリック
- 設定メニューのFLUSHERを選択
- FLUSH FIRMWARE ボタンをクリック
-
Espruino
のBTN1(USBコネクタから遠い方のボタン)
を押しながら`RSTボタン(USBコネクタ寄りのボタン)'を押す - ボード上の青色のLEDがゆっくり点滅する
- WebIDEの
NEXT
をクリック -
/dev/tty.usbmodem??????/
を選択- ファームアップロードが始まり、ボード上のLEDが激しく点滅を繰り返します
- 完了後、NEXTボタンを押した後、
RSTボタン
を押す - 再び接続してLチカのコードを入力
以上です。
注意
後々に記事書きますが、EspruinoでCC3000WiFiモジュールを安定して動かすのは、webエンジニア的にはハードルがあります。電源問題への対処、Espruino上での制御の小技みたいな事が必要になるので、高い安定性が求められるシステムを作るにはおすすめできません。動かない事は無いですが。
Bluetooth等でインターネット接続のある親機的なものにセンサー信号を送り、そこからCloudに上げる方が最終的には安定するかもしれません(試行錯誤中です)
とはいえ、CC3000Wifiモジュールを使ってトイレの空き状況監視ツールを運用した事もあるので、ちゃんとケアしてやれば、この程度の用途に対してはちゃんと使えます。ポイントは接続が途切れたらリコネクト、1分に一度死活監視、、等々の仕掛けを入れて、失敗しても自分で立ち上がる , うまく言っていない事を伝える を徹底することです。後々の記事にご期待。