モノとつないでwebを楽しくしよう

40
モノ とつないで Webを楽しくしよう 2015.1.25 @tadfmac HTML5 Conference 2015 フォント「るりいろフォント」:Copyright るりさん 配布元 http://sapphirecrown.xxxxxxxx.jp/ruriiro.html 15125日日曜日

Upload: tadfmac

Post on 20-Jul-2015

1.392 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: モノとつないでWebを楽しくしよう

モノとつないでWebを楽しくしよう

2015.1.25 @tadfmac

HTML5 Conference 2015

フォント「るりいろフォント」:Copyright るりさん 配布元 http://sapphirecrown.xxxxxxxx.jp/ruriiro.html

15年1月25日日曜日

Page 2: モノとつないでWebを楽しくしよう

自己紹介

@tadfmac   http://soundcloud.com/tadfmac

http://qiita.com/tadfmac

雑な人です。

H.Kodama (a.k.a. D.F.Mac. @TripArts Music)

普段は通信系会社員。実験音楽や実験工作で遊んでます。

15年1月25日日曜日

Page 3: モノとつないでWebを楽しくしよう

このコーナーのターゲット

雑な人15年1月25日日曜日

Page 4: モノとつないでWebを楽しくしよう

モノとつないでWebを楽しくしよう

2015.1.25 @tadfmac

HTML5 Conference 2015

フォント「るりいろフォント」:Copyright るりさん 配布元 http://sapphirecrown.xxxxxxxx.jp/ruriiro.html

15年1月25日日曜日

Page 5: モノとつないでWebを楽しくしよう

雑な人のためのWoT

2015.1.25 @tadfmac

HTML5 Conference 2015

フォント「るりいろフォント」:Copyright るりさん 配布元 http://sapphirecrown.xxxxxxxx.jp/ruriiro.html

15年1月25日日曜日

Page 6: モノとつないでWebを楽しくしよう

雑な人のモチベーション

てきとうに、簡単に、そのへんにあるモノを何でもWebに繋いで、

Web Of Things!やってるぞ感を出したい。

15年1月25日日曜日

Page 7: モノとつないでWebを楽しくしよう

そんな人のためのソリューション

15年1月25日日曜日

Page 8: モノとつないでWebを楽しくしよう

直結とブラウザを

そんな人のためのソリューション

そのへんにあるモノ

15年1月25日日曜日

Page 9: モノとつないでWebを楽しくしよう

そのへんにあるモノ

15年1月25日日曜日

Page 10: モノとつないでWebを楽しくしよう

たとえば缶

そのへんにあるモノ

15年1月25日日曜日

Page 11: モノとつないでWebを楽しくしよう

たたくと

画面かわる

直結

15年1月25日日曜日

Page 12: モノとつないでWebを楽しくしよう

なまもの

そのへんにあるモノ

15年1月25日日曜日

Page 13: モノとつないでWebを楽しくしよう

さわると

画面かわる

爆音なるw

なまもの

直結

15年1月25日日曜日

Page 14: モノとつないでWebを楽しくしよう

ちーん必ずそのへんにある

15年1月25日日曜日

Page 15: モノとつないでWebを楽しくしよう

こっちでちーんすると

あっちでちーん

ちーん

本日実物を展示中!!

直結 直結

15年1月25日日曜日

Page 16: モノとつないでWebを楽しくしよう

直結の方法

15年1月25日日曜日

Page 17: モノとつないでWebを楽しくしよう

そのまんまじゃつながらない

いろいろな

モノ Web ×

15年1月25日日曜日

Page 18: モノとつないでWebを楽しくしよう

仕方ないのでArduinoを使ってデバイス化。

いろいろな

モノ Web 15年1月25日日曜日

Page 19: モノとつないでWebを楽しくしよう

直結できるデバイス①キーボード

(HIDデバイス)②MIDIデバイス

入出力 入力のみ 入出力

送れる情報 少ない 多い

難易度 かんたん ちょっと面倒

△ ○

△ ○

△○

ブラウザ すべて対応○ まだ  だけ△

接続先 限定できない 限定できる○△(どんなアプリも受け取っちゃう)

15年1月25日日曜日

Page 20: モノとつないでWebを楽しくしよう

①キーボード

15年1月25日日曜日

Page 21: モノとつないでWebを楽しくしよう

Web

モノ

USBケーブル

KeyEvent

キーボード

15年1月25日日曜日

Page 22: モノとつないでWebを楽しくしよう

Web

モノ

USBケーブル

KeyEvent

Arduino Micro

Arduino Leonardo

キーボード

15年1月25日日曜日

Page 23: モノとつないでWebを楽しくしよう

