经济实惠的 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 模块。
任何类型的电压源 - 电池、移动电源等。这取决于所使用的 ESP32 模块。
(可选)任意颜色的 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 频道寻求支持和提问,或者只是闲逛!欢迎大家!