760 Views
January 25, 25
スライド概要
美濃加茂.Swiftで登壇した資料です。
Nearby Interaction入門する際に役立つ資料となってます。
Nearby Interaction入門 ~距離測定から方向測定~ 2025.01.25 minokamo.swift oka yuji
自己紹介 • @oka̲yuji • 岡 優志
概要 • 今日発表するものはNearby Interactionというフレームワークを使用すると 距離や方向の測定ができるよという話 • どのようにして距離や方位を測定しているのか 〜 基本的な実装の話
概要 • このトークで得られること! 1. Nearby Interactionとは 2. UWBとは 3. 基本的な実装手順
Nearby Interaction とは https://developer.apple.com/documentation/nearbyinteraction/ • UWBチップを搭載したiPhoneやApple Watch、サードパーティ製のデバ イスと通信してインタラクティブに距離や方向の情報をやりとりできる • 使用例には主に測距により、ユーザーが操作しなくても体験できるような事 例が紹介されている
対応デバイスやバージョン • 2025年1月現在 対応OS デバイス バージョン iOS iPhone 11 〜(15 〜 EDMの使用が可能) ※SEは現在対応なし 14.0 〜 watchOS Apple Watch Ultra Apple Watchシリーズ 6以降 8.0 〜 • サードパーティ製 • NXP Semiconductors • Qorvo
Nearby Interaction とは • UWBチップ(超広域帯無線)を搭載したデバイスと 通信してインタラクティブに距離や方向を取ることができるフレームワーク。
UWBにおける位置測位 • 測距はToF → 信号が送信されてから受信されるまでの時間差(Time of Flight)を基に 算出する。
UWBにおける位置測位 • 方位はAoA UWB信号が複数のアンテナに到達する時間差や位相差(フェーズ差)を利用 し、それぞれのアンテナに信号が到達するタイミングの差を基に到来方向 (Angle of Arrival)を推定する。 https://article.murata.com/ja-jp/article/what-is-uwb-wirelesscommunication
UWBにおける位置測位 • 村田製作所:https://article.murata.com/ja-jp/article/what-is-uwbwireless-communication https://article.murata.com/ja-jp/article/what-is-uwb-wireless-communication
実装について まずはパーミッションの設定をしてね
実装について 1. NISessionのインスタンスを作成 2. discoveryTokenの交換 3. NINearbyPeerCon gurationの設定 4. セッションの開始 fi 5. セッションデリゲートで距離と方向を受け取る
実装について デバイスA デバイスB NISession作成 discoveryToken取得 discoveryToken交換 NINearbyPeerCon guration設定 セッション開始 fi データの送受信
1. NISessionのインスタンスを作成
2. discoveryTokenの交換 discoveryTokenの交換方法について以下の方法がある ・Core Bluetooth ・Multipeer Connectivity ・Watch Connectivity ・自前のサーバー
2. discoveryTokenの交換 ・discoveryTokenを取得
3. NINearbyPeerConfigurationの設定
4. セッションの開始
5. セッションデリゲートで距離と方向を受け取る
実装について あとは適当なViewを作って distance を表示すればデバイス間の距離を測距す ることができる!
Challenge!!
Sample Code https://github.com/oka-yuji/NearbyInteractionSampler
まとめ • Nearby Interactionとは? → UWBチップを搭載したデバイスと通信してインタラクティブに距離や方向を取る ことができるフレームワーク • UWBとは? → 超広域帯無線でデバイス間の距離や方向の情報をインタラクティブにやり取りでき る • 実装方法は? → NISessionのインスタンスを作成から役5ステップで実装できるが、トークンの交 換方法に Core Bluetooth、Multipeer Connectivity、Watch Connectivity、 サーバー(自 前)があるが公式のサンプルプロジェクトが豊富なので参考に!
参考記事など • https://developer.apple.com/jp/nearby-interaction/ • https://developer.apple.com/documentation/nearbyinteraction/ • https://article.murata.com/ja-jp/article/what-is-uwb-wirelesscommunication • https://developer.apple.com/jp/videos/play/wwdc2020/10668/ • https://developer.apple.com/jp/videos/play/wwdc2021/10245/ • https://developer.apple.com/jp/videos/play/wwdc2021/10165/ • https://developer.apple.com/jp/videos/play/wwdc2022/10008/
ご清聴ありがとうございました!