Web

モノ

USBケーブル

KeyEvent

タッチセンサー マイク、ピエゾなど

アナログ入力

キーボード

15年1月25日日曜日

Page 24: モノとつないでWebを楽しくしよう

Web

モノ

USBケーブル

KeyEvent

センサー信号

キーイベントに変換

アナログ入力

キーボード

15年1月25日日曜日

Page 25: モノとつないでWebを楽しくしよう

キーボードのサンプルはコチラ。

void setup() { Keyboard.begin();}void loop() { Keyboard.press('a'); delay(100); Keyboard.release('a'); delay(1000);}

スケッチ

15年1月25日日曜日

Page 26: モノとつないでWebを楽しくしよう

キーボードWeb

モノセンサー

USBケーブル

KeyEvent

$(document).keydown(function(ev){...});

アナログ入力

15年1月25日日曜日

Page 27: モノとつないでWebを楽しくしよう

MIDIデバイス

15年1月25日日曜日

Page 28: モノとつないでWebを楽しくしよう

Web

モノ

USBケーブル

Web MIDI API

MIDIデバイス

準備

Arduino UNO Rev.3

15年1月25日日曜日

Page 29: モノとつないでWebを楽しくしよう

ArduinoにUSB-MIDI機能を追加するファームを書き込む。

もあ(@morecat_lab)さん作(moco fo LUFA)http://morecatlab.akiba.coocan.jp/lab/index.php/aruino/midi-firmware-for-arduino-uno-moco/

準備

15年1月25日日曜日

Page 30: モノとつないでWebを楽しくしよう

詳細は、SlideShareで!

http://www.slideshare.net/tadfmac/arduinomidi

準備

15年1月25日日曜日

Page 31: モノとつないでWebを楽しくしよう

Arduino MIDI Libraryを追加

http://playground.arduino.cc/Main/MIDILibrary

準備Arduino IDE

15年1月25日日曜日

Page 32: モノとつないでWebを楽しくしよう

Web

モノ

USBケーブル

Web MIDI API

MIDIデバイス

準備が終わったら、スケッチを書こう!

15年1月25日日曜日

Page 33: モノとつないでWebを楽しくしよう

MIDIデバイスのサンプルはコチラ。

#include <MIDI.h>void setup() { MIDI.begin(4);}void loop() { int val = analogRead(A0); if (val > 512) { MIDI.sendNoteOn(42,127,1); } delay(500);}

スケッチ

15年1月25日日曜日

Page 34: モノとつないでWebを楽しくしよう

Web

モノ

USBケーブル

Web MIDI API

MIDIデバイス

Web MIDI APIWebアプリ側では

を使う!

15年1月25日日曜日

Page 35: モノとつないでWebを楽しくしよう

の準備

Web MIDI API

Chrome://flags で「MIDI」で検索。→有効にするその後、「デバイス」を繋いでからブラウザを再起動!

こうなってれば有効になってる。

15年1月25日日曜日

Page 36: モノとつないでWebを楽しくしよう

初期化

Web MIDI API

navigator.requestMIDIAccess().then(onMIDISuccess,onMIDIFailure);var midi = null;var inputs = [];var outputs = [];

function onMIDISuccess(m){ midi = m; var it = midi.inputs.values(); for(var o = it.next(); !o.done; o = it.next()){ inputs.push(o.value); } var ot = midi.outputs.values(); for(var o = ot.next(); !o.done; o = ot.next()){ outputs.push(o.value); }

for(var cnt=0;cnt < inputs.length;cnt++){ inputs[cnt].onmidimessage = onMIDIEvent; }}

15年1月25日日曜日

Page 37: モノとつないでWebを楽しくしよう

エラー処理と、MIDI受信

Web MIDI API

function onMIDIFailure(msg){ console.log("onMIDIFailure()呼ばれただと?:"+msg);}

function onMIDIEvent(e){ if(e.data[0] == 0x90){ // ch.1にNoteON受信 // なにかをうけとったときの処理 }}

MIDI送信function sendMIDINoteOn(note){ if(outputs.length > 0){ outputs[0].send([0x90,note,0x7f]); }}

15年1月25日日曜日

Page 38: モノとつないでWebを楽しくしよう

Web MIDI APIのつづきは河合さんのセッションで!

「みでゃっぴー」by @g200kgさん

15年1月25日日曜日

Page 39: モノとつないでWebを楽しくしよう

雑な人でも直結なら行ける!

まとめ

15年1月25日日曜日

Page 40: モノとつないでWebを楽しくしよう

http://soundcloud.com/tadfmac

ありがとうございました

15年1月25日日曜日