Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
TO
Uploaded by
Taisuke Oe
7,803 views
BONXを支える技術:Bluetooth編 ~Bluetoothを120%使い倒す方法~
Akerun x BONX勉強会の発表資料です
Software
◦
Read more
4
Save
Share
Embed
Embed presentation
Download
Downloaded 18 times
1
/ 27
2
/ 27
3
/ 27
4
/ 27
5
/ 27
6
/ 27
7
/ 27
8
/ 27
9
/ 27
10
/ 27
11
/ 27
12
/ 27
13
/ 27
14
/ 27
15
/ 27
16
/ 27
17
/ 27
18
/ 27
19
/ 27
20
/ 27
21
/ 27
22
/ 27
23
/ 27
24
/ 27
25
/ 27
26
/ 27
27
/ 27
More Related Content
PDF
Android BLEのつらみを予防するTips
by
Taisuke Oe
PDF
やはりお前らのAndroidのBLEが不安定だという認識は間違っている
by
youten (ようてん)
PDF
Androidとi beacon(ble)
by
Ikunori Yamaguchi
PDF
BLEくびかりぞく
by
youten (ようてん)
PPT
New os
by
Hiroki Ariji
PDF
Linux で SD-WiFi Card を使う
by
Kenichiro MATOHARA
PDF
iOS7でのBluetooth LE活用 @ MOSA Software Meeting 2013
by
akihiro uehara
PDF
Node-REDについて
by
Atsushi Kojo
Android BLEのつらみを予防するTips
by
Taisuke Oe
やはりお前らのAndroidのBLEが不安定だという認識は間違っている
by
youten (ようてん)
Androidとi beacon(ble)
by
Ikunori Yamaguchi
BLEくびかりぞく
by
youten (ようてん)
New os
by
Hiroki Ariji
Linux で SD-WiFi Card を使う
by
Kenichiro MATOHARA
iOS7でのBluetooth LE活用 @ MOSA Software Meeting 2013
by
akihiro uehara
Node-REDについて
by
Atsushi Kojo
Similar to BONXを支える技術:Bluetooth編 ~Bluetoothを120%使い倒す方法~
PPTX
とある小型の青歯規格(ブルートゥース)
by
iPride Co., Ltd.
PDF
Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)
by
akihiro uehara
PPTX
[15分勉強会] Bluetooth 4.2 → 5 でなにが変わったか?
by
ksk sue
PDF
20140922 ble bootcamp
by
akihiro uehara
PDF
Bluetoothl-Low-Energy入門講座-part1
by
edy555
PDF
Beenos creators'night#201307今井
by
Daisuke Imai
PDF
2014年3月8日 スマートフォン勉強会 プレゼン資料
by
akihiro uehara
PDF
iOSアプリ開発者のための Bluetooth Low Energy体験講座
by
akihiro uehara
とある小型の青歯規格(ブルートゥース)
by
iPride Co., Ltd.
Bluetooth LE +スマートフォン勉強会@関西(2013年11月2日)
by
akihiro uehara
[15分勉強会] Bluetooth 4.2 → 5 でなにが変わったか?
by
ksk sue
20140922 ble bootcamp
by
akihiro uehara
Bluetoothl-Low-Energy入門講座-part1
by
edy555
Beenos creators'night#201307今井
by
Daisuke Imai
2014年3月8日 スマートフォン勉強会 プレゼン資料
by
akihiro uehara
iOSアプリ開発者のための Bluetooth Low Energy体験講座
by
akihiro uehara
More from Taisuke Oe
PDF
プレScalaMatsuri2019「スピーカー入門」
by
Taisuke Oe
PDF
How to start functional programming (in Scala): Day1
by
Taisuke Oe
PDF
Monix Taskが便利だという話
by
Taisuke Oe
PDF
How to get along with implicits
by
Taisuke Oe
PDF
What Dotty fixes @ Scala関西サミット
by
Taisuke Oe
PDF
Real World Android Akka - 日本語版
by
Taisuke Oe
PDF
AuxパターンをDottyで解決する
by
Taisuke Oe
PDF
Real World Android Akka
by
Taisuke Oe
PDF
Real world android akka
by
Taisuke Oe
PDF
多相な関数の定義から学ぶ、型クラスデザインパターン
by
Taisuke Oe
プレScalaMatsuri2019「スピーカー入門」
by
Taisuke Oe
How to start functional programming (in Scala): Day1
by
Taisuke Oe
Monix Taskが便利だという話
by
Taisuke Oe
How to get along with implicits
by
Taisuke Oe
What Dotty fixes @ Scala関西サミット
by
Taisuke Oe
Real World Android Akka - 日本語版
by
Taisuke Oe
AuxパターンをDottyで解決する
by
Taisuke Oe
Real World Android Akka
by
Taisuke Oe
Real world android akka
by
Taisuke Oe
多相な関数の定義から学ぶ、型クラスデザインパターン
by
Taisuke Oe
BONXを支える技術:Bluetooth編 ~Bluetoothを120%使い倒す方法~
1.
BONXを支える技術:Bluetooth編 Bluetoothを120%使い倒す方法 麻植泰輔 / Taisuke
Oe Twitter: @OE_uia GitHub: taisukeoe
2.
自己紹介 麻植泰輔 / OE
TAISUKE - ScalaMatsuri co-chair - deeplearning4j/nd4s author BONX - Androidアプリをスクラッチから開発 したり - 中国に飛んでファームを直したり - iOS/Androidプラットフォーム間の 差を吸収する仕様考えたり - Android OSのBLEバグとか機種依 存バグとか戦ったり - 色んなBad Know-Howを日々貯め るお仕事をしています
3.
今日話すこと BONXは、Bluetoothでも ● Bluetooth
Low Energy ● Classic Bluetooth 両方を活用した珍しいサービス です。 今回はBLEの基礎を解説しな がら、このあたりを紐解いてご 紹介します。
4.
BONXとは? 野外の激しい運動中でも 複数の仲間とスムーズに コミュニケーションを取れる サービス
5.
「複数の仲間とスムーズに」? 周囲にいるユーザーの発見 し、ルームに招待して通話を開 始する機能を Bluetooth Low Energy で実現しています
6.
Bluetooth Low Energy?
7.
Bluetooth Low Energy? ●
Bluetoothの規格の一種、Bluetooth 4.0の別称。3.0以前と互換性はない。 ● 最近のiOS, Android端末はだいたい対応している ○ iPhone4S / iOS 6 以上 ○ Android 4.3以上(一部機能は5.0以上かつ、チップセット依存有) ● 省電力、低コストなので、色んなデバイスに備え付けやすい(IoT!) ● 通信距離は場合によるが数m ~ 数十m程度 他にも色々ありますが、今日はBLEについて2つのポイントだけ覚えてください。
8.
Bluetooth Low Energyの2つのフェイズ Scan と Connect
9.
BLE Scan? ●
周囲のBLEデバイスが発信している信 号(Advertise)を発見するプロセス ● BLEの信号の中には様々な情報 (UUID、Local Name, 製造者情報など) が含まれている(Advertise Packet)の で、Scan時にフィルタリングも可能。 ● 見つける側をCentral、見つけられる側 をPeripheral(ペリフェラル)と呼びま す。 Advertise Scan 見つける側 (Central) 見つけられる側 (Peripheral)
10.
BLE ScanでBONXアプリのBLEの信号を見つける ● BONXアプリは、見つける側、見つけら れる側両方の機能がある ●
招待用のUUIDを含むBLEの信号 (Advertise Packet)のみを取得 近くにいるユーザー同士がお互いのデバイ スを発見可能(Scan時点ではお互いが「誰 か」は分からない) BONXユーザー (Central) 他のBONXユーザー (Peripheral) 招待用UUIDを含む Packet
11.
BLE Connect(接続)? ● BLEデバイス同士が接続を確立するプロ セス。 ●
接続される側(GATT Server)の、データ構 造(Characteristic)を通じて、データのや り取りが可能。 ○ Read ○ Write ○ Notification 接続する側 (Central / GATT Client) 接続される側 (Peripheral / GATT Server) 接続
12.
BLE Connectして、ユーザーIDを読み取る ● GATT
ServerとなっているBONXユーザー のユーザーIDを、ユーザーID用 Characteristicから読み取るREAD ユーザーID 読む側 (GATT Client) 読まれる側 (GATT Server)
13.
BLE Connectして、ルームへ招待する ● GATT
Serverの招待用Characteristicに 値を書き込むことで、GATT Serverに招待 したことを通知する WRITE 招待する側 (GATT Client) 招待される側 (GATT Server)
14.
BLE 招待スキームの問題点
15.
AndroidのBLEサポート対応状況が複雑 ● BLE Central(見つける側),
Peripheral(見つけ られる側)両方の機能が必要 ● AndroidでBLE Peripheral機能のサポート状 況が複雑で、かつサポートしている端末が少 ない ○ Android OSでのサポート状況 ○ Android ハードウェアでのサポート状況 Scan 見つける側 (Central) 見つけられる側 (Peripheral) BLE Advertise
16.
Android OSのサポート状況 ● BLE
Central関連APIは4.3以上 ● BLE Peripheral関連API(Advertiseを含む) は5.0以上 Scan 見つける側 (Central) 見つけられる側 (Peripheral) Android 5.0以上しかBLE Peripheral機能をサポートでき ない(2016年4月時点:シェア40.4%) Android ~ 4.4
17.
Scan 見つける側 (Central) 見つけられる側 (Peripheral) Android ハードウェア側のサポート状況 ● Androidで現在使われているBluetoothプロ トコル・スタック
Bluedroidは、Advertiseの APIがBroadcomチップのベンダ独自のHCI コマンド “multiple advertisement”に依存し ている(抽象化の意味…) ● このHCIコマンドに対応した無線チップが搭 載された端末でなければAdvertiseできない ● このHCIコマンドに対応しているかどうかは、 端末スペックから類推できない(!!) Android Broadcomチップ の命令に非準拠 Android 5.0以上で、なおかつBroadcomのHCIコマンド に対応したチップを搭載している端末しかBLE Advertise できない(シェア:40%未満) http://taisukeoe.github.io/blog/2015/12/24/android-ble/ Android ハードウェアのサポート状況
18.
解決策: BONXイヤフォンがAndroid BLEを補完する
19.
BONXイヤフォンが代わりにBLE Advertiseする SPP接続 BLE Advertise Scan BONXイヤフォンと ペアリングしてるAndroid (BLE
Advertise不可) 見つける側 (Central) 見つけられる側 (Peripheral) BONXイヤフォンが搭載しているCSR製Bluetoothモジュール はBluetooth Low Energy(v4.0)とClassic Bluetooth(v3.0以 前)の両方に対応したデュアルチップ
20.
SPP接続BLE接続 見つける側 (Central) 見つけられる側 (Peripheral) BONXイヤフォンはBluetooth デュアルチップを搭載している ため、ペアリング中のAndroid端末とのSPP接続と、「見つける 側」の端末とのBLE接続を同時にできる BONXイヤフォンと ペアリングしてるAndroid (BLE Advertise不可) BONXイヤフォンはBLEとSPPを橋渡しする
21.
BONXイヤフォンはBLEとSPPを橋渡しする SPP接続 ユーザーID READ ユーザーID BLE接続 BONXイヤフォンと ペアリングしてるAndroid (BLE Advertise不可) ペアリング中のAndroid端末からSPP経由でユーザーIDを書 き込むと、BONXイヤフォンのユーザーID用Characteristicに 格納されるため、「読む側(GATT Client)」は何も意識せず ユーザーIDを取得できる 読む側 (GATT
Client) 読まれる側 (GATT Server)
22.
BONXイヤフォンはBLEとSPPを橋渡しする SPP接続BLE接続 BONXイヤフォンと ペアリングしてるAndroid (BLE Advertise不可) 招待する際も同様に、BONXイヤフォンの招待用 Characteristicへの書き込みを検知したら、ペアリング中の Android端末にSPP経由で同じ値を書き込むため、「招待する 側(GATT Client)」は何も意識しなくてよい WRITE
WRITE 招待する側 (GATT Client) 招待される側 (GATT Server)
23.
BONXイヤフォンの通話中の各種機能 BONXイヤフォンと ペアリングしてる端末 BONXイヤフォンのボタン機能もBLE(iOSの場合)ないしはSPP (Androidの場合)で実現している。 通話開始時にはこれらのプロファイルでのBluetooth接続に加 えて、HFPで接続し音声データを送受信する VOICE SERVER HFP(音声通話) SPP(ボタン機能) BLE(ボタン機能) VOICE SERVER
24.
BONXを支える技術: Bluetooth編 まとめ iOS
Android BONXイヤフォン BLE 周囲のユーザー発見 招待の通知 BONXイヤフォンのボタ ン機能 周囲のユーザー発見 招待の通知 他のユーザーに発見・招待し てもらう(一部のAndroid向け) ボタン機能(iOS向け) Classic BT SPP 使用しない BONXイヤフォンのBLE Advertise状態及びデータ の制御 BONXイヤフォンのボタン 機能 AndroidからのBLE Advertise 制御への応答 ボタン機能(Android向け) HFP 音声通話 電話着信応答 音声通話 電話着信応答 音声通話 電話着信応答 種々のBluetoothプロファイルを あらゆる場面で使い倒しています!
25.
Futher Reading... BLEについてもっと知りたい人は 堤修一さん(BONXのiOSのBLE招待フローの原案者)、松 村礼央さん共著の 「iOSxBLE Core
Bluetoothプログラミング」 を読みましょう! http://www.amazon.co.jp/dp/4883379736
26.
We are hiring! BONXサービスを提供しているチケイ株式会社で は、ソフトウェアエンジニアを大募集しています! ●
Androidエンジニア (Bluetoothアレコレ,VOIP, Netty, ReactiveX, Scala...) ● iOSエンジニア (Bluetoothアレコレ,Core Audio, VOIP, Swift...) ● サーバーエンジニア(Go lang, Ruby, AWS….) 興味ある方は、お気軽にお声がけください
27.
ご静聴ありがとうございました。 ご質問は懇親会で!
Download