Доступное решение для отслеживания времени гонки с одним узлом FPV
Если вам нравится этот проект, вы можете поддержать его, внося свой вклад в кодовую базу, тестируя и оставляя отзывы, делясь новыми идеями и помогая распространять Евангелие PhobosLT. Вы также можете купить мне пузырьковый чай или пиво, это подтолкнет меня к улучшению проекта!
Phobos LapTimer (или PhobosLT) — это простое, но мощное решение для измерения времени прохождения круга для пилотов FPV на частоте 5,8 ГГц. Он предназначен для личного использования и рассчитан на небольшие дроны (2 дюйма или меньше), но нет ничего против использования его с более крупными дронами! Это небольшое автономное устройство с автономным питанием, которое обменивается данными через Wi-Fi с телефоном, планшетом или ноутбуком. Цель проекта — создать простое в использовании и небольшое устройство, которое можно будет использовать где угодно, когда бы вы ни захотели без суеты провести тренировку в гонках в своей гостиной или на местном тренировочном объекте с друзьями. Части кода основаны на RotorHazard и ExpressLRS. Огромное спасибо людям, стоящим за этими организациями, они МНОГО делают для сообщества и формируют будущее FPV. Если вы еще не знакомы с этими проектами и у вас есть время, обязательно ознакомьтесь с ними!
ФобосЛТ имеет следующие особенности:
Синхронизация одного узла аналоговых систем 5,8 ГГц, HDZero, Walksnail.
Голосовые вызовы, опционально включая имя пилота.
Считывание и калибровка RSSI в реальном времени - позволяет измерять время даже в небольших помещениях, таких как комната площадью 16 м^2 или 200 футов^2.
Время 2 кругов подряд и 3 круга подряд, а также дополнительные показания на лету (специально разработано для RaceGOW).
Просмотр истории кругов.
Возможность установить минимальное измеримое время круга, чтобы избежать ложных срабатываний.
Настраиваемая сигнализация низкого напряжения.
Небольшой размер, легко построить.
Относительно дешево.
Никаких дополнительных приложений не требуется, самодостаточное решение.
Планы дальнейшего развития:
Прошивка через WiFi или через веб-конфигуратор.
Специальное оборудование для минимизации пайки.
Интеграция с ExpressLRS и Goggle VRX для передачи времени прохождения круга в экранное меню.
Интеграция с RotorHazard для измерения времени разделения.
Поддержка нескольких пилотов одновременно за счет снижения точности.
Ядро проекта — плата ESP32 + модуль RX5808. ESP действует как веб-сервер, который обслуживает простую веб-страницу со всеми конфигурациями. Любое устройство с подключением Wi-Fi и веб-браузером можно использовать для подключения к нему, настройки таймера и измерения времени прохождения круга.
Определение времени круга происходит путем измерения RSSI с течением времени, его фильтрации и проверки пиков RSSI, поскольку чем ближе дрон к таймеру, тем выше RSSI. На основании этого мы устанавливаем пороговые значения Enter RSSI
и Exit RSSI
, которые сообщают нам, когда следует срезать пик. Время между входом и выходом RSSI затем используется для измерения времени между последним пиком и текущим пиком, который представляет собой круг.
Общение с клиентом происходит через Wi-Fi. ESP32 устанавливает точку доступа, и клиент подключается к ней. RSSI передается через веб-сокет для построения графика RSSI в реальном времени. Конфигурация, взаимодействие с пользователем и события (например, запуск таймера, остановка, отчет о времени круга) выполняются с помощью вызовов отдыха.
Браузер используется для воспроизведения звуков или определения времени круга с использованием библиотеки article.js, но к таймеру можно установить дополнительный (но рекомендуемый) звуковой сигнал, который также будет издавать звук каждый раз при обнаружении пика или предупреждать, например, когда таймер напряжение аккумулятора низкое.
Для сборки Phobos LapTimer вам понадобится:
Коммутационная плата ESP32, желательно с USB. Кодовая база работает по принципу «подключи и работай» с LilyGo T-ENERGY
, которая имеет встроенный слот для литий-ионных аккумуляторов 1 с 18650 и схему измерения напряжения «из коробки». Поддерживаемые платы:
LilyGo T-ENERGY – рекомендуется.
LilyGo T-CELL — дороже предыдущего, но имеет схему зарядки.
ESP32-DevKit — простой, но дешевый.
Модуль RX5808 VRx с модом SPI.
Любой источник напряжения — батарея, блок питания и т. д. Это будет зависеть от используемого модуля ESP32.
(Необязательно) Светодиод любого цвета (+ согласующий резистор для управления током).
(Необязательно) Зуммер от 3 до 3–5 В С генератором (активным, а не пассивным).
Чтобы подключить RX5808 к ESP32, используйте таблицу распиновки ниже. Обратите внимание, что контакт +5 В на RX5808 должен быть подключен к источнику 3v3, чтобы снизить напряжение RX5808, чтобы получить лучшее разрешение RSSI и помочь с охлаждением:
ПИН-код ESP32 | RX5880 |
---|---|
33 | РССИ |
Земля | Земля |
19 | CH1 |
22 | CH2 |
23 | CH3 |
3V3 | +5В |
Необязательная, но рекомендуемая распиновка входа напряжения светодиода, зуммера и аккумулятора:
ПИН-код ESP32 | Периферийное устройство |
---|---|
21 | Светодиодный анод (+) |
27 | Зуммер положительный (+) |
35 | Вход VBAT МАКС. 3,3 В (код предполагает делитель напряжения 1/2 с литий-ионным элементом 1 с) |
Схему подключения периферийных устройств вы можете найти ниже. Для T-Energy и T-Cell вам просто нужно подключить RX5808 и зуммер.
Альтернативно вы можете попросить сообщество создать для вас таймер. Поспрашивайте в дискорде!
В настоящее время сборка прошивки происходит с помощью Visual Studio Code. Настройка набора инструментов точно такая же, как и для ExpressLRS, поэтому, если у вас уже настроен и работает набор инструментов ExpressLRS, у вас все будет хорошо. Требования для сборки прошивки следующие:
Код Visual Studio.
ПлатформаIO.
Гит.
Выполните следующие шаги, чтобы настроить набор инструментов на вашем компьютере:
Загрузите и установите vscode.
Откройте vscode и щелкните значок Extensions
на панели инструментов справа (см. «Управление расширениями»).
В поле поиска введите «platformio» и установите расширение (см. документацию pio install
).
Установите гит.
Последний шаг перед сборкой прошивки — клонировать этот репозиторий на свой компьютер:
В VSCode откройте палитру команд (используя Cmd+Shift+P
в MacOS или Ctrl+Shift+P
в Windows).
Введите Git: Clone
.
Нажмите на него.
Затем введите URL-адрес репозитория PhobosLT (его можно найти в верхней части страницы 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 из порлока
В этом разделе будет описано использование и настройка таймера. Приложение состоит из 3 страниц и очень простое в использовании!
Включите таймер, вы должны услышать короткий и длинный звуковой сигнал.
Включите устройство и включите Wi-Fi.
Подождите, пока он обнаружит точку доступа Wi-Fi, начинающуюся с PhobosLT_xxxx
.
Нажмите на него и введите пароль: phoboslt
.
Он должен подключиться и открыть окно браузера с приложением. Если этого не происходит, откройте браузер и введите 20.0.0.1
.
Вуаля!
Для настройки таймера необходимо нажать на кнопку Configuration
. Вас должен встретить экран, подобный этому:
Ниже вы можете найти все параметры конфига и их описание:
Канал и диапазон — установите тот же диапазон и канал, что и у вашего дрона. Поддерживаемые диапазоны — A, B, E, Fatshark, RaceBand и LowBand, по 8 каналов каждый. Частота — это статическое поле, в котором будет отображаться частота на основе установленных диапазона и канала. Минимальное время круга — вы можете установить минимальное время круга, которое можно замерить. Это позволяет избежать ложных срабатываний, когда вы врезаетесь в стартовые ворота или когда ваша трасса очень узкая и вы несколько раз пролетаете в непосредственной близости от таймера в течение одного круга. Пороговое значение напряжения батареи — устанавливает сигнал тревоги напряжения батареи, который сработает при достижении желаемого напряжения. Диапазон составляет 2,5-4,2 В. Тип диктора — у вас есть несколько вариантов того, как таймер сообщит время прохождения круга:
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, чтобы получить поддержку, задать вопросы или просто пообщаться! Добро пожаловать!