2014年06月29日

Bluetooth Low EnergyとiBeaconの研究を始めます

4月初頭のまだ桜が咲いている頃に横浜に来て、横浜周辺のマンスリーマンションに滞在しながら仕事をしていましたが、こちらでの仕事も今週一杯で終わることになりました。次の仕事の場所は何処になるかまだ決まっていませんが、いずれにしても近いうちに横浜から離れことになりそうです。新宿や渋谷みたいな都心の街よりは人が少なく、横浜の街中に流れている空気はゆったりしている感じがします。そんな横浜の街が好きだったので、すごく名残惜しいです。

さて、私は隙間時間などにIT関連の情報収集を日常的にやっています。主な目的は新しい研究テーマを探すためですが、やはり最新のトレンドにアンテナを張っておきたいからです。Webやモバイル分野で働いているプログラマは私と同じように日常的に情報収集している人は多いんじゃないかと思います。この2つの分野は日進月歩で技術が進化しており、ちょっと油断するとすぐに最新トレンドに置いていかれてしまいます。私が最近情報収集のときに使っている一般的なキーワードを紹介すると、Web関連では「JavaScript」「HTML5」「データビジュアライゼーション」など、モバイル関連では「iOS」が断然トップですが、「ハイブリッドアプリ開発」などについても調べたりしています。このようにWebとモバイル分野の情報収集は私の日課になっていますが、最近すごく有望そうなモバイル分野の研究テーマを見つけました。それが、Bluetooth Low EnergyとiBeaconです。

Bluetooth Low Energy(BLE)は2010年7月に発表された近距離無線通信技術Bluetooth 4.0規格の一部として策定されたもので、マーケット的な俗称として「Bluetooth Smart」という呼称も使われています。その名が表しているとおり、BLEの最大の特徴は超低電力で通信が可能なことです。コイン形リチュウム電池で最大数年間動作させることができます。Bluetoothと同様に、BLEは免許なしで使える2.4MHz帯の電波を用いており、最大1Mbpsの通信が可能です。

私がググって得たBLE関連の情報を以下に列記します。
  1. BLEチップは1個あたり2〜5ドル程度の価格で複数の半導体メーカーから販売されており、これらを利用すると、安価にBLEモジュール(「Beaconモジュール」とも呼ばれる)を製造することができる。
  2. 最新のiOSデバイスはBLE機能を標準で内蔵しており、iOS 7以降を搭載していれば、BLEを利用するアプリを動かすことができる。
  3. 現状BLEを搭載しているAndroid端末はNexus 4とNexus 7(2013年モデル)だけで、しかもBLE機能を利用できるのはAndroid 4.3(最新バージョンはAndroid 4.4)以降だけである。
  4. BLEとiBeaconによる位置情報の利用シーンとして、店内やショピングモール、観光地などで広告や情報をプッシュ配信するようなケースだけでなく、ユーザーの行動情報などを収集して統計データとして利用するようなケースも考えられる。このようなケースでは、Webサービスと連携していく可能性が高い。

一つずつ簡単に説明すると、多くの半導体メーカーがBluetooth RF SoCチップを製造していますが、これらのうちTexas InstrumentsNordic SemiconductorなどがBLE規格に対応したSoCチップの製造・販売に力を入れています。TIのCC2540CC2541、Nordic SemiconductorのnRF51882nRF51422などが代表的なBLE SoCチップで、これらの単価は2?5ドル程度です。TIやNordic Semiconductor、そしていくつかの組込みボード・ベンダーからもこれらのチップを搭載した評価ボードも販売されており、このような評価ボードも100ドル前後と比較的安い値段で入手できます。主要な種類のBLE SoCチップを搭載した評価ボードを一通りと揃えたとしても、全部で大体500〜600ドル前後で購入すること可能です。LinuxやAndroid用の評価ボードと比較すると、BLEモジュールの開発はかなり低予算で始めることができます。ちなみに、CC2540とCC2541に内蔵されているCPUコアは8051、nRF51882とnRF51422はCortex-M0です。どちらもGCCを使えるので、BLEモジュールのファームウェアはオープンソースを利用した組込み技術で開発することができます。私の場合、この辺りは本業の仕事で長年やっているので、BLE SoCチップや評価ボードさえ入手できれば、すぐにでもBLEモジュール側の開発に着手できます。さらに言えば、BLEモジュール自体も相当な低予算で製造することが可能です。BLE機能はすべてSoCチップに内蔵されているので、これにアンテナ、オシレータ、チップ型抵抗やコンデンサ、コネクタなどの電子部品を組み合わせるだけで製造できるからです。ロッドあたりの製造数にもよりますが、ざっと計算しても1個1,000円前後かそれ以下の原価で製造することも可能なはずです(製品の見栄えを重視して、本体をちゃんとしたケースに入れるなら、ケースの製造単価も加算しなければなりません。それでも、1個あたり2,000〜3,000円前後の原価で製造できるじゃないかと予想しています)。

