10
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ESP32-C3開発キットで、ぼっちFTM

Posted at

IEEE802.11mcとは

IEEE802.11mcは、2016年に追加されたIEEE802.11規格であり、Wi-Fiを用いてFTM(File Timing Measurement)ベースの距離測位を行うための規格となっています。
これにより、アクセスポイント(AP)とステーション(STA)間のToF(Time of Flight)の測定が可能になります。

仕組み(フロー)は下図の通り、イニシエータからレスポンダにFTM要求フレームを送信すると、レスポンダは、時刻t1にFTMフレームを送信します。イニシエータをそのフレームを受信した時刻をt2とします。その後、時刻t3にACKを返すと、レスポンダ側での受信がt4となります。
ここで、ラウンドトリップタイム(RTT)は (t4-t1)-(t3-t2)、距離は、光の速度をcとするとRTT x c / 2で求められます。
image.png

FTMをESP32-C3開発キットで体験

このFTMですが、AndroidではAndroid 9 Pieから実装されており、Google Nest Wi-FiとGoogle Pixelの組み合わせでWi-Fi RTT測位ができるようになっています。
が、ここでは、お安く、体験するためESP32-C3開発キットで試してみることにします。

ESP32-S2, S3, C3といくつかシリーズがありますが、こちらも見つつ、(Sigfoxやっていた身としては)低消費電力が好きなので、C3にしました。
あと、本家的には、ESP32-C3-DevKitC-02という開発ボードがあるものの、Micro-USBということのようなので、USB-Cが使えるSeeed Studio XIAO ESP32C3を選択しました。

Arduino IDEの設定

まずは、ESP32系のボードを使った開発をするために、Arduino IDEのPreferencesのAdditional boards manager URLsに下記URLを追加します。
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json
image.png

ToolメニューのBoard managerを選択し、esp32 by Espressif Systemsをインストールします。
image.png

ToolメニューのBoardsにesp32が追加されていますので、その中から、XIAO_ESP32C3を選択します。ちなみに、ESP32-C3-DevKitC-02を購入された場合は、ESP32C3 Dev Moduleを選ぶことになると思います。
image.png

これでArduino IDEの設定は完了しました。
次に、2台の開発ボードを繋げます。一方がResponder、もう一方がInitiatorになります。
image.png

サンプルコードを動かす

FileメニューのExamplesからWiFi->FTMを選択していくと、FTM_InitiatorとFTM_Responderの2種類のサンプルが見つかりますので、2台用意したそれぞれのボードに対し、InitiatorとResponderのサンプルを書き込みます。
image.png

Responderを先に起動し、その後、Initiatorを起動すると、下記のように、想定距離と時間がシリアルモニタで確認できます。

...................
WiFi Connected
Initiating FTM session with Frame Count 16 and Burst Period 200 ms
FTM Estimate: Distance: 36.15 m, Return Time: 241 ns
FTM Estimate: Distance: 36.15 m, Return Time: 241 ns
FTM Estimate: Distance: 32.70 m, Return Time: 218 ns
FTM Estimate: Distance: 34.50 m, Return Time: 230 ns
FTM Estimate: Distance: 34.80 m, Return Time: 232 ns

念のため確かめておきます。
Distance:34.50mの場合、光速を299792458m/s(約30万 km/s)とすると、230nsのReturn Timeの場合、68.95mの往復距離。その半分のDistanceは34.476...m。大体34.5mで合ってますね。

この要領で、複数のResponderとの時間差を求めることで3点測位ができるようになります。
image.png

esp-idf
FTM Error: CONF_REJECTED

10
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?