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に載っているコインになります。


イチから始めるビットコイン採掘(5.2)CPUで採掘する場合

前回はGPU採掘で一般的なRADEONを搭載したPCでの採掘方法を説明しました。

今回はCPUを使用した採掘方法を説明します。


http://sourceforge.net/projects/cpuminer/files/pooler-cpuminer-2.3.3-win32.zip
http://sourceforge.net/projects/cpuminer/files/pooler-cpuminer-2.3.3-win64.zip

OSに合わせてバイナリをダウンロードします。
ダウンロードが終わったら適当なフォルダに展開してください。

前回同様、バッチファイルを作成します。
テキストファイルに以下のように書き込んでください。
minerd --url=stratum+tcp://dnotespool.com:8333 --userpass=hara41.worker1:pass1

--userpassの”hara41”は各自のユーザーIDに書き換えてください。
作成したバッチファイルをダブルクリックすると採掘が始まります。


イチから始めるビットコイン採掘(5.1)ー採掘ソフトの設定

前回までにワーカーの準備が出来ましたのでこれを使っていきます。
その前に採掘ソフトをダウンロードします。
使用するソフトはcgminer-3.7.2になります。バージョンが新しいと採掘ができないので
このバージョンを使います。

ダウンロードする場所は http://johnsesl.com/software/ からダウンロードできるようです。
バイナリをダウンロードしたら展開してください。

続いてバッチファイルを作ります。
バイナリを展開したフォルダに新規作成でテキストドキュメントを作成してください。
新規作成したファイルを編集します。

ファイルには以下のように書き込んでください。
 cgminer --scrypt -o stratum+tcp://dnotespool.com:8333 -u hara41.worker1 -p pass1

ここで-oに続くURLはプールの”Getting Started"に書いてある内容を書き込みます。
 -u に続くhara41は各自のユーザーID、.worker1にはワーカーIDを入れます。
 -p にはワーカーIDのパスワードを入力します。

ファイルを保存して、ファイル名を変更します。”新しいテキスト ドキュメント.txt"から”start.bat”へ書き換えてください。

start.batをダブルクリックしてDOS窓が開いたら成功です。


2014年3月19日水曜日

イチから始めるビットコイン採掘(4)ーワーカーの登録

前回に続いてプールでの作業になります。
今回はプールで採掘するための設定を行っていきます。

まずプールにログインします

採掘の準備をする前にプールで採掘が行われているか確認しましょう。
STATISTICSのPoolをクリックします
プールの情報が左側に表示されます。この中でCurrent Difficultyが採掘難易度になります。個々の数値が小さいプールほど時間あたりのコイン採掘量が多くなります。

複数プールがある場合でも大体同じ採掘難易度になります。
また、あまりに大きい場合(数百〜それ以上)なかなかコインが採掘できないので別のコインを選びましょう。

次にワーカーを登録します。ワーカーとはプールで採掘する際のユーザーIDのようなものです。
左側のメニューから”My Worker"を選びます。
ADD NEW WORKERに入力していきます。
WORKER NAMEには好きな名前を入力できます。ここでは"worker1"とします。
WORKER PASSWORDはパスワードです。ここでは”pass1"とします。
入力が終わったら”Add New Worker”を押してください。右側に追加したワーカーが表示されます。


イチから始めるビットコイン採掘(3)ープールへの登録

連載(1)ではウォレットソフトのリンクとプールへのリンクの2つを紹介しました。
今回はプールでの操作について説明します。

連載(1)で探したプールへのリンクを開きます
https://dnotespool.com/
まず、プールへユーザー登録を行います。”Register"をクリックしてください。以下の様な入力画面が出ます。
USERNAME
自分の好きな名前を入力してください。採掘の時に使用するのでなるべく短いものが良いです。

PASSWORD・REPEAT PASSWORD
パスワードを入力してください。

EMAIL・EMAIL REPEAT
Eメールアドレスを入力してください。

PIN
4桁の数字のパスワードを入力してください。

TERMS AND CONDITIONS
(リンク先の文章を読んだ上で)xマークをクリックしてチェックマークにしてください。

ここまで入力が終わったらRegisterボタンを押します。

登録が完了したら”Login"ボタンを押してログインが出来るようになります。登録確認のメール等は来ないことが多いので、登録後すぐにログインできます。

2014年3月18日火曜日

イチから始めるビットコイン採掘(2)ーウォレットの準備

前回、”○○Information"のスレッドから、ウォレットのクライアントソフトとプールのリンクを得るところまで進みました。

今回はウォレットのクライアントソフトをインストールします。

まずウォレットのZIPファイルをダウンロードします。
ZIPファイルを展開して、exeファイル(ここではdnotes-qt.exe)を起動します。
上記のような警告が出ますが”実行”をクリックして実行してください。

