robo8080のブログ

ロボット製作や電子工作など。

インテルEdison + BLEで、konashi/SBBLEを動かしてみた。

2014年11月30日 | インテルGalileo/Edison

インテルEdison + BLEで、konashi/SBBLEを動かしてみたのでその手順を紹介します。

事前準備:

Edisonの初期設定が終わっていない場合はここを参考に設定し、WiFi接続できるところまで確認しておく。

intel Edison チュートリアル 

手順1:

ここを参考にbluetoothを有効化し、bluez5-devとnobleをインストールする。

konashiの実験をするだけならasyncとnoble以外のnode.jsモジュールは不要かも。

Enabling BLE (Bluetooth Low Energy aka Smart) and Bluetooth on Edison

手順2:

nobleをインストールするとカレントディレクトリにnode_modules/nobleというディレクトリができるので、そこにここのプログラムを適当な名前を付けて保存する(例えばkn.js)。

14/11/12: Node.js+nobleでkonashiをつつく

実行は node kn.js 

うまくいけば、konashi/SBBLEのPIO0-PIO7につないだLEDが点灯するはず。(SBBLEで動作確認した。)

 

UUIDを変更すればkoshianでも動いた。UUIDはここを見ればわかる。

koshianのUUIDはハイフン無しの16進小文字で指定する。

koshianはシリアル受信のNotifyがデフォルトでONになっているようでゴミを受信するようだ。(2014.11.30時点でのファーム)

 


PIO0のLチカとAIO0リードの例:

//------------------------------------------------------------------------------

var noble = require('./index');

noble.on('stateChange', function(state) {
  if (state === 'poweredOn') noble.startScanning();
  else noble.stopScanning();
});

noble.on('discover', function(peripheral) {
  noble.stopScanning();
  console.log('peripheral with UUID ' + peripheral.uuid + ' found');
  var advertisement = peripheral.advertisement;
  var localName = advertisement.localName;
  if (localName) {
    console.log('Local Name = ' + localName);
  }

  peripheral.connect(function(error){
    if(error) console.log('connect error: ' + error);
    console.log('connected to ' + peripheral.uuid);

      peripheral.discoverServices(['ff00'], function (error, services){ // 0xff00=KONASHI_SERVICE_UUID
        if(error) console.log('discoverServices error: ' + error);
        console.log('services.length: ' + services.length);

        var konashiService = services[0];
        konashiService.discoverCharacteristics(['3000','3002','3008'], function(error, characteristics){
          if(error) console.log('discoverCharacteristics error: ' + error);
          console.log('characteristics.length: ' + characteristics.length);

            characteristics[0].write(new Buffer([1]), true); // 0x3000=KONASHI_PIO_SETTING_UUID
              var toggle = false;
              setInterval(function(){
                characteristics[2].read(function(error, data) { //0x3008=KONASHI_ANALOG_READ_0_UUID
                  if (data) {
                    console.log( 'value:' + (data[1] + data[0]*256)/1000 );
                  }
                });
                if(toggle){
                  // LED ON
                  characteristics[1].write(new Buffer([1]), true); // 0x3002=KONASHI_PIO_OUTPUT_UUID
                } else {
                  // LED OFF
                  characteristics[1].write(new Buffer([0]), true); // 0x3002=KONASHI_PIO_OUTPUT_UUID
               }
               toggle = !toggle;
             }, 1000);
         });
      });
  });
});

//------------------------------------------------------------------------------

補足:

konashi/SBBLEを動かすときはキャラクタリスティックスにどういう値を読み書きすれば良いか知る必要がある。

その時はランニングエレクトロニクスさんが公開して下さっているSBBLEのソースが参考になる。

SBDBTシリーズサポートページ

 ー以上ー

 


 参考リンク

intel Edison チュートリアル 

Enabling BLE (Bluetooth Low Energy aka Smart) and Bluetooth on Edison

14/11/12: Node.js+nobleでkonashiをつつく

Getting started · sandeepmistry-noble

konashi

SBBLE

SBDBTシリーズサポートページ

Bluetoothが載ってるArduino派生ボード「BlendMicro」とNode.jsでBLEした

 


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。