經濟實惠的 FPV 單節點競賽計時解決方案
如果您喜歡這個項目,您可以透過貢獻程式碼庫、測試和提供回饋、分享新想法以及幫助傳播 PhobosLT 福音來支持它。你也可以考慮買一杯珍珠奶茶或啤酒,這會激勵我把專案做得更好!
Phobos LapTimer(或 PhobosLT)是一款簡單但功能強大的單圈計時解決方案,適用於 5.8GHz FPV 飛行員。它專為個人使用而設計,並考慮到小型無人機(2 英寸或更小),但沒有什麼反對使用更大的無人機來運行它!它是一款小型獨立設備,可自供電並透過 WiFi 與手機、平板電腦或筆記型電腦進行通訊。該專案的目標是擁有一個易於使用的小型設備,當您想在客廳或當地的訓練場地與朋友輕鬆進行百日咳比賽練習時,可以在任何地方使用。部分程式碼基於 RotorHazard 和 ExpressLRS。向這些組織背後的人們致敬,他們為社區做了很多事情,並正在塑造 FPV 的未來。如果您還不知道這些項目並且有時間,請檢查一下!
PhobosLT 有以下特點:
5.8GHz Analog、HDZero、Walksnail 系統的單節點計時。
語音標註,可選擇包含飛行員姓名。
即時 RSSI 讀數和校正 - 即使在 16m^2 或 200 ft^2 房間等狹小空間內也能進行計時。
連續 2 圈和連續 3 圈時間以及可選的動態讀數(專為 RaceGOW 開發)。
可查看單圈歷史記錄。
能夠設定最小可測量單圈時間以避免誤報。
可配置的低電壓警報。
體積小,易於搭建。
相對便宜。
無需額外的應用程序,自給自足的解決方案。
未來發展計畫:
透過 WiFi 或透過網路配置器閃爍。
客製化硬體以最大限度地減少焊接。
與 ExpressLRS 和護目鏡 VRX 集成,將單圈時間轉送到 OSD。
與 RotorHazard 整合以測量分段時間。
同時支援多個飛行員,但代價是精準度較低。
此專案的核心是ESP32板+RX5808模組。 ESP 可作為 Web 伺服器,提供包含所有設定的簡單網頁。任何具有 WiFi 連線和網路瀏覽器的裝置都可用於連線、設定計時器並測量單圈時間。
單圈計時是透過測量一段時間內的 RSSI、對其進行過濾並檢查 RSSI 的峰值來進行的,因為無人機距離計時器越近,RSSI 就越高。在此基礎上,我們設定了Enter RSSI
和Exit RSSI
閾值,告訴我們何時削減峰值。然後使用進入和退出 RSSI 之間的時間來測量最後一個峰值和當前峰值之間的時間,即一圈。
與客戶端的通訊透過 WiFi 進行。 ESP32 設定一個存取點,用戶端連接到該存取點。 RSSI透過websocket傳輸,即時繪製RSSI圖。配置、使用者互動和事件(例如啟動計時器、停止、報告單圈時間)都是使用休息呼叫完成的。
利用瀏覽器發出聲音或使用enchant.js 庫發出單圈時間,但可以在計時器上安裝一個可選(但建議)蜂鳴器,以便在每次檢測到峰值時發出聲音,或者在計時器到達時發出警報電池電壓低。
要建造 Phobos LapTimer,您需要:
ESP32 分線板,最好有 USB。程式碼庫可與LilyGo T-ENERGY
即插即用,它具有內建的 1s 18650 鋰離子電池插槽和開箱即用的電壓感應電路。支援的闆卡:
LilyGo T-ENERGY - 推薦。
LilyGo T-CELL - 比上面的貴,但有充電電路。
ESP32-DevKit - 簡單但便宜。
帶有 SPI 模組的 RX5808 VRx 模組。
任何類型的電壓源 - 電池、行動電源等。
(可選)任意顏色的 LED(+ 一個用於管理電流的匹配電阻)。
(可選)帶有發生器的 3v3 至 5v 蜂鳴器(因此是主動而非被動)。
若要將 RX5808 連接到 ESP32,請使用下面的引腳分配表。請注意,RX5808 上的 +5v 引腳應連接到 3v3 電源,以使 RX5808 降壓,以獲得更好的 RSSI 解析度並幫助冷卻:
ESP32 腳 | RX5880 |
---|---|
33 | 接收訊號強度指數 |
接地 | 接地 |
19 號 | 頻道1 |
22 | 甲烷 |
23 | 甲烷 |
3V3 | +5V |
可選但建議的 LED、蜂鳴器和電池電壓輸入引腳排列:
ESP32 腳 | 週邊 |
---|---|
21 | LED陽極(+) |
27 | 蜂鳴器正極(+) |
35 | VBAT 輸入最大 3.3v(代碼假設 1/2 分壓器和 1s 鋰離子電池) |
您可以在下面找到外圍設備的連接圖。對於 T-Energy 和 T-Cell,您只需連接 RX5808 和蜂鳴器。
或者,您可以要求社區為您建造一個計時器。四處詢問不和諧!
目前建置韌體是透過 Visual Studio Code 進行的。工具鏈設定與 ExpressLRS 完全相同,因此如果您已經設定並運行 ExpressLRS 工具鏈,那麼應該沒問題。建置韌體的要求如下:
Visual Studio 程式碼。
平台IO。
吉特。
執行以下步驟在您的電腦上設定工具鏈:
下載並安裝 vscode。
打開 vscode,然後點擊右側工具列中的Extensions
圖示(請參閱管理擴充功能)。
在搜尋框中,輸入 platformio,然後安裝擴充功能(請參閱pio install
文件)。
安裝 git。
建立韌體之前的最後一步是將這個儲存庫克隆到您的電腦:
在 VSCode 中開啟指令面板(在 MacOS 上使用Cmd+Shift+P
或在 Windows 上使用Ctrl+Shift+P
)
輸入Git: Clone
。
單擊它。
然後,輸入 PhobosLT 儲存庫 URL(可以在 github 頁面頂部的Clone
按鈕下找到)。
選擇您希望儲存庫副本所在的資料夾。
若要建立韌體,請按一下左側工具列中的PlatformIO
圖標,該圖示將顯示任務清單。現在,選擇Project Tasks
,展開PhobosLT
-> General
並選擇Build
。幾秒鐘後您應該會在終端中看到結果( Success
)。
在嘗試刷寫之前,請確保 ESP32 和電腦之間已透過 USB 連接。閃爍是一個兩步驟過程。首先我們需要刷寫固件,然後將靜態檔案系統鏡像刷寫到 ESP32。
若要刷新韌體,請按一下左側工具列中的PlatformIO
圖標,該圖示將顯示任務清單。現在,選擇Project Tasks
,展開PhobosLT
-> General
並選擇Upload
。您應該在終端機中看到結果( Success
)。接下來,轉到步驟 2。
選擇Project Tasks
,展開PhobosLT
-> Platform
並選擇Upload Filesystem Image
。等待終端顯示Success
。就是這樣!您的計時器已準備好使用。
如果出現問題 - 請也檢查終端。它將至少包含問題所在的提示。請向社區請求有關不和諧的進一步幫助!
ESP-WROOM-32 外殼,由 porlock 設計
本節將介紹定時器的使用與配置。該應用程式由 3 個頁面組成,非常易於使用!
打開計時器,您應該會聽到短促和長促的蜂鳴聲。
打開您的裝置並開啟 WiFi。
等待它發現以PhobosLT_xxxx
開頭的 WiFi 存取點。
點擊它並輸入密碼: phoboslt
。
它應該連接並打開帶有該應用程式的瀏覽器視窗。如果沒有發生,請開啟瀏覽器並輸入20.0.0.1
。
瞧!
要配置計時器,您需要點擊Configuration
按鈕。您應該會看到類似這樣的畫面:
您可以在下面找到所有配置參數及其說明:
頻道和頻段- 設定為與無人機相同的頻段和頻道。支援的頻段 - A、B、E、Fatshark、RaceBand 和 LowBand,各 8 個通道。頻率- 這是一個靜態字段,將根據設定的頻段和頻道顯示頻率。最短單圈時間- 您可以設定可計時的最短單圈時間。當您在起跑門發生碰撞時,或者當您的賽道非常緊並且您在一圈內多次飛近計時器時,這可以避免誤報。電池電壓警報閾值- 設定電池電壓警報,一旦達到所需電壓就會觸發。範圍在2.5-4.2v之間。播音員類型- 對於如何讓計時器報告單圈時間,您有幾個選擇:
None
是完全沒有聲音的。
Beep
只會在穿越時發出短暫的蜂鳴聲,讓您知道它記錄了一圈。
Lap Time
將宣佈單圈時間(如果填寫了飛行員姓名字段,則包括您的飛行員姓名)。
Two Consecutive Lap Time
將公佈連續兩圈的時間。
Three Consecutive Lap Time
將公佈連續三圈的時間。
播音員速率- 控製播音員讀取單圈時間的速度。飛行員姓名- 填寫後,讀取時間時將包括飛行員姓名,例如Pilot1 23.45
。當多個計時器同時運作時,這項功能非常有用。單獨練習時,請將其留空。
注意:配置完成後,請確保透過點選Save Configuration
按鈕儲存配置,否則變更將不會生效。
校準是一個非常重要的步驟,需要正確完成,以確保計時正確,並且計時器會計算每一圈。
若要執行校準,請按一下Calibration
按鈕。您應該會看到兩個滑桿和一個表示隨時間變化的 RSSI 的圖表。您可以將 RSSI 視為無人機與計時器之間距離的倒數。 RSSI 越高,距離越短。
節點可以是Crossing
或Clear
。如果節點處於Clear
,則計時器認為無人機不在計時器附近,因為 RSSI 較低。如果是Crossing
,則計時器認為無人機正在經過計時器,因為 RSSI 很高。一旦Crossing
完成且 RSSI 返回到Clear
區域,將記錄一圈通過情況。我們透過設定Enter
和Exit
RSSI 閾值來校準。
當無人機最接近計時器時,一個經過良好校準的計時器將顯示當我們只有一次穿越時的單圈時間,例如:
Crossing
將始終標記為深綠色,而Clear
將標記為藍色。
若要為Enter
和Exit
RSSI 提供良好的初始值,請執行以下步驟:
打開定時器和無人機,將其設定為所需的 VTx 功率,等待 30 秒讓 VTx 達到其運行溫度。
將無人機放置在計時器上方略多於一扇門的距離。
注意 RSSI,扣除 2-5 點以確保安全 - 這應該是您的Enter RSSI
。
再扣除 8-10 點,並將其設定為您的Exit RSSI
。
點選Save RSSI Thresholds
- 否則變更將不會生效。
當與其他飛行員一起飛行時,RSSI 讀數可能會較低,因為相鄰通道上的其他 VTx 會產生所有噪音。一個好的做法是在與其他飛行員一起飛行時將兩個閾值降低幾個點。
比賽畫面將允許您開始或停止比賽並查看和清除您的單圈時間。點擊Race
按鈕後,螢幕將更改為:
按鈕功能:
Start Race
- 單擊它開始倒數計時,並向計時器發出信號開始計算圈數。
Stop Race
- 當您想停止計算新圈數時按下它。它並沒有清除迄今為止收集的圈數。
Clear Laps
- 清除螢幕上的圈數,也可以在比賽進行時完成。
一旦您跑了幾圈,螢幕上就會顯示單圈時間:
加入我們的 Discord 頻道尋求支持和提問,或只是閒逛!歡迎大家!