【Intel Edison Breakout board】milkcocoaと連携する
以前Konashiの入力をmilkcocoa経由でEdisonのLEDに反映させていたが、今回はこれをPWMで行う。入力はマイクを使いマイクの音量に応じて出力側のLEDの明るさが変わるようにする。
作業環境
MacBook Air (13-inch, Mid 2012) & Mac OS 10.11
Intel Edison & Poky (Yocto Project Reference Destro) 1.7.2
参考サイト
超小型マイコンボード「Intel Edison」のセットアップ 〜 Milkcocoaと連携させる手順を初心者向けに解説します。 | Milkcocoa Engineers' Blog
このサイトを元に進めた
2015/09/29 作業日報 - konashiの入力をmilkcocoa経由でEdisonのLEDに出力
上記のサイトを元に試したテスト。この時はLEDのON/OFFのみ
1. Konashi側プログラム
HTMLとCCSも含めてhttp://jsdo.it/yuji.miyano/C2BQに保存してある。
///////////////////////////////////// // milkcocoa functions ///////////////////////////////////// //1.ミルクココアインスタンスを作成 var milkcocoa = new MilkCocoa("teaif45bh3c.mlkcca.com"); //2."message"データストアを作成 var ds = milkcocoa.dataStore("Status"); ///////////////////////////////////// // view functions ///////////////////////////////////// $(function(){ $("#button").tap(function(){ k.find(); }); }); function showFirst(){ $("#content").animate( {left: "0%"}, {duration: 500, easing: "ease-in-out"} ); } function showConnecting(){ $("#content").animate( {left: "-100%"}, {duration: 500, easing: "ease-in-out"} ); } function showMeter(){ $("#content").animate( {left: "-200%"}, {duration: 500, easing: "ease-in-out"} ); } function changeMeter(value){ $("#meter").animate( {height: (value/1.30)*100 + "%"}, {duration: 500, easing: "ease-in-out"} ); $("#aionum").html(value); //5."message"データストアにメッセージをプッシュする ds.push({ content: value, date: new Date().getTime() }); } ///////////////////////////////////// // konashi functions ///////////////////////////////////// var intervalId;k.ready(function(){ showMeter(); k.pwmMode(k.PIO0, k.KONASHI_PWM_ENABLE_LED_MODE); //Interval intervalId = window.setInterval(function(){ k.analogReadRequest(k.AIO0); }, 200); }); k.on(k.KONASHI_EVENT_CONNECTED, function(){ showConnecting(); }); k.updateAnalogValueAio0(function(data){ // AIO0のアナログ値が取得できたら実行されます changeMeter(data/1000); k.pwmLedDrive(k.PIO0, (data/1300)*100.0); }); k.disconnected(function(data){ window.clearInterval(intervalId); showFirst(); });
2. Edison側プログラム
// milkcocoa var MilkCocoa = require('milkcocoa'); var milkcocoa = new MilkCocoa('teaif45bh3c.mlkcca.com'); var ds = milkcocoa.dataStore("Status"); var mraa = require('mraa'); //require mraa //Initialize PWM on Digital Pin #1 (D1) and enable the pwm pin var pwm1 = new mraa.Pwm(14); pwm1.enable(true); //set the period in microseconds. pwm1.period_us(2000); ds.on('push',function(data){ pwm1.write(data.value.content); //Write duty cycle value. console.log(data.value.content); });
3. 結果
マイクに息を吹きかけると、Konashi側のLEDが光り、iPhoneのkonashi.jsでも電圧値が上昇する。少しタイムラグがあるがEdison側のLEDも同じように光りターミナルにも値が表示されている。














