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した

 


インテルGalileoでWindows IoTを動かしてみた。

2014年10月23日 | インテルGalileo/Edison

インテルGalileoがあまり使われずに眠っているので、Windows IoTを動かしてみた。

インストール後telnetでログインしたら、”C:\windows\system32> ”ってプロンプト表示が出たので一瞬何が起きたのか理解できなかったが、Windowsだから当たり前か... (^^;)

 

基本的にここの通りやればいいが、ちょっと注意点。(使用したのは初代Galileo)

インテル Galileo 開発ボードでWindows IoTを動かす – 前編  KEI SAKAKI's PAGE.

1.Windows8.1上でWindows IoTをmicroSDメモリーカードへ書き込むときは「Windows 8.1 Update 用 Windows アセスメント & デプロイメント キット (Windows ADK)」のインストールと「apply-bootmedia.cmd」の修正は不要。

2.マイクロソフトのサイトからファイルをダウンロードするときは File Transfer Manager (ダウンロード ツール) を使わずに、ファイル名の横にあるダウンロードのリンクからダウンロードする。

3.動作確認時、Windows IoTを書き込んだmicroSDでGalileoを立ち上げてからpingが通るようになるまで結構な時間がかかるので気長に待つ。

4.上記記事にもあるが、LAN環境内にDHCPサーバーが有るならUSB接続のEthernetアダプターは無くてもいい。

 


”Visual Studio Express 2013 for Windows Desktop”で、Lチカできた。

ここを参考にさせてもらった。ここの通りやれば特に問題なし。

インテル Galileo 開発ボードでWindows IoTを動かす – 後編  KEI SAKAKI's PAGE.

ー以上ー

 


参考リンク

インテル Galileo 開発ボードでWindows IoTを動かす – 前編  KEI SAKAKI's PAGE.

インテル Galileo 開発ボードでWindows IoTを動かす – 後編  KEI SAKAKI's PAGE.

 ・Windows for IoT  一身独立して、一国独立す。


インテルGalileoを使ってみた。(1)

2014年04月06日 | インテルGalileo/Edison

インテルGalileo開発ボード開封。

BeagleBone Blackより一回り大きい。

 

とりあえずLチカ動いた。

 

最初はCOMポートが認識されずに焦ったが、ドライバはここ。

”arduino-1.5.3\hardware\tools\x86”

 


Galileo+スイッチサイエンスのLCDシールドキット動いた。

この記事にあるように”lcd.init(1,12,255,11,5,4,3,2,0,0,0,0);”を追加した。

Intel GalileoでHD44780キャラクタ液晶を使う方法

表示は遅い。

 

 


IDE付属のサンプル”Linux_TelnetShell”でTelnet接続も問題なくできた。

 

 

 


GalileoはIOが遅いらしいが、I2Cはどうなんだろ。I2CのLCD表示器で試してみるかな。

 -> スイッチサイエンスのこのI2C LCD表示器を試したがうまくいかなかった。

当然ながらArduinoだと問題なく動く。

 

 


 PCA9685搭載サーボ ドライバー (I2C接続)動いた。

ライブラリを1か所だけ修正した。

 

 


メモ:Intel GalileoでROSが動くのか …

 ・IntelGalileo-How to install ROS Hydro on Intel Galileo - ROS Wiki

メモ: Intel Galileo WiFi N6235 - 青ソフト

メモ:RS232Cシリアル変換ケーブルつくろうかな。

 ・Galileoを使ってみた(その1 : 起動までの準備とLチカまで)

メモ:なるほど~ 

 ・Intel Galileo : I/Oの初期化の問題

 


 今日のintel Galileoボードの実験。

その1:”AquesTalkプロトシールド基本キット”を動かそうと思ったが、うまくいかなかった。

その2:RCサーボを動かそうと思ったがサーボライブラリでコンパイルエラーが出てうまくいかなかった。

全敗 orz

 


最近はほとんど出番がなくなったRS232C USBシリアルケーブル。

ダメもとでWin8.1 PCに挿したら標準のドライバで認識した!

これでGalileo用のシリアル変換ケーブル作ろうかな。

作り方はここ

 

 


Galileoのサーボライブラリ、"Servo.h"をインクルードする前に"Wire.h"をインクルードしておけばコンパイルエラーにならないことが分かった。

一応動いたがスムーズさに欠ける。

ここのサーボライブラリを使えば多少改善される。

Galileo Servo Library Fixes

 

動画はこちら。

あまりスムーズな動きではない。

 

 


GalileoのIDEで”StandardFirmata”をコンパイルしてみたがNGだった。

その他色々試してみたが、Arduinoとの互換性は低い気がする。

Arduinoのものを使いたい場合は事前によく調べた方がいいと思う。

 

 GalileoのIDEはここからダウンロードできるので、事前にArduino用に作ったものがコンパイルできるかどうかぐらいは試せる。

ただし、コンパイルが通っても動く保証は無いが...

 


GalileoのIDEでStandardFirmataをコンパイルしてみてNGだった件。

ここを参考にしたらコンパイルは通ったが、正常に動作していない感じ。

 


”AquesTalkプロトシールド基本キット”を動かしてみた。

”Arduino用AquesTalk ライブラリ”は、Galileo用のIDEではコンパイルエラーになるので使わなかった。

[Arduino] AquesTalk ライブラリ  N.Yamazaki's blog

 

 

 


その後、Tokoroさんがコンパイルを通るようにする方法を公開してくださった。 

IntelのGalileoのArduinoIDEでAquesTalkライブラリを使えるようにする - Galileo - Tokoro's Tech-Note

しかし、”HelloTalk”,"MultiTalk"のコンパイルは通ったが、音声は出なかった。残念。

 

つづく...