1. 本記事の目標
2. 準備物
- セットアップ用PC (ここでは今回使用したものを記載)
- Panasonic社 Let's note CF-SV1 (Windows 11)
- 制御用マイコン
- Nordic Semiconductor社 nRF52840 DK 1台
- nRF52840を手軽に動かすためのキット
- Nordic Semiconductor社 nRF52840 DK 1台
- UWB信号受信デバイス
- Qorvo社 DWM3000EVB 1台
- DWM3000を手軽に動かすためのキット
- Qorvo社 DWM3000EVB 1台
- アクセサリ
- ケーブル (MicroUSB <-> USB Type-A) 2本
- USB Type-A ハブ 1つ
- PC上のソフトウェア (インストール手順も含めて後述します)
-
Segger Embedded Studio (SES) for ARM V6.20
- nRF52840にプログラムを書き込むための統合開発環境
-
DWM3000 API Software and API Guide
- UWB送受信デバイスをnRF52840で動作させるためのサンプルプログラム
-
nRF52840のSoftware Development Kit (SDK)
- nRF52840でサンプルプログラムを動かすときに必要となるプログラム一式
- Tera Term
- 画面を持たないnRF52840に仮想的な画面を用意して動作確認を行う
-
Segger Embedded Studio (SES) for ARM V6.20
3. 各種デバイスのセットアップ
- 詳しくはこちら: DWM3000EVBを用いたUWB位置測位① ~セットアップ編~
4. デモプロジェクトのパラメータの変更
-
パラメータを変更するファイルは以下のパスから
- 変更するファイルは"default_config.h"
- DW3xxx_QM33_XR6.0C\DW3xxx_XR6.0C_24Feb2022\Release_XR6.0C\Software\Slotted_TWR_Demo_ARM\nRF52840_DK\Sources\twr_demo\twr_demo\NRF_Juniper\twr_demo\Src\config\default_config\config.h
-
デフォルトだとDW3000が受信するパケット構成がAirTagが発するUWBパケットの構成と異なるため,一致させる必要がある
-
#define DEFAULT_STS_MODEのパラメータを"DWT_STS_MODE_ND"に変更
- UWBパケットにはpayloadが含まれておらず,ND:No Dataに変更する必要があった
- パラメータの選択肢は次の4つ
- DWT_STS_MODE_1
- DWT_STS_MODE_2
- DWT_STS_MODE_SDC
- DWT_STS_MODE_ND
- DWT_STS_MODE_OFF
-
#difne DEFAULT_PCODEのパラメータを"11"に変更
- PCODEはUWBパケットの"STS"fieldsで生成される疑似乱数のことだと考えられる.
- 9または11が選択可能
-
DEFAULT_SFDTOを128+1+8-8に変更
- 64+1+8-8だとパケットを受信する前にタイムアウトになり,エラーパケットが多く表示されてしまうから
- 変更しなくてもよい
5. nRF52840にデモプログラムを書き込む
6. AirTagのUWB信号を受信
- nRF52840とPCを接続
- Tera Term上で"listener"と入力
- こちらの記事(DWM3000EVBを用いたUWB位置測位② ~PCデモ編~)の8.を参照
- 傍受の準備完了
- iPhoneのアプリ「探す」からAirTagを探す
- 下のような画面になる
7. 参考文献
- Dieter Coppens, Adnan Shahid, Sam Lemey, Ben Van
Herbruggen, Chris Marshall, and Eli De Poorter, "An Overview of UWB Standards and
Organizations (IEEE 802.15.4, FiRa,
Apple): Interoperability Aspects and
Future Research Directions," IEEE Access, vol. 10, pp. 1-23, 2022.