続いて、iOSデバイス周辺のBLE事情についてですが、この辺りの情報については私がグダグタ説明するより、下のリンクページの記事を読んでもらった方が早いんじゃないかと思います。

 ASCII.jp:アップルが普及を狙う「iBeacon」とは何か? その基本を押さえる (1/4)
 超話題の「iBeacon」を徹底解説――O2Oの本命となるか!? | ビジネスネットワーク.jp
 iPhoneアプリでBluetooth通信を使うための基礎知識(1/4) - @IT

AppleはiOSに搭載しているBLEを利用した近距離位置測位サービスを「iBeacon」という名前で呼んでおり、以下の機種がこのiBeaconに対応しています。
  • iPhone 4S以降
  • iPad 3rd generation以降
  • iPad mini 以降
  • iPod touch 5th generation以降

iBeaconの機能はCoreLocation.frameworkに統合されており、iOS 7に対応したアプリはこれを利用することができます。最新の統計データによると、現状iPhoneユーザーの約80%がiPhone 4S以降のモデルを使っており、iOSのバージョン別シェアではiOS 7は88%に達しているそうです。つまり、iPhoneに限れば、世の中で稼働中の約80%の端末でBLE/iBeaconアプリを動作させることができることになります。

このようにiOSデバイスではBLEのインフラ環境がすでに整備されていますが、これと比較すると、AndroidのBLEへの対応状況は随分と遅れています。まず、BLE機能が利用できる機種がNexus 4とNexus 7(2013年モデル)に限定されます。Nexus 4はスマホですが、Nexus 7はタブレットです。Nexus 7を常に持ち歩いている人が世の中にたくさん存在すると想定するのは、ちょっと無理があるんじゃないかと思います(結構売れた機種なので、そこそこユーザーは多いでしょうが・・・)。どちらもGoogleが自ら販売しており、携帯キャリアからは販売されていないので(日本通信とイオンが協業して、2014年4月からNexus 4を『イオンのスマートフォン』として発売しているそうです)、広く普及しているとは言えない機種です。BLE対応ハードウェアが搭載されているAndroid端末は他にもいくつか存在していますが、それらの機種はメーカー独自のSDKを使わないとアプリ側でBLE機能を利用することができません。OS側に標準のBLE対応APIが追加されたのはAndroid 4.3からで、現状このAPIは上の2機種にしか対応していません。しかもAndroid 4.3のBLE APIはかなり不安定らしく、Android 4.4を導入しなければ安定した通信はできないそうです。Android 4.4を導入済みの上の2機種だけに限られるとすれば、現状BLE機能を利用できるAndroid端末の数は相当少ないと見るべきでしょう。

上記のような状況なので、モバイル・プログラマがBLE対応アプリを開発する場合、iOSだけをターゲットとしてアプリを開発すれば良く、実質的にAndroidは無視することができます。この現状を知ったことが、私がBLE/iBeaconの研究に取り組もうと決心した最大の理由です。

それと、私がBLE/iBeaconに取り組もうと決めた理由がもう一つあります。それは、BLEがモバイルやウェアラブルデバイスなどに搭載されることを想定した規格であるという点です。常に身につけているデバイスが周辺に存在するBLEモジュールを検出できるようなシュチュエーションでなければ、BLEによる位置情報の利用価値は生まれません。ノートPCのような携帯性が低い機器にBLEを搭載しても利用価値はほとんどありません。それに、ノートPCは常時電源が入っている保証がありません。バッテリー駆動時間の節約のために、携帯中はノートPCの電源を切っている人も多いはずです。これは、PCで最大のシェアを持つWindows向けにBLEアプリを開発する必要性はないということを意味しています。BLEモジュールの配置や稼働状況などを管理するツール的なプログラムをPC向けに開発するケースは考えられますが、BLEモジュール自体を利用するアプリプログラムはモバイルやウェアラブルデバイス上で動かすケースだけを考慮すれば良いことになります。Windows Phone 8はBLEに対応しているようですが、このOSを搭載しているモバイル端末のシェアはiOSやAndroidと比較すると極端に小さいので、Windows Phoneは無視してもまったく問題ありません。

