JS Board で IoT は楽勝か?
福井 眞吾
JS Board Shibuya 2015-12-14
自己紹介
❖ 福井 眞吾(ふくい しんご) @SilkAndTiki
❖ コンピュータ&通信機器メーカー勤務
❖ プログラミング言語の研究
❖ Javaでシステム開発
❖ 予算管理
❖ 週休3日を利用してプログラミングの世界に復帰中
JSBoard: JavaScritpを直接実行できる!
KinomaCreate Tessel
http://www.kinoma.com https://tessel.io
Tessel2発売延期  orz
出荷予定: 夏 → 秋 → 1月にはなんとか
今ここ
今ここ
言い訳
KinomaCreateを買いました
JS Board Shibuya #2 のスライドから
http://www.slideshare.net/fukuis/js-board-shibuya-2-lt-kinoma-create
JSでIoTするには
Pure
JavaScript
IOピン操作
API
UI操作
API
拡張
ライブラリ require(⚪⚪)
JavaScriptで標準化されていない部分の知識が必要
例題を書いてみる
アナログ入力 棒グラフ表示 freeboard表示
独自イベントモデル
Kinoma Createの場合
Pins.configure(
{
Power: {pin: 53, type: 'Power', voltage: 3.3},
Ground: {pin: 51, type: 'Ground'},
Potentiometer: { pin: 52, type: 'Analog', direction: 'input' }
},
function(success) {
Pins.repeat('/Potentiometer/read', 1500, senddata);
});
function senddata(result) {
var url = 'http://dweet.io/dweet/for/magicpocket?a=' + Math.round(result*100);
application.invoke(new Message(url));
Rectangle1.width = (320 * result);
}}
Screen1 = new Container({ left: 0, right: 0, …
behavior: Behavior({
onCreate: function(container){
Rectangle1 = new Content({ width: 320,…
container.add(Rectangle1);}})});
function senddata(result) {
…
Rectangle1.width = (320 * result);
}}
Tesselの場合
node.js
var tessel = require('tessel');
var gpio = tessel.port.GPIO;
var pin = gpio.analog[0];
setInterval(function() {
senddata(pin.read());
}, 1500);
var http = require('http');
function senddata(result) {
var url = 'http://dweet.io/dweet/for/magicpocket?a=' + Math.round(result*100);
var req = http.get(url, function(res) {});
}
             
(GUIはなし)
JS Boardで楽勝か?
Pure
JavaScript
IOピン操作
API
UI操作
API
拡張
• Pure JavaScript以外の部分が多い
• 仕様は各社独自。使い易さもいろいろ
• 混沌の時代だからいろいろ触って好きな機種を応援
混沌の時代の次はどうなる?
マニア向けボード多数
歴史が教えてくれること
一般向け完成品少数 寡占化
TK-80 他
PC-8001
MZ-80
?

JS Board で IoT は楽勝か?