LoginSignup
14
14

More than 5 years have passed since last update.

WebブラウザでArduinoをLチカする

Last updated at Posted at 2015-12-03

HTML5 Advent Calendar 2015 12月4日のエントリーです。同時に takoratta さんがIncrementsさんにJoinされた記念に Qiita に初投稿することにしました。
内容は 「Node.js は使わずに JavaScript で簡単に Arduino を動かす」というものです

Arduinoって何?

「ハードウェアの回路作るのって難しいじゃん。だからプログラムでいろいろ制御しちゃっおうよ」ってノリのワンボード・マイコンです。

最近話題になったRaspberry Piの小さいのと同じようなやつです。

「Lチカ」という儀式をする

まずこういうワンボード・マイコン買ったらしますよね「Lチカ(LEDを光らせる)」。そして満足して初期不良でないことを確認して箱に戻す、みたいな、、、。僕がまさにこのパターンで、初期不良がないことを確認してから1年以上放置して大事に保管していました。ここでWebディベロッパの僕が感じたのは「専用言語覚える必要があるし、しかもCみたいなやつか・・・。僕、知らないよ・・・」というところでした。

JavaScriptで何とかならないの?

ググると例えば Jonny-Five とかあるんです。でも、大抵は Node.js 必須で、準備が必要なんですよ。そこでもっと簡単にしたく思って以下のことを目指しました。

目指した所

1) 誰でも簡単に使えるようにしたい
2) 学習コストの低くしたい
3) 公開も簡単にしたい

どういうのができたか

こんなのができました。動画です▼クリックすると飛びます。
Screen Shot 2015-12-04 at 1.04.36 AM.png

ブラウザの画面には3x4の光るボタンが設置されていて、手前のビュレッドボードには2x4のLEDが並んでいます(LED不足の為、ブラウザ上の上から2段をビュレッドボードに再現しています)。ブラウザ側で任意のLEDを「On」にして「Lチカ」ボタンを押すとビュレッドボード上の同じ場所のLEDが光っています。

仕組み

Arduino側は Moco for LUFA というファームウェアでMIDI機器になっていて、Arduino側には汎用のプログラムが転送してあります。ArduinoとブラウザとはWeb MIDI APIを使ったMIDIのプロトコルで通信しています。
Web MIDI API を使っていますが、ユーザーがMIDIを勉強する必要がないよう、この辺りは Polymer(Web Components) のエレメントにしてしまっているので実際はタグです。この Polymerのエレメントを Web-Arduino とい名付けました。
さて、この Web-Arduino 何がいいのでしょう?これのよいところは、ロジックも設定もすべてがJavaScriptで記述できて、Arduinoを接続してURLからアプリケーションをロードするだけですぐに動かせるところです。

ちなみに、動画のアプリケーションはこちらです。(Web MIDI API が実装されているのが現在は Google Chrome だけなのでそれにちなんで Blink with Blink という名前にしました。)

技術詳細

長くなるのでチュートリアルにリンクしますね。期待させておいて最後は超雑ですみません><
そして、今週の日曜日(12月6日)にGoogle HackFair Tokyo というイベントがります。そこで展示もしますので、気になる方はぜひどうぞ〜。

おわりに

技術的にはPolymerとか使ってるんですけど、でもやっぱり「Lチカ」なのか、、、というオチでしたw

14
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
14