過去の記事に書いているとおり、私はAndroidとWindowsが嫌いです。Androidを搭載した端末も機種が増え、Android 4.3以降その性能もかなり向上していることは知っています。iOSのライバルなので、iOSについてググっているとAndroidの最新情報も自然と目に入ってきてしまいます。時代の趨勢で、もはやAndroidを無視するのは難しくなっていることも十分承知しています。嫌でもまたAndroidに関わる時が来るかもしれませんが、Windowsだけにはできたらもう関わりたくないと思っています。手持ちのPCはすべてMacに換えてしまいましたが(本業の仕事用に二世代前のモデルを3台だけ残していますが、Boot Campを利用してMacでWindowsを使うこともできるので、もうWindows PCは全部処分しても問題ないかなぁという気がしています)、本業の仕事では不本意ながらWindowsを使うことがまだ多いです。しかし、できることなら本業の仕事でもWindowsを使うのを止めて、Windows向けのプログラム開発も完全に終わりにしてしまいたいという気持ちが強くなっています。個人的には、Windowsはすでに過去のOSであり、Windowsのために時間を使うことは無駄以外の何者でもないと思っています。エンタープライズ系ではWindowsがまだ大きなシェアを維持しているようですが、現状Webインフラ系ではLinuxが圧倒的なシェアを持っています。動画配信のようなパフォーマンスを重視するサーバーでは、WindowsはLinuxに完敗するからです。このような状況を考えると、極端な意見かもしれませんが、エンタープライズ系以外ではもうWindowsプログラマは不要なんじゃないかという気がしています。PCからモバイル機器への移行が益々加速しているので、プログラマがWindows開発に時間を使う価値は低くなる一方のように思えてなりません。まったく余談ですが、本業関係で私が得た最新情報によると、最近なぜか組込み分野でWindows関連の仕事が急に増えているらしいです。モバイル機器ではさすがにiOSやAndroidに太刀打ちできませんが、据え置き設置型の機器でWindowsやWindows Embeddedを採用するケースが増えているそうです。危機感を持ったMicrosoftがこれらのOSのライセンス価格を下げて、営業攻勢をかけているのかもしれません。

話題が逸れてしまったので、元に戻しましょう。私がBLEとiBeaconに興味持ったのは、AmazonでjQuery Mobileの参考書を探しているときに、たまたま「iBeacon」の本を見つけたことがきっかけです。その後、ググって調べるうちに「iBeacon」がiOS 7に搭載されている標準機能であることを知り、さらに、これがBLE規格に準拠した多数のモジュールと通信することで近距離の位置情報を取得する目的に使われることを知りました。そして、元組込み屋として自然に興味が向かったのは、BLEがどのような規格なのかと、BLEモジュールのハードウェア構成はどうなっているのかいう点です。これらについて調べていくうちに、上のような情報を得ることができました。去年の終わり頃から漠然と頭に描き続けてきたアイデアがあって、それが、組込みとモバイルを融合したガジェット的な物が作れないだろうかだったので、BLEとiBeaconの詳細情報を知ったときに、まさにこの組み合わせがテーマにマッチしているのではないかとピンと来ました。

いまはまだBLEとiBeaconのベーシックな情報を収集している段階で、手始めとして、以下の2つの本を読んでいます。

iBeacon ハンドブック
iBeacon ハンドブック
posted with amazlet at 14.06.28
(2014-03-25)
売り上げランキング: 1,755

Getting Started with Bluetooth Low Energy
Kevin Townsend Carles Cufi Akiba Robert Davidson
Oreilly & Associates Inc
売り上げランキング: 7,366

『iBeacon ハンドブック』はすでに読了し、『Getting Started with Bluetooth Low Energy』の方ももう少しで読み終わります。後者は洋書ですが、BLEとiBeaconの概要情報が良くまとまっているので、英語を読めるなら、この本から読み始めることをお勧めします。『iBeacon ハンドブック』と『Getting Started with Bluetooth Low Energy』に書かれている内容は重複している部分が多く、後者の方が内容的に詳しいので前者は読む必要はないと思います。『Getting Started with Bluetooth Low Energy』の中には、想定読者が「Mobile Application developers」と「Embedded engieers」であると明記されています。BLEモジュールのハードウェアや開発環境の構築方法についても書かれいるので、私のような組込み屋でBLEに取り組みたいと考えているプログラマが最初に読むべき本としては、これが最適ではないかと思います。他にもBLEとiBeacon関連の本がいくつか出版されており、CoreLocation.frameworkによる位置情報プログラミングに焦点を絞っている本もあります。記載内容の有益性を見極めながら、これらの本も読んでいくつもりです。

BLEとiBeaconについて知れば知るほど、この2つが大きな可能性と将来性を持つ技術であることが解ってきました。そして、すでにBLEとiBeaconに取り組んでいる人がたくさんいることも知りました。私もこれらの研究に本気で挑戦することを決意しました。これからは本気モードでやっていくので、当然iBeacon対応アプリも必ず作ります。iOSアプリ開発の再勉強を始めたのは、この決意を固めたからです。iBeaconの開発機材一式を揃えないと何も始められないので、できるだけ早くこの環境を構築するつものです。Macは手持ちの物を使うとして、まずはiBeaconに対応したiOSデバイスを入手しなければなりません。経済的な事情から、iPhone 4SかiPod touch第五世代の中古品を買うつもりです。私がいま使っている携帯電話はウィルコムのPHSガラケーですが、今年の10月からPHS携帯電話のMNPが始まります。MNPを利用して他の携帯キャリアに乗り換えると、最新のiPhone 5s/5cが一括ゼロ円で買えます。MNPを利用して、10月にiPhone 5sを入手しようと目論んでいます。BLEモジュール側の開発環境もできるだけ早く揃えます。来月にでもBLE SoCチップの評価ボードを数種類購入しようと計画を立てています。BLEとiBeaconの研究開発活動は記事としてどんどん公開していきますので、これからご期待ください。

posted by とみやん at 07:57| Comment(0) | TrackBack(0) | 日記
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/100751987

この記事へのトラックバック