2014年7月17日木曜日

サンプルを動かす際の注意など

mbedJSを動かす際の注意点など
・IPアドレスは10.0.0.2に設定しています。各自空きIPに変更してください
・sourceforgeを観に行くのでインターネット接続は必須です
・動作確認はmac(mavericks)とwindows8の両方で実施しています
・スクリプトはPC上に配置して実行しています
・ブラウザはFirefoxです

他、いろいろ
・macではCallbackを使ったほうが良いです。Generatorはエラーが出ないのに動かない等正常に動かないことが多いです。また、ブラウザはFireFoxで。Chromeはスクリプトが動かない場合があります。

2014年7月16日水曜日

温度計LM75BDのサンプル

温度計のLM75BDとI2Cを使って通信するスクリプトです。
LM75BDのSCLをp27、SDAをp28に接続してください。
 mbed application boardを使用している人はそのまま起動できます。

 <!DOCTYPE html>  
 <html><head>  
 <meta charset="UTF-8">  
 <script src="http://mimic.sourceforge.jp/jsapi/mbedJS.all.js"></script>  
 <script type="text/javascript">  
 function Sleep(ms) {  
   var d1 = new Date().getTime();  
   var d2 = new Date().getTime();  
   while( d2 < (d1 + ms) ) {  
     d2 = new Date().getTime();  
   }  
   return;  
 }  
 // i2c temperture sensor   
 function start()  
 {  
      var addr = 0x90;  
      var step = 0;  
      var mcu=new mbedJS.Mcu("10.0.0.2",  
      {  
           onNew:function()  
           {  
                var i2c = new mbedJS.I2C(mcu,[mbedJS.PinName.p28 , mbedJS.PinName.p27],  
                {  
                     onNew:function()  
                     {  
                          i2c.frequency(1000);  
                     },  
                     onFrequency:function()  
                     {  
                          i2c.start();  
                     },  
                     onStart:function()  
                     {  
                          i2c.write(addr,[0x01 , 0x00],false);  
                     },  
                     onWrite:function()  
                     {  
                          switch(step){  
                               case 0:  
                               step++;  
                               Sleep(500);  
                               i2c.write(addr,[0x00],false);  
                               break;  
                               case 1:  
                               step++;  
                               i2c.read(addr , 2 , false);  
                               break;  
                               default:  
                               i2c.stop();  
                          }  
                     },  
                     onRead:function(v)  
                     {  
                          /*document.write(v+"<br>\n");*/  
                          /*document.write(v.data+"<br>\n");*/  
                          document.write(( (v.data[0]<<8)|v.data[1]) / 256.0);  
                     }  
                });  
           }  
      });  
 }  
 </script>  
 </head>  
 <h1 id="title">temperture LM75BD</h1>  
 <body onload="start()">  
 </body>  
 </html>  

2014年7月14日月曜日

AnalogInサンプル

ソースコードをきれいに表示するスクリプトを使ってみました。
今回はAnalogInを使ってサンプリングした値をフォームに表示するようにしました。

使用したピンはp19,p20で、mbed application boardではボリュームが搭載されています。mbedJSのアドレスは10.0.0.2に設定しました。



 <!DOCTYPE html>  
 <html><head>  
 <meta charset="UTF-8">  
 <script src="http://mimic.sourceforge.jp/jsapi/mbedJS.all.js"></script>  
 <script type="text/javascript">  
 function start()  
 {  
      var mcu=new mbedJS.Mcu("10.0.0.2",  
      {  
           onNew:function()  
           {  
                var ai1 = new mbedJS.AnalogIn(mcu,mbedJS.PinName.p19,  
                {  
                     onNew:function()  
                     {  
                          ai1.read();  
                     },  
                     onRead:function(v)  
                     {  
                          document.test.testinput1.value = v;  
                          ai1.read();  
                     }  
                });  
                var ai2 = new mbedJS.AnalogIn(mcu,mbedJS.PinName.p20,  
                {  
                     onNew:function()  
                     {  
                          ai2.read();  
                     },  
                     onRead:function(v)  
                     {  
                          document.test.testinput2.value = v;  
                          ai2.read();  
                     }  
                });  
           },  
           onError:function(){alert("Error!");}  
      });  
 }  
 </script>  
 </head>  
 <h1 id="title">AnalogIn sample</h1>  
 <body onload="start()">  
      <form name="test">  
           <input type="text" size ="28" name="testinput1">  
           <input type="text" size ="28" name="testinput2">  
      </form>  
 </body>  
 </html>  