さらにファイアウォールの警告も出ます。こちらもそのまま”アクセスを許可する”をクリックしてください

exeファイルを起動すると以下の様なウィンドウが表示されます。ウィンドウ下部に”Synchronizing with network..."と表示が出て、プログレスバーが進んでいれば起動は成功です。
しばらく待っているとプログレスバーが消え、右下にチェックマークが出ます。
チェックマークが出たらウォレットに入出金が可能な状態になります。


イチから始めるビットコイン採掘(1)ー採掘するコインを決める

ビットコインの採掘が順調に進んでいるのですが、イチから採掘までの方法を説明した記事を見かけないなと思ったので自分で書いてみました。

この連載ではWindows7を搭載したPC1台でビットコイン採掘をして、交換所でビットコインを別のコインに交換するところまでを扱います。

採掘するコインを決める

CryptCoinTalk からコインを探していきます。

今回はビットコイン採掘と交換所での交換までを行うため、Dnotesコインを選びました。
Dnotesコインのリンクを開くと複数のスレッドがありますが、最初に読むスレッドは"○○Information”というスレッドです。
このスレッドの中にはコインを扱う上で必要な情報が列挙してあります。
この中で今必要な情報は”DOWNLOADS"と”POOLS"に書いてあります。
”DOWNLOADS"にはウォレットのクライアントソフト、”POOLS"には採掘する際に使うプールのサイトへのリンクがあります。



2014年1月17日金曜日

RADEONはどれがいいのか for ビットコイン採掘

ビットコインを採掘するにあたって、まず手に入れなくてはいけないGPU。
採掘に向いているのはAMDのGPUなわけですが、どんなのを買えばよいの?と考える人のためにハッシュレートあたりの購入コストと消費電力を計算してみました。

ハッシュレートあたりの導入コストで優秀なのはR7 260X、次点がR9 290Xでした。割りといいトップグレードGPU。

長時間のビットコイン採掘で効いてくる消費電力ではR9 280X、次点がR9 290X。
逆に悪いのはR7 260X。3割近い差が出ているので大きいです。

とにかくビットコインを試しに掘ってみたい人には
MSI R7 260X 2GD5 OC グラフィックスボード Radeon R7 260X 2GB 日本正規代理店品 VD5171 R7 260X 2GD5 OC

1日中PCを動かして採掘する人にはR9 280Xが良いと思います。
MSI R9 280X Twin Frozr 4S OC グラフィックスボード Radeon R9 280X 3GB 日本正規代理店品 VD5168 R9 280X Twin Frozr 4S OC

今回、安いGPUの複数枚と高いGPU1枚の比較ができればよかったんですが、トップグレードが導入コストも消費電力も次点につけていたので比較になりませんでした。
MSI R9 290X 4GD5 グラフィックスボード 日本正規代理店品 VD5166 R9 290X 4GD5

2014年1月15日水曜日

自分の掘ってるコインの採掘済みコイン数を知る

現在採掘済みのコインの枚数を計算する方法です。

まず採掘済みのブロック数を調べます
ウォレットのファイルメニューからHelp>Debug Windowを開きます。
Consoleタブに移ります。ここで下にある入力欄に”getinfo"と入力すると
各種情報が表示されます。

この中の”Blocks"の値が採掘済みブロック数です。

一方で、1ブロックあたり何コイン入っているかはCRYPTCOINTALK等の
コインのインフォメーションに記載されていますので、ブロック数から総発行コイン数が判ります。

例えばNYANコインではgetinfoで得たブロック数は11883、
コインのインフォメーションでは337 coin per blockとありますので

採掘済みコイン数は11883*337 = 4 004 571 コインとなります。



2014年1月11日土曜日

BAMTの導入

BAMTって何

"The Big Miner Thing"ことBAMTですが、USBメモリからブートするLinuxです。ビットコイン掘りに必要なツール一式が入ってます。
Windowsだと何故かハッシュレートが出ない人、HDDレスで掘りたい人におすすめです。

ここでは設定の方法を説明します。

BAMT1.2の導入方法

BAMTの導入方法はここにまとめてありますが
2.USBメモリへ書き込み
http://sourceforge.net/projects/win32diskimager/
win32diskimagerで書き込みます

3.ブート
自動的にビットコインを掘り始めるので、GPUが認識されているか確認します。
何もしなくてもデスクトップに”GPU Detected:"と表示されます。

4.プールの設定
デフォルトは他人のビットコインを掘る設定になっているので、自分のビットコインを掘る設定に変更します。

windowsにおけるスタートメニューから、
Accessory>FileManager を起動
BAMTのフォルダを開いてcfminer.confを編集

デフォルトでプールが3つ登録されていますが、自分のプール設定に書き換えて
残り2つを消してしまってOKです