2013年12月21日土曜日




今回は、あまり余所のブログでは取り上げられていない領域識別子(identifier)に注目してみた。

CLBeaconRegionオブジェクトの生成時に指定するidentifier(日本語で言うと、識別子)は、領域の識別子である。これはそのアプリケーション内で自由に決められるものである。

CLBeaconRegionオブジェクトの初期化処理(initWith...)には、次の種類がある。

  • - (id)initWithProximityUUID:(NSUUID *)proximityUUID identifier:(NSString *)identifier;
  • - (id)initWithProximityUUID:(NSUUID *)proximityUUID major:(CLBeaconMajorValue)major identifier:(NSString *)identifier;
  • - (id)initWithProximityUUID:(NSUUID *)proximityUUID major:(CLBeaconMajorValue)major minor:(CLBeaconMinorValue)minor identifier:(NSString *)identifier;

したがって、識別子をつけられる対象は、次のような組み合わせだけである。

組み合わせ

  • proximityUUID
  • proximityUUID、Major
  • proximityUUID、Major、Minor


ここからわかること、および、実際に動かしてわかったことがある:

1. 同じUUIDを持つデバイスが複数あるときに、3階層のグルーピングが可能である

2. 異なる組み合わせには、同じ識別子を付けられない
(実際、同じ識別子で異なるUUIDのCLBeaconRegionオブジェクトを作ろうとすると、後から作ったオブジェクトで上書きされてしまう)

3. 同じ組み合わせに対して、異なる識別子が付けられる

2つ目はあまり意識されていないところだと思うが、重要である。例えば、いろんなメーカーから購入したiBeaconデバイスを寄せ集めて、ひとつの領域を監視したいとする。しかし、そのようなiBeaconデバイスの中には、UUIDが予め決められていて、購入者が変更できないものもあるかもしれない。そうなると、これらのデバイスすべてを、同じ領域を表すためには使えないことになる。(たいていのiBeaconは、購入後もアプリケーションからUUIDが変更できるようになっている。)

この識別子、使い方によっては非常におもしろいことができる。ひとつのiBeaconに近づいたとか離れたとかといった使い方は基本中の基本で、本質的な使い方は、文字通り、領域にはいったかどうかである。例えば、同じUUID、MajorをもつiBeaconが、下図のように輪っかになっている場合は、そのUUIDとMajorの組に対して付けた識別子は、その赤い輪っかの領域を表す領域識別子として使用することができる。

3つ目の性質に着目すれば、同じビーコンでも異なる領域として使用可能なので、次図のように同じビーコンの配置に対して、いくつもの異なる領域が考えられる。(ただし、この場合、異なるビーコンには同じ識別子が使えないので、識別子自体をURLのようなドメイン構造にする工夫が必要となる。図では、aグループ、bグループ、cグループとしている。どのビーコンも2つの領域に属している。)

    


これは、iBeaconを社会インフラとして考えた場合、非常に柔軟に扱えることを意味している。たとえば、ある区域にiBeaconを均等に配置しておき、適切な識別子を与えただけで、あるルートを表す領域が取得でき、iBeaconの電波を拾って道案内を行うなど、低コストなナビゲーションシステムが実現できる。

例えば、次の図のように大阪駅構内にiBeaconを配置しておく、御堂筋北口から中央きっぷ売り場への道順を表す領域(赤枠)や、御堂筋南口から高速バスターミナルまでの道順を表す領域(青枠)など、おなじiBeaconインフラに対して、ことなる領域を定義することが可能となる。




領域の識別子をうまく使うことが、柔軟で低コストなiBeaconサービスを提供するための必須条件であることは間違いないだろう。


[Tips] iBeaconの領域識別子とは?




今回は、あまり余所のブログでは取り上げられていない領域識別子(identifier)に注目してみた。

CLBeaconRegionオブジェクトの生成時に指定するidentifier(日本語で言うと、識別子)は、領域の識別子である。これはそのアプリケーション内で自由に決められるものである。

CLBeaconRegionオブジェクトの初期化処理(initWith...)には、次の種類がある。

  • - (id)initWithProximityUUID:(NSUUID *)proximityUUID identifier:(NSString *)identifier;
  • - (id)initWithProximityUUID:(NSUUID *)proximityUUID major:(CLBeaconMajorValue)major identifier:(NSString *)identifier;
  • - (id)initWithProximityUUID:(NSUUID *)proximityUUID major:(CLBeaconMajorValue)major minor:(CLBeaconMinorValue)minor identifier:(NSString *)identifier;

したがって、識別子をつけられる対象は、次のような組み合わせだけである。

組み合わせ

  • proximityUUID
  • proximityUUID、Major
  • proximityUUID、Major、Minor


ここからわかること、および、実際に動かしてわかったことがある:

1. 同じUUIDを持つデバイスが複数あるときに、3階層のグルーピングが可能である

