2014/09/23

[ble]BLEモジュールを使った場合のがんばりどころは?

3回に分けて、nRF51822で基本的なサービスとアプリを作ってみた。

  • [nrf51]はじめてのBLEアプリ - (1)サービスをつくる
  • [nrf51]はじめてのBLEアプリ - (2)アプリを作る
  • [nrf51]はじめてのBLEアプリ - (3)デバッグ
  • よしよし、これでCentralからの入力も、Peripheralからの通知もできるようになった。
    Indicateとかセキュリティとかあるけど、まあそれは後回しでよかろう。

    そこで、はた、と手が止まった。
    入力と出力と通知ができて、他に何かやることがあるんだろうか?

    もしハードウェアの設計をしていたりするんだったら、いろいろありそうな気がする。
    でも、BLEモジュールでアンテナまでセットになっているので、やれることが無い。
    プロトコルスタックも、SoftDeviceがやってくれるので、やることが無い。

    もしかして・・・あとはアプリ層でごにょごにょがんばるだけってことかしら・・・。
    それとCentralか。Centralも似たようなもので、BLEはOSが吸収してくれるから、あとはアプリ層でやる気がする。
    そうか、だからサービスについての記事があまりないのか・・・。

     

    そんなわけで、まだ認識が違ってるかもしれないのだけども、BLE自身についてはこのくらいにして、何か作ってみよう。
    1回目は捨て石にするつもりで、と本にも書いてあったし。
    やってみれば、問題点もわかってくるだろう。

    8 件のコメント:

    1. はじめまして。BLE 関係の記事を読ませていただきました。
      私もちょうど BVMCN5102-BK を買っていろいろ試していたのですが、ドキュメント通りにならないことが多くて、この Blog がものすごく参考になりました。特に 32kHz 外付けクロックの問題と、SoftDevice のバージョンの問題は、記事を読んだおかげで気づきました。どうもありがとうございました。開発頑張ってください。
      今後のために、いろいろやってみて気づいたことを書いておきます。

      (1) 私の環境(NFR51SDK_V6.1.0+SoftDevice7.0.0+Eclipse.Luna) では nAN-29 に従って開発環境を作ると、デバッグ実行時に No source available for "0x0" や No source available for "0xfffffffe" と表示され、全くデバッグができませんでした。https://devzone.nordicsemi.com/blogs/18/development-with-eclipse-and-gcc/ に丁寧に従って、Ecripse に GNU ARM eclipse plug-in をインストールしたところ、ようやくデバッグできるようになりました。

      (2) 太陽誘電の EYSFCNZXX というモジュールも nRF51822 が載っています。EYSFCNZXX と SEGGER を SWDIO,SWDCLK,VCC,GND の 4本の線で接続するだけで、BVMCN5102-BK と同じ環境で開発ができます (I/O が多いため使い道がありそうです。32kHz クロックも内蔵しています)。ただし EYSFCNZXX はクロックが 16MHz でなく 32MHz のため、そのままでは動作せず、この記事を見て対応する必要がありました。 https://devzone.nordicsemi.com/question/98/32mhz-xtal-for-the-nrf51822-main-clock/

      返信削除
      返信
      1. コメントありがとうございます。
        ドキュメント通りに進まないですよね・・・。頼るところがそこしかないので読んでますが、テンプレートだけでも読んだ通りに動いてほしかったです。
        個人でやっている人が少ないのか検索してもあまり(日本語で)出てこないので、やってる方がいらっしゃるとはうれしかったです。

        (1)このplug-inって、PDFには出てなかったですよね。そろそろ本家のアプリケーションノートも更新していただきたいです。。。

        (2)太陽誘電さんって、CD-Rの会社かと思ってたんですが、デバイスもあるんですね。
        知らなかったです。
        32kHz載ってると、やっぱりよいんですかね? 低周波動作ができるようになるのかも、と思いつつ、まだそこまで調べられてないです。

        削除
    2. BLE の開発の情報はほとんどないですね。特に日本語では皆無だと思います。BLE モジュールの販売元も、資料については Nordic に丸投げですし、しかもおっしゃる通り本家 Nordic の情報はきわめて古いという...。コイン電池で長期間通信できるというのは魅力的ですので、情報さえ増えれば(またモジュールの入手性が良くなれば) 今後とても流行ると思うのですが。

      私も太陽誘電さんは CD-R のイメージしかありませんでした。モジュール単独で購入できますので、ありがたいです。私は Chip1stop さんで購入しました(ちょっと高いですが)。アメリカの Digikey にはありますが、日本の Digikey では検索しても見つかりませんね。

      (1) の GCC のフリーの開発環境構築には苦労しましたが、実は市販の KEIL の開発環境の評価版(32kB 制限あり) https://www.keil.com/demo/eval/arm.htm でも Nordic の BLE のサンプルはコンパイルしてデバッグできました。初めてやる方は、まずこちらから試した方が、開発環境構築でつまづかなくてよさそうですね。

      返信削除
      返信
      1. ようやくKeilを試してみました。
        確かに、難なく環境が作れました。さすがARM本家ですね。
        仕事でやるんだったらKeilを買うと思いますが、遊んでる分には評価版でも十分ですね。

        削除
      2. Keil の評価版は32kB 制限があると書いてありますが、Nordic のサンプルをいくつか試したところ問題なくコンパイルできました。32kB を超えているものもある気がするのですが。

        削除
      3. あら、そうなんですか。
        どこ見ても、コードサイズ/デバッグが32KBってあるので、考えてもなかったですね。
        なんでもかんでもじゃなくて、ユーザコード部分が32KBとか・・・ってリンカがそこまで見るとも思えないですね。

        削除
      4. こんにちは。
        自分もKeil の評価版使ってます。今のところ32KB制限に引っかかったことないです。
        コードサイズって正直よくわかってないんですが、ビルドした時にできる.mapファイルの中の一番下にTotal ROM Sizeが書いてあって、それが32KB超えてなければいいのかな、と思ってます。
        HEXのファイルサイズだと70KB位ありますからね。

        削除
      5. やってみましたが、うちでは32KBちょうどまででした。
        まあ、私は大きいプログラムは作ってないので、十分事足りそうです。
        http://hiro99ma.blogspot.com/2014/11/keil32kb.html

        削除

    コメントありがとうございます。
    スパムかもしれない、と私が思ったら、
    申し訳ないですが勝手に削除することもあります。