BusIn/BusOutのサンプル

BusIn / BusOutのサンプル

今回からmbed Application boardを利用して行きます。
今回使用するのはmbed本体のLED4個とApplication boardのジョイスティックです。
LEDをBusOut、ジョイスティックはBusInに設定して、ジョイスティックの方向に合わせてLEDが点滅するスクリプトです

 <!DOCTYPE html>  
 <html><head>  
 <meta charset="UTF-8">  
 <script src="http://mimic.sourceforge.jp/jsapi/mbedJS.all.js"></script>  
 <script type="text/javascript">  
 function start()  
 {  
  var mcu=new mbedJS.Mcu("10.0.0.2",{  
   onNew:function(){  
           var v=1;  
           var bo = new mbedJS.BusOut  
                (mcu,[mbedJS.PinName.LED1,mbedJS.PinName.LED2,  
                     mbedJS.PinName.LED3,mbedJS.PinName.LED4],   {  
     onNew:function()  
     {  
      bo.write(0);  
     },  
     onWrite:function()  
     {  
                bi.read();  
     }  
           }  
           );  
           var bi = new mbedJS.BusIn  
                (mcu,[mbedJS.PinName.p12,mbedJS.PinName.p13,  
                     mbedJS.PinName.p15,mbedJS.PinName.p16],  
           {  
                onNew:function()  
                {  
                     bi.read();  
                },  
                onRead:function(v)  
                {  
                     bo.write(v);  
                }  
           });  
   },  
   onError:function(){alert("Error!");}  
   }  
   );  
 }  
 </script>  
 </head>  
 <h1 id="title">Digital In/Out</h1>  
 <body onload="start()">  
 </body>  
 </html>  

2014年7月8日火曜日

MimicーDigitalOutのサンプル

DigitalOutのサンプル。0.1秒毎にLED1を点滅させる

function start()
{
  var mcu=new mbedJS.Mcu(location.host,{
    onNew:function(){
      var v=1;
      var pin=new mbedJS.DigitalOut(mcu,mbedJS.PinName.LED1,
      {
        onNew:function()
        {
          pin.write(1);
        },
        onWrite:function()
        {
           setTimeout(function()
           {
             pin.write((v++)%2);
           },100);
        }
      }
      );
    },
    onError:function(){alert("Error!");}
    }
    );
}

2014年3月20日木曜日

イチから始めるビットコイン採掘(7)ビットコインを取り出す

前回までにビットコインがプールに貯まっている状態になったと思います。
このコインをPCにあるウォレットに移動します。移動した後はコインを使った他人との取引が可能になります。

最初にウォレットのアドレスを取得します。ウォレットソフトを開いてください。

”Receive coins"をクリックするとウォレットのアドレスが表示されます。
”(no label)”をクリックしてから”copy address"ボタンをクリックしてください。
これでクリップボードにウォレットのアドレスがコピーされます。

続いてプールの方での作業になります。
プールにログインして、”Edit Account”を選んでください。

ACCOUNT DETAILSのPAYMENT ADDRESSが空欄になっているはずです。ここでウォレットのアドレスをペーストします。
そして4 DIGIT PINにPINの4ケタの数字を入力し、Update Accountをクリックしてください。すると、画面右側のCASH OUTにあるPAYOUT TOの項目にもウォレットのアドレスが表示されます。

次にCASH OUTにあるPINを入力し、”Cash Out”ボタンを押します。

ここまで終わったらウォレットソフトに戻ってコインの入金を待ちます。30分ほどでウォレットに入金されます。


イチから始めるビットコイン採掘(6)採掘状態とコインの確認

前回、採掘ソフトを起動するところまで終わりました。
今回は採掘状態とコインの枚数を確認します。

最初にプールにログインします。
続いて、MY ACCOUNTのDashboardをクリックしてください。


上側のOVERVIEWには現在のハッシュレートが表示されます。ここの値が0以外なら正常に採掘中です。
右下のACCOUNT INFOMATIONには現在までに採掘したコインの枚数が表示されます。
採掘直後のコインはUnconfirmedに表示され、時間が経つとConfirmedに移っていきます。
プールから取り出すことのできるコインはConfirmedに載っているコインになります。