2. 異なる組み合わせには、同じ識別子を付けられない
(実際、同じ識別子で異なるUUIDのCLBeaconRegionオブジェクトを作ろうとすると、後から作ったオブジェクトで上書きされてしまう)

3. 同じ組み合わせに対して、異なる識別子が付けられる

2つ目はあまり意識されていないところだと思うが、重要である。例えば、いろんなメーカーから購入したiBeaconデバイスを寄せ集めて、ひとつの領域を監視したいとする。しかし、そのようなiBeaconデバイスの中には、UUIDが予め決められていて、購入者が変更できないものもあるかもしれない。そうなると、これらのデバイスすべてを、同じ領域を表すためには使えないことになる。(たいていのiBeaconは、購入後もアプリケーションからUUIDが変更できるようになっている。)

この識別子、使い方によっては非常におもしろいことができる。ひとつのiBeaconに近づいたとか離れたとかといった使い方は基本中の基本で、本質的な使い方は、文字通り、領域にはいったかどうかである。例えば、同じUUID、MajorをもつiBeaconが、下図のように輪っかになっている場合は、そのUUIDとMajorの組に対して付けた識別子は、その赤い輪っかの領域を表す領域識別子として使用することができる。

3つ目の性質に着目すれば、同じビーコンでも異なる領域として使用可能なので、次図のように同じビーコンの配置に対して、いくつもの異なる領域が考えられる。(ただし、この場合、異なるビーコンには同じ識別子が使えないので、識別子自体をURLのようなドメイン構造にする工夫が必要となる。図では、aグループ、bグループ、cグループとしている。どのビーコンも2つの領域に属している。)

    


これは、iBeaconを社会インフラとして考えた場合、非常に柔軟に扱えることを意味している。たとえば、ある区域にiBeaconを均等に配置しておき、適切な識別子を与えただけで、あるルートを表す領域が取得でき、iBeaconの電波を拾って道案内を行うなど、低コストなナビゲーションシステムが実現できる。

例えば、次の図のように大阪駅構内にiBeaconを配置しておく、御堂筋北口から中央きっぷ売り場への道順を表す領域(赤枠)や、御堂筋南口から高速バスターミナルまでの道順を表す領域(青枠)など、おなじiBeaconインフラに対して、ことなる領域を定義することが可能となる。




領域の識別子をうまく使うことが、柔軟で低コストなiBeaconサービスを提供するための必須条件であることは間違いないだろう。


2013年12月19日木曜日


ビーコンって何を考えてるんでしょうね?聞いてみたいと思いませんか?

と、唐突に書き始めてしまいました。開発のやりすぎで頭がおかしくなったのでしょうか? いえ、そうではなくて、今回は、ビーコンの近さに応じて、再生する音の大きさを変えてみようというお話です。でも、それはまるで、ビーコンが「近づいたよ〜」「遠のいたよ〜」と言っているように聞こえるので、結構、たのしいのです。(実際には、電波が強くなったよ〜、ですが。。。)

では、さっそく作って行きます。

1.ボタンを押したら、曲を再生する、というところまでを作ります。xcodeのプロジェクト(BeaconVoiceという名前にしました)を作成し、AVFoundation.frameworkを追加します。また、"sounds"というフォルダを作成し、そこに用意したMP3ファイルをおきます(図参照)。


画面はこんな感じ(図参照)。

しょぼいですね〜。音量と電波受信強度のラベルだけはつけときました。

ソースコードは、こんな感じです。(STARTボタンを押すと、曲が再生されて、もう一度押すと、停止する、という動きにしてます。)

ViewController.m


はい、では、次行きましょう。

2.CoreLocation.frameworkをセットして、ビーコンを受信できるようにします。この辺りは、このブログで何回か紹介してますので、コードだけ載っけます。

ViewController.hのプロパティ

ViewController.mのViewDidLoadの中

ViewController.mの中のLocationManagerのデリゲート処理

はい、できました!

では、実行の様子をお聴きください...。


ああ、残念です。音声がお伝えできない。

音量は、0.0〜1.0までの値です。RSSIの値は、-90〜-58にしています。つまり、この画像では、最大値になっています。iPhoneもビーコンもスクリーンショットを撮った開発環境のPCに接続しているので無理ないですね。では、ちょっとビーコンを遠くへ離してみます。

か、かすかに音が聞こえます。そして、ときどき、ゴハッって感じで音が大きくなります。まるで溺れかけの人のように。おおお、いい感じでビーコンの声が聞こえてますね。

まとめ

もともとビーコンの電波がどれくらい不安定なのか知りたく思い、音で体感できるようにしたかっただけなのですが、なかなかいい感じで確認できることがわかりました。例えるなら、トンネルに入ったときのラジオの音でしょうか?でも、ビーコンに近いときは、安定して聴けます。

応用として、ある範囲では、クラシック、ある範囲では、ジャズなど、特定の範囲でだけ特定の音楽が聴けるとかのサービスができそうですね。

(おわり)

ビーコンの声を聞いてみよう!


ビーコンって何を考えてるんでしょうね?聞いてみたいと思いませんか?

