DigiKey Make ONE Challenge に向けて作っている「ドラゴンレーダー」。UWB(超広帯域無線)で“ドラゴンボール”の方向と距離を探す、あの円い装置の実物化です。今日はついに本物の測距を通すのが目標でした。結論から言うと──通りました。ただしそこに至るまでが、まあ濃かった。
第一幕:沈黙する2BP、ファーム転送の無限ループ
まず親機側(Murata Type2BP / NXP SR150)が測距ストリームを吐かない。ログを覗くと、起動のたびに無線チップへファームを転送する処理が延々ループして、肝心の測距処理にたどり着かない。チップへの問い合わせだけが回り続ける。
CBUSのリセット極性をいくつも試し、最後に効いたのは拍子抜けするほど物理的な一手──USBを全部抜いての完全電源OFF→ON。無線チップのスタック状態がクリアされ、次の瞬間:
(無線チップから測距データの受信ログが連続で流れ出す)
3Mbpsで測距ストリームが流れ出しました。ここで一息。
第二幕:「相手がいない」だけだった
P4(ESP32-P4+丸型LCD)側は配線も受信もOK。なのにレーダーは無反応。原因は単純で、測距の相手=2DKタグがまだ応答していなかったから。親機は「相手なし(FFFF)」を律儀に送り続けていただけでした。整形済みの RADAR,… 行は、有効な測距が成立した瞬間にだけ出る設計。つまり、タグを起こせばいい。
第三幕:タグが、1個、死んでいた
ここが今日いちばんの泥沼。タグ#1にControleeファームを焼く → 無線チップへのファーム転送は完走するのに、その後初期化がタイムアウト(チップが応答しない)で無限リトライ。完全電源サイクルでもダメ。最後に純正factoryファームまで戻して切り分けたところ──factoryでも起動しない。
ブートローダは生きている(FW転送はできる)のに、アプリ段で無線チップが目を覚まさない。これはソフトじゃない、この個体のハード不良。
2個あるタグの片方が、静かに壊れていました。
第四幕:そして、探した
気を取り直してタグ#2へ。同じ手順でControleeを焼いて起動した瞬間:
dragon-radar: tag=1 d=651 mm az=-19 el=5
dragon-radar: tag=1 d=650 mm az=-19 el=4
距離65cm、方位−19°。 机の上の実際の位置そのものでした。タグ → 親機 → 有線 → P4 → 円いレーダー画面の光点(blip)まで、端から端まで一本につながった瞬間です。長かった。

一星球という答え
タグが2個必要なら2個作る、と思っていたドラゴンボール。でも動くタグは1個。そして大会の名は Make “ONE” Challenge。
……一星球(★1個)にしよう、と即決まりました。制約が、いちばんきれいな答えを連れてきた感覚。設計を star=1 に確定して出力。
おまけが本気になった:IMUを入れた
「ついでにIMUも効いてる?」から始まって、結局その場で本実装。BNO086のSHTP/SH-2ドライバを書き、タッチパネルと同じI2Cバスに相乗りさせて方位(heading)を50Hzで取得。UWBの「端末基準の角度」を方位で世界座標に補正することで、端末を回しても光点が実方向に張り付くようにしました。
imu_bno086: heading=-0.7 ok=1 samples=42206
今日の到達点
- 📡 2BP ↔ 2DK 実UWB測距(距離・方位・仰角)
- 🧭 BNO086で方位補正(回しても実方向)
- 🟠 一星球を確定・STL出力
- 🖥 丸型LCDに光点表示
壊れたタグに半日溶かしたけれど、「実際に探せるドラゴンレーダー」がこの手の中で動いています。次は樹脂で一星球を刷って、タグを封じ込める番。
コメントを残す