と、唐突に書き始めてしまいました。開発のやりすぎで頭がおかしくなったのでしょうか? いえ、そうではなくて、今回は、ビーコンの近さに応じて、再生する音の大きさを変えてみようというお話です。でも、それはまるで、ビーコンが「近づいたよ〜」「遠のいたよ〜」と言っているように聞こえるので、結構、たのしいのです。(実際には、電波が強くなったよ〜、ですが。。。)

では、さっそく作って行きます。

1.ボタンを押したら、曲を再生する、というところまでを作ります。xcodeのプロジェクト(BeaconVoiceという名前にしました)を作成し、AVFoundation.frameworkを追加します。また、"sounds"というフォルダを作成し、そこに用意したMP3ファイルをおきます(図参照)。


画面はこんな感じ(図参照)。

しょぼいですね〜。音量と電波受信強度のラベルだけはつけときました。

ソースコードは、こんな感じです。(STARTボタンを押すと、曲が再生されて、もう一度押すと、停止する、という動きにしてます。)

ViewController.m


はい、では、次行きましょう。

2.CoreLocation.frameworkをセットして、ビーコンを受信できるようにします。この辺りは、このブログで何回か紹介してますので、コードだけ載っけます。

ViewController.hのプロパティ

ViewController.mのViewDidLoadの中

ViewController.mの中のLocationManagerのデリゲート処理

はい、できました!

では、実行の様子をお聴きください...。


ああ、残念です。音声がお伝えできない。

音量は、0.0〜1.0までの値です。RSSIの値は、-90〜-58にしています。つまり、この画像では、最大値になっています。iPhoneもビーコンもスクリーンショットを撮った開発環境のPCに接続しているので無理ないですね。では、ちょっとビーコンを遠くへ離してみます。

か、かすかに音が聞こえます。そして、ときどき、ゴハッって感じで音が大きくなります。まるで溺れかけの人のように。おおお、いい感じでビーコンの声が聞こえてますね。

まとめ

もともとビーコンの電波がどれくらい不安定なのか知りたく思い、音で体感できるようにしたかっただけなのですが、なかなかいい感じで確認できることがわかりました。例えるなら、トンネルに入ったときのラジオの音でしょうか?でも、ビーコンに近いときは、安定して聴けます。

応用として、ある範囲では、クラシック、ある範囲では、ジャズなど、特定の範囲でだけ特定の音楽が聴けるとかのサービスができそうですね。

(おわり)

2013年12月16日月曜日



f:id:bs-android:20131215082308j:image

はじめに

GoogleGlassの新型(V2)の目玉の一つにイヤホン(Earbud)のサポートがあります。

このイヤホン、実は両耳タイプも存在しているのですが、Explore招待プログラムの時期には発売されておらず、なんとか新型の入手に成功できたものの、同時購入することができずに悔しい思いをされている方も多いのではないかと思います。また標準添付のイヤホンもGlassのロゴをあしらったお洒落なデザインで見た目はかなりクールなのですが、実際に使ってみると装着感がいまひとつで常時着けて使うのには残念な品物でした。

f:id:bs-android:20131215081637j:image:w360

f:id:bs-android:20131215081446j:image:w360

そこでGlassに自分好みのイヤホンを付けられるようにしてみましたので、その方法についてレポートいたします。


Google Glassの新機能をハックする



f:id:bs-android:20131215082308j:image

はじめに

GoogleGlassの新型(V2)の目玉の一つにイヤホン(Earbud)のサポートがあります。

このイヤホン、実は両耳タイプも存在しているのですが、Explore招待プログラムの時期には発売されておらず、なんとか新型の入手に成功できたものの、同時購入することができずに悔しい思いをされている方も多いのではないかと思います。また標準添付のイヤホンもGlassのロゴをあしらったお洒落なデザインで見た目はかなりクールなのですが、実際に使ってみると装着感がいまひとつで常時着けて使うのには残念な品物でした。

f:id:bs-android:20131215081637j:image:w360

f:id:bs-android:20131215081446j:image:w360

そこでGlassに自分好みのイヤホンを付けられるようにしてみましたので、その方法についてレポートいたします。




はじめに

飛行機を使った移動で一番困るのが到着時の荷物受け取り
いつまで待っても預けた荷物が出てこない、いやとっくの昔に出てしまったかも?、もしかしたらロストバゲット!?
流れるベルトコンベアを眺め続けながら、いつもこのような不安がよぎります・・・
今回はそんな悩みをiBeaconで解決してみたいと思います。

iBeaconで海外渡航を楽しく



はじめに

飛行機を使った移動で一番困るのが到着時の荷物受け取り
いつまで待っても預けた荷物が出てこない、いやとっくの昔に出てしまったかも?、もしかしたらロストバゲット!?
流れるベルトコンベアを眺め続けながら、いつもこのような不安がよぎります・・・
今回はそんな悩みをiBeaconで解決してみたいと思います。

2013年12月6日金曜日


※今回の記事は「〔番外編〕 電力測定ツールも自作してみよう」の続編です

今回は測定ツールの第2弾としてアプリケーション編を紹介いたします。


免責事項

この記事に書かれている内容は技術的な参考資料として記載しています
端末等の破損や作業上の事故について弊社および記事作成者は責任を持ちません
また設計上の品質についても保証を行っていませんので、作成時は各自で性能確認等を行うようにしてください。


1. 測定ツールの構成について

前回の記事である測定ツール自作編で作成したハードウェアは次のような構成になっていました。


今回の記事ではArduiono MEGA ADK側で動くスケッチとAndroidタブレットで動作するアプリを作成し、測定ツールで検出した電力値をAndroidタブレットに表示できるようにします。
・Arduino
 測定冶具で検出された電流信号をA/D変換しUSB-HOSTからAndroidタブレットにデータを送信
・Androidタブレット
 ADKプロトコルを使用して取得した測定値を画面に数値およびグラフ化して表示する

2.測定アプリ

今回作成したアプリは弊社内のニーズに基づき次のような機能を実装しました。
・ダミーバッテリの供給電圧
・現在の消費電流
・積算電力(積算電流)
・消費電流のグラフ

実際の表示画面はこのようになっています。


2-1. Arduinoのスケッチ

ADK2011(2012)のサンプルコードをベースに独自の機能を追加しました。
実際のコードについてはこちらを参照下さい スケッチ

・タイマー割り込みを使って1msecごとに電圧と電流のA/D変換
・取得した電流値を積算
・ADK経由でデータを送信

なおArduino上で実際の電圧/電流値に計算しようとすると処理時間が間に合わなくなることからAdruino側ではA/D変換とデータ保持のみを行い、実数化はAndroidアプリで行うようにしています。
被検対象となるAndroid端末のカーネルタイマーが1msecなので10倍の0.1msecごとに電流値を取ることができれば、より高精度な測定が可能となりますがアプリ動作の測定に絞るだけなら1msecでも十分評価できると思います。

<Tips> Android 4.1以降の端末でサンプルコードを使うには
公開されている初期のADKのソースコードはADK2011のみしか対応していないことからADK2012をサポートするAndroid4.1以降の端末ではADKを認識することができなくなりました。
その場合、次のようなパッチを当てると動作させることができます。
AndroidAccessory.cpp
bool AndroidAccessory::switchDevice(byte addr)
{
..
-    if (protocol == 1) {
+    if (protocol >= 1) {
        Serial.print("device supports protcol 1\n");
..
ただし今後のバージョンアップにてプロトコルの互換性が失われる場合がありますので使用にあたってはGoogleの動向をチェックするようにしてください

2-2. Androidアプリ

ADK2011のAPIを使い簡単なアプリケーションを作ってみました。
ADK経由でAdruionoからA/D変換値を取得し、アプリ側で電圧/電流/積算(Sum)に変換して表示します。また電流値をグラフ化して表示も行っています。
サンプルとしてアプリのソースコード添付しました ソースコード

Sum値は取得した電流値を積算したもので累積電力の目安として表示しています。
これがあると長時間に渡る消費電力を知ることができスリープ時の省電力を見るのに便利です。この値に電圧値を掛ければ電力値になりますが、今回アプリでは電圧を一定で測定しているので電流のみとしています。またもし表示を時間単位としたい場合はサンプリング時間を測りながら計算するように書き換えるととよいでしょう。

3.使用方法

・測定ツールと被検対象となる端末を接続してからACアダプタを接続します。
・ACアダプタからの給電が始まるとAndroidタブレットにADKのダイアログが表示されますのでOKボタンを押します。
・次にOFFボタンを押すとボタン表示がONに変わり測定が始まります。
・再度ONボタンを押すとOFFに戻り測定が中断します。スクリーンショットを取る場合に利用してください。
・Clearボタンは測定結果をクリアするときに使います、押すと積算値とグラフ時間軸がゼロに戻ります。

4. 少し特殊な使いかた

測定冶具基板に付いている半固定抵抗を回すとダミーバッテリの供給電圧を変えることができます。これによりバッテリ残量が少ないとき特有の挙動も見ることも可能です。電圧を可変させる際は Androidアプリ画面で表示している電圧値を見ながらバッテリ電圧範囲内でゆっくり可変させるようにして下さい。半固定抵抗は機械的接点で抵抗値を変動させているもののため、乱暴に回すと急激に電圧が変動し端末が破損する危険性があります。なお端末側で統計的に残量計算している機種が多いので反映するまでしばらく掛かる場合があります、その場合は一度再起動するとよいでしょう。

5. 今後の展開 -- 高機能版への進化

弊社ではこの測定ツールを進化させた商用版を準備しております。
本ブログで公開したものに比べてさらに次のような機能がパワーアップしています。
1. サンプリングの高速化
2. 取得データを収集サーバーへ転送
 サーバー側にデータを逐次送信することにより長期間の測定が可能になりました
3. 複数端末のデータ取得
 複数の測定ツールを同時使用することにより多くのデータを蓄積することができます
4. データの分析
 サーバー側で蓄積したデータを用いて統計的なデータ評価が可能となりました
 1台だけの評価に比べて試験環境による誤差が少なくなります

まとめ

今回で測定ツール自作編は終了となります。
ツールを自作することにより本ブログ開始時に使っていた機材に比べて小型軽量化され安価に消費電力が測れるようになりました。

蛇足ではありますが「あのスマホ」もダミーバッテリの作成を行い、端末の電力測定できるようにしました。弊社端末アプリ開発チームのところで重宝しております。



目的を絞ったツールを自作すれば測定器を揃えるよりも小型で安上がりに消費電力を確認することができることがご理解頂けたかと思います。
これで読者の方々のところでもツールを自作してみようという気風が高まれば幸いです。

ブランド戦略部 - 中村和貴

〔番外編〕 電力測定ツールも自作してみよう - アプリ編


※今回の記事は「〔番外編〕 電力測定ツールも自作してみよう」の続編です

今回は測定ツールの第2弾としてアプリケーション編を紹介いたします。


免責事項

この記事に書かれている内容は技術的な参考資料として記載しています
端末等の破損や作業上の事故について弊社および記事作成者は責任を持ちません
また設計上の品質についても保証を行っていませんので、作成時は各自で性能確認等を行うようにしてください。


1. 測定ツールの構成について

前回の記事である測定ツール自作編で作成したハードウェアは次のような構成になっていました。


今回の記事ではArduiono MEGA ADK側で動くスケッチとAndroidタブレットで動作するアプリを作成し、測定ツールで検出した電力値をAndroidタブレットに表示できるようにします。
・Arduino
 測定冶具で検出された電流信号をA/D変換しUSB-HOSTからAndroidタブレットにデータを送信
・Androidタブレット
 ADKプロトコルを使用して取得した測定値を画面に数値およびグラフ化して表示する

2.測定アプリ

今回作成したアプリは弊社内のニーズに基づき次のような機能を実装しました。
・ダミーバッテリの供給電圧
・現在の消費電流
・積算電力(積算電流)
・消費電流のグラフ

実際の表示画面はこのようになっています。


2-1. Arduinoのスケッチ

ADK2011(2012)のサンプルコードをベースに独自の機能を追加しました。
実際のコードについてはこちらを参照下さい スケッチ

・タイマー割り込みを使って1msecごとに電圧と電流のA/D変換
・取得した電流値を積算
・ADK経由でデータを送信

なおArduino上で実際の電圧/電流値に計算しようとすると処理時間が間に合わなくなることからAdruino側ではA/D変換とデータ保持のみを行い、実数化はAndroidアプリで行うようにしています。
被検対象となるAndroid端末のカーネルタイマーが1msecなので10倍の0.1msecごとに電流値を取ることができれば、より高精度な測定が可能となりますがアプリ動作の測定に絞るだけなら1msecでも十分評価できると思います。

<Tips> Android 4.1以降の端末でサンプルコードを使うには
公開されている初期のADKのソースコードはADK2011のみしか対応していないことからADK2012をサポートするAndroid4.1以降の端末ではADKを認識することができなくなりました。
その場合、次のようなパッチを当てると動作させることができます。
AndroidAccessory.cpp
bool AndroidAccessory::switchDevice(byte addr)
{
..
-    if (protocol == 1) {
+    if (protocol >= 1) {
        Serial.print("device supports protcol 1\n");
..
ただし今後のバージョンアップにてプロトコルの互換性が失われる場合がありますので使用にあたってはGoogleの動向をチェックするようにしてください

2-2. Androidアプリ

ADK2011のAPIを使い簡単なアプリケーションを作ってみました。
ADK経由でAdruionoからA/D変換値を取得し、アプリ側で電圧/電流/積算(Sum)に変換して表示します。また電流値をグラフ化して表示も行っています。
サンプルとしてアプリのソースコード添付しました ソースコード

Sum値は取得した電流値を積算したもので累積電力の目安として表示しています。
これがあると長時間に渡る消費電力を知ることができスリープ時の省電力を見るのに便利です。この値に電圧値を掛ければ電力値になりますが、今回アプリでは電圧を一定で測定しているので電流のみとしています。またもし表示を時間単位としたい場合はサンプリング時間を測りながら計算するように書き換えるととよいでしょう。

3.使用方法

・測定ツールと被検対象となる端末を接続してからACアダプタを接続します。
・ACアダプタからの給電が始まるとAndroidタブレットにADKのダイアログが表示されますのでOKボタンを押します。
・次にOFFボタンを押すとボタン表示がONに変わり測定が始まります。
・再度ONボタンを押すとOFFに戻り測定が中断します。スクリーンショットを取る場合に利用してください。
・Clearボタンは測定結果をクリアするときに使います、押すと積算値とグラフ時間軸がゼロに戻ります。

4. 少し特殊な使いかた

測定冶具基板に付いている半固定抵抗を回すとダミーバッテリの供給電圧を変えることができます。これによりバッテリ残量が少ないとき特有の挙動も見ることも可能です。電圧を可変させる際は Androidアプリ画面で表示している電圧値を見ながらバッテリ電圧範囲内でゆっくり可変させるようにして下さい。半固定抵抗は機械的接点で抵抗値を変動させているもののため、乱暴に回すと急激に電圧が変動し端末が破損する危険性があります。なお端末側で統計的に残量計算している機種が多いので反映するまでしばらく掛かる場合があります、その場合は一度再起動するとよいでしょう。

5. 今後の展開 -- 高機能版への進化

弊社ではこの測定ツールを進化させた商用版を準備しております。
本ブログで公開したものに比べてさらに次のような機能がパワーアップしています。
1. サンプリングの高速化
2. 取得データを収集サーバーへ転送
 サーバー側にデータを逐次送信することにより長期間の測定が可能になりました
3. 複数端末のデータ取得
 複数の測定ツールを同時使用することにより多くのデータを蓄積することができます
4. データの分析
 サーバー側で蓄積したデータを用いて統計的なデータ評価が可能となりました
 1台だけの評価に比べて試験環境による誤差が少なくなります

まとめ

今回で測定ツール自作編は終了となります。
ツールを自作することにより本ブログ開始時に使っていた機材に比べて小型軽量化され安価に消費電力が測れるようになりました。

蛇足ではありますが「あのスマホ」もダミーバッテリの作成を行い、端末の電力測定できるようにしました。弊社端末アプリ開発チームのところで重宝しております。



目的を絞ったツールを自作すれば測定器を揃えるよりも小型で安上がりに消費電力を確認することができることがご理解頂けたかと思います。
これで読者の方々のところでもツールを自作してみようという気風が高まれば幸いです。

ブランド戦略部 - 中村和貴

2013年12月3日火曜日



f:id:bs-android:20131202050632j:image:w360

弊社で取りまとめを担当した書籍「NFC Hacks」がオライリー・ジャパン様から発売中です。



http://www.oreilly.co.jp/books/9784873116242/


1章 NFCを知る

1. RFIDと非接触ICカード

2. NFCの利点

3. 「NFCタグ」を知る

4. NFCデバイスの3つのモード

5. Reader/Writerモード

6. Peer-to-Peerモード

7. Card Emulationモード

8. NFCを利用した国内のサービス

9. NFCを利用した海外のサービス

10. NFC対応デバイス

11. 対応チップ

12. NFCの物理学的基礎

13. 電磁誘導の結合強度




2章 NFCの規格を知る

14. NFC Forum Type 1 Tag

15. NFC Forum Type 2 Tag

16. NFC Forum Type 3 Tag

17. NFC Forum Type 4 Tag

18. ISO-DEPについて学ぶ

19. NFC-DEPについて学ぶ

20. LLCPについて学ぶ

21. SNEPについて学ぶ

22. NDEF

23. RTD(Record Type Definition)




3章 AndroidでNFCをHackする

24. SettingからNFCを設定する

25. NFCタグを読み取るためのクラス群(android.nfcパッケージ)

26. NFCタグのタイプ別機能のためのクラス群(android.nfc.techパッケージ)

27. Android 2.3で使えるNFC機能

28. Android 4.0で使えるAndroid Beam

29. Android 4.1/4.2/4.3で使えるNFC機能

30. Android端末をReaderモードで使う

31. アプリケーションでNFCタグを読む方法

32. NDEFを読み込むアプリを作成する

33. Android端末をWriterモードで使う

34. アプリケーションでNFCタグを書く方法

35. NDEFを書き込むアプリを作成する

36. Android Beamを知る

37. Android Beamを送受信するアプリを作る

38. Android Beam送信時にデフォルトのNDEFメッセージを送信しないようにする

39. Bluetooth Handoverについて

40. タグ情報を使いBluetoothデバイスに接続切断する

41. Secure Elementを使用するCard Emulation機能について




4章 WindowsでNFCをHackする

42. NFP機能を使う

43. PC/SC

44. PC/SCによるNDEFタグアクセス

45. PC/SCによるNFCデバイスアクセス

46. Proximity APIの利用

47. Proximity APIでのNDEFアクセス

48. Windows環境でのP2P通信




5章 セキュリティに配慮したNFC応用サービス

49. キーポイントを押さえてセキュリティモデルを検討する

50. 非暗号化領域を利用しつつネットワーク連動サービスを構築する


NFCの基礎から、規格の詳細、Android/Win8での実装方法、NFCを応用したサービスについての考察など、幅広い内容になっています。

NFCについて一から勉強してみたい方、何となく知っているけど分からないことがある方、仕様を確認したい上級者の方にお勧めです。

ぜひ読んでみてください。




[コラム] NFC Hacks発売中です!



f:id:bs-android:20131202050632j:image:w360

弊社で取りまとめを担当した書籍「NFC Hacks」がオライリー・ジャパン様から発売中です。



http://www.oreilly.co.jp/books/9784873116242/


1章 NFCを知る

1. RFIDと非接触ICカード

2. NFCの利点

3. 「NFCタグ」を知る

4. NFCデバイスの3つのモード

5. Reader/Writerモード

6. Peer-to-Peerモード

7. Card Emulationモード

8. NFCを利用した国内のサービス

9. NFCを利用した海外のサービス

10. NFC対応デバイス

11. 対応チップ

12. NFCの物理学的基礎

13. 電磁誘導の結合強度




2章 NFCの規格を知る

14. NFC Forum Type 1 Tag

15. NFC Forum Type 2 Tag

16. NFC Forum Type 3 Tag

17. NFC Forum Type 4 Tag

18. ISO-DEPについて学ぶ

19. NFC-DEPについて学ぶ

20. LLCPについて学ぶ

21. SNEPについて学ぶ

22. NDEF

23. RTD(Record Type Definition)




3章 AndroidでNFCをHackする

24. SettingからNFCを設定する

25. NFCタグを読み取るためのクラス群(android.nfcパッケージ)

26. NFCタグのタイプ別機能のためのクラス群(android.nfc.techパッケージ)

27. Android 2.3で使えるNFC機能

28. Android 4.0で使えるAndroid Beam

29. Android 4.1/4.2/4.3で使えるNFC機能

30. Android端末をReaderモードで使う

31. アプリケーションでNFCタグを読む方法

32. NDEFを読み込むアプリを作成する

33. Android端末をWriterモードで使う

34. アプリケーションでNFCタグを書く方法

35. NDEFを書き込むアプリを作成する

36. Android Beamを知る

37. Android Beamを送受信するアプリを作る

38. Android Beam送信時にデフォルトのNDEFメッセージを送信しないようにする

39. Bluetooth Handoverについて

40. タグ情報を使いBluetoothデバイスに接続切断する

41. Secure Elementを使用するCard Emulation機能について




4章 WindowsでNFCをHackする

42. NFP機能を使う

43. PC/SC

44. PC/SCによるNDEFタグアクセス

45. PC/SCによるNFCデバイスアクセス

46. Proximity APIの利用

47. Proximity APIでのNDEFアクセス

48. Windows環境でのP2P通信




5章 セキュリティに配慮したNFC応用サービス

49. キーポイントを押さえてセキュリティモデルを検討する

50. 非暗号化領域を利用しつつネットワーク連動サービスを構築する


NFCの基礎から、規格の詳細、Android/Win8での実装方法、NFCを応用したサービスについての考察など、幅広い内容になっています。

NFCについて一から勉強してみたい方、何となく知っているけど分からないことがある方、仕様を確認したい上級者の方にお勧めです。

ぜひ読んでみてください。




2013年12月1日日曜日

Bluetoothは2.4GHz帯だから、免許不要だということをよく聞く。しかし、技適はとらなくちゃいけないというのもよく聞く。免許と技適って違うものなの?などと頭が混乱してくる。電波のことをやっていて、"技適"を知らないというのはどうも恥ずかしいことなのか、誰もちゃんと教えてくれない。技適のことを知らないと、安心してBLEを使えない。ということで、今回は、"技適をちゃんと知る"ということと、それとBLEがどう関係するのか、ということに焦点を当ててみる。

技適とは、日本の総務省が定める「技術基準適合証明又は工事設計認証」の略称。

認証制度について、総務省「電波利用ホームページ」の概要は、次のようになっている:
無線通信の混信や妨害を防ぎ、また、有効希少な資源である電波の効率的な利用を確保するため、無線局の開設は原則として免許制としており、当該無線局で使用する無線設備が技術基準に適合していることを免許申請の手続きの際に検査を行うこととしております。
ただし、携帯電話等の小規模な無線局に使用するための無線局であって総務省令で定めるもの(特定無線設備)については、使用者の利便性の観点から、事前に電波法に基づく基準認証を受け、総務省令で定める表示(技適マーク)が付されている場合には、免許手続時の検査の省略等の無線局開設のための手続について特例措置が受けられます。(特例措置の概要は下図参照。)
ここでは、この特例措置の適用を受けるために必要な無線設備に関する基準認証制度の概要をご紹介します。なお、詳細は電気通信機器基準認証制度マニュアルをご参照ください。


ちなみに、技適マークとは、こんなマーク。
(左が平成7年4月から運用されているもの。右は昭和62年10月からの旧マーク。詳しくは、ここを参照。)




日本国内で電波を発する製品はすべてこの技適を取得していないといけない。技適マークが付いていない無線機器を使用すると、電波法違反になる。さらに、技適を取得していたとしても、一般の無線機器は総務大臣の免許が必要となる。ただし、上の概要にあるように、特定無線設備に関しては、技適を取得していれば、総務大臣の免許が不要になる。つまり、免許が不要というのはこの意味だったのである。ただし、無線機器としての性能などは保証されなければいけないので、認証を受ける必要があるということだ。ということは、Bluetoth機器は、この特定無線設備に含まれるということなのか?特定無線設備について、見てみる。

特定無線設備は大きく分けて、4つある。

  1. 免許不要局(20種別)
  2. 特定無線局(37種別)
  3. その他(100種別)
  4. 特別特定無線設備(24種別)

Bluetoothデバイスは、2.4GHz帯(2,402〜2,480MHz)を用いるので、免許不要局の
 2.4GHz帯高度化小電力データ通信システム(2,400~2,483.5MHz)
に属している。

というわけで、Bluetoothについては、技適は必要だが、総務大臣の免許は不要ということで一応納得できました。

参照URL:


余録

日本国内については、技適という認証が必要ですが、海外ではどうなっているのでしょうか。海外では、例えば、北米では、FCC認証、ヨーロッパでは、CE認証というものがあります。
そして、現在、相互承認協定(MRA)という、外国に行って認証試験を受けなくても、その国の認証試験が国内で受けられるという制度があります。電気通信機器に関しては、日欧間(平成14年1月発効)、日シンガポール間(平成14年11月発効)日米間(平成20年1月発効)で締結されています。これは、携帯電話などを海外へ輸出するメーカーにとっては、コスト面などで非常に助かる制度になっています。



[コラム] Bluetoothデバイスは免許不要ってよく聞くけど...どういうことか?

Bluetoothは2.4GHz帯だから、免許不要だということをよく聞く。しかし、技適はとらなくちゃいけないというのもよく聞く。免許と技適って違うものなの?などと頭が混乱してくる。電波のことをやっていて、"技適"を知らないというのはどうも恥ずかしいことなのか、誰もちゃんと教えてくれない。技適のことを知らないと、安心してBLEを使えない。ということで、今回は、"技適をちゃんと知る"ということと、それとBLEがどう関係するのか、ということに焦点を当ててみる。

技適とは、日本の総務省が定める「技術基準適合証明又は工事設計認証」の略称。

認証制度について、総務省「電波利用ホームページ」の概要は、次のようになっている:
無線通信の混信や妨害を防ぎ、また、有効希少な資源である電波の効率的な利用を確保するため、無線局の開設は原則として免許制としており、当該無線局で使用する無線設備が技術基準に適合していることを免許申請の手続きの際に検査を行うこととしております。
ただし、携帯電話等の小規模な無線局に使用するための無線局であって総務省令で定めるもの(特定無線設備)については、使用者の利便性の観点から、事前に電波法に基づく基準認証を受け、総務省令で定める表示(技適マーク)が付されている場合には、免許手続時の検査の省略等の無線局開設のための手続について特例措置が受けられます。(特例措置の概要は下図参照。)
ここでは、この特例措置の適用を受けるために必要な無線設備に関する基準認証制度の概要をご紹介します。なお、詳細は電気通信機器基準認証制度マニュアルをご参照ください。


ちなみに、技適マークとは、こんなマーク。
(左が平成7年4月から運用されているもの。右は昭和62年10月からの旧マーク。詳しくは、ここを参照。)




日本国内で電波を発する製品はすべてこの技適を取得していないといけない。技適マークが付いていない無線機器を使用すると、電波法違反になる。さらに、技適を取得していたとしても、一般の無線機器は総務大臣の免許が必要となる。ただし、上の概要にあるように、特定無線設備に関しては、技適を取得していれば、総務大臣の免許が不要になる。つまり、免許が不要というのはこの意味だったのである。ただし、無線機器としての性能などは保証されなければいけないので、認証を受ける必要があるということだ。ということは、Bluetoth機器は、この特定無線設備に含まれるということなのか?特定無線設備について、見てみる。

特定無線設備は大きく分けて、4つある。

  1. 免許不要局(20種別)
  2. 特定無線局(37種別)
  3. その他(100種別)
  4. 特別特定無線設備(24種別)

Bluetoothデバイスは、2.4GHz帯(2,402〜2,480MHz)を用いるので、免許不要局の
 2.4GHz帯高度化小電力データ通信システム(2,400~2,483.5MHz)
に属している。

というわけで、Bluetoothについては、技適は必要だが、総務大臣の免許は不要ということで一応納得できました。

参照URL:


余録

日本国内については、技適という認証が必要ですが、海外ではどうなっているのでしょうか。海外では、例えば、北米では、FCC認証、ヨーロッパでは、CE認証というものがあります。
そして、現在、相互承認協定(MRA)という、外国に行って認証試験を受けなくても、その国の認証試験が国内で受けられるという制度があります。電気通信機器に関しては、日欧間(平成14年1月発効)、日シンガポール間(平成14年11月発効)日米間(平成20年1月発効)で締結されています。これは、携帯電話などを海外へ輸出するメーカーにとっては、コスト面などで非常に助かる制度になっています。



Related Posts Plugin for WordPress, Blogger...