Solução acessível de tempo de corrida de nó único FPV
Se você gosta deste projeto, você pode apoiá-lo contribuindo com a base de código, testando e dando feedback, compartilhando novas ideias e ajudando a espalhar o evangelho PhobosLT. Você também pode considerar comprar um chá de bolhas ou uma cerveja para mim, isso me dará combustível para tornar o projeto melhor!
Phobos LapTimer (ou PhobosLT) é uma solução simples, mas poderosa, de tempo de volta para pilotos FPV de 5,8 GHz. Ele foi projetado para uso pessoal e pensando em drones pequenos (2 polegadas ou menos), mas não há nada contra executá-lo com drones maiores! É um pequeno dispositivo autônomo com alimentação própria e que se comunica por WiFi com um telefone, tablet ou laptop. O objetivo do projeto é ter um dispositivo pequeno e simples de usar que possa ser usado em qualquer lugar sempre que você quiser fazer uma sessão de treino de corrida na sua sala de estar ou em um local de treinamento local com amigos sem complicações. Partes do código são baseadas em RotorHazard e ExpressLRS. Muitos parabéns às pessoas por trás dessas organizações, elas estão fazendo MUITO pela comunidade e moldando o futuro do FPV. Se você ainda não conhece esses projetos e tem tempo, dê uma olhada!
PhobosLT possui os seguintes recursos:
Temporização de nó único de sistemas analógicos de 5,8 GHz, HDZero e Walksnail.
Chamadas de voz, incluindo opcionalmente o nome do piloto.
Leitura e calibração RSSI em tempo real - permite a cronometragem mesmo em espaços pequenos, como uma sala de 16m^2 ou 200 pés^2.
2 voltas consecutivas e 3 voltas consecutivas e leituras opcionais em tempo real (especialmente desenvolvidas para RaceGOW).
Histórico de voltas visível.
Capacidade de definir um tempo de volta mínimo mensurável para evitar falsos positivos.
Alarme de baixa tensão configurável.
Tamanho pequeno, fácil de construir.
Relativamente barato.
Não são necessários aplicativos extras, solução autossuficiente.
Planos de desenvolvimento futuro:
Piscando via WiFi ou via configurador web.
Hardware personalizado para minimizar a soldagem.
Integração com ExpressLRS e goggle VRXs para encaminhar tempos de volta para o OSD.
Integração com RotorHazard para medir tempos parciais.
Suportar vários pilotos ao mesmo tempo a um custo de menor precisão.
O núcleo do projeto é uma placa ESP32 + um módulo RX5808. ESP atua como um servidor web que serve uma página web simples com todas as configurações. Qualquer dispositivo com conectividade WiFi e um navegador da web pode ser usado para conectar-se a ele, configurar o cronômetro e medir os tempos das voltas.
O tempo da volta acontece medindo o RSSI ao longo do tempo, filtrando-o e verificando picos no RSSI, pois quanto mais próximo o drone estiver do cronômetro, maior será o RSSI. Com base nisso, configuramos limites de Enter RSSI
e Exit RSSI
, que nos informam quando cortar um pico. O tempo entre o RSSI de entrada e saída é então usado para medir o tempo entre o último pico e o pico atual, que é uma volta.
A comunicação com o cliente acontece via WiFi. O ESP32 configura um ponto de acesso e o cliente se conecta a ele. RSSI é transmitido por um websocket para desenhar o gráfico RSSI em tempo real. A configuração, as interações do usuário e os eventos (como iniciar o cronômetro, parar, relatar o tempo da volta) são feitos por meio de chamadas de descanso.
O navegador é aproveitado para emitir sons ou indicar tempos de volta usando a biblioteca articular.js, mas um sinal sonoro opcional (mas recomendado) pode ser instalado no cronômetro para também emitir um som sempre que um pico for detectado ou para alertar, por exemplo, quando o cronômetro a tensão da bateria está baixa.
Para construir um Phobos LapTimer você precisará de:
Uma placa breakout ESP32, de preferência com USB. A base de código é plug and play com LilyGo T-ENERGY
, que possui um slot de célula de íon de lítio 1s 18650 integrado e um circuito de detecção de tensão pronto para uso. Placas suportadas:
LilyGo T-ENERGY - recomendado.
LilyGo T-CELL - mais caro que o acima, mas possui circuito de carregamento.
ESP32-DevKit - básico, mas barato.
Um módulo RX5808 VRx com mod SPI.
Uma fonte de tensão de qualquer tipo - uma bateria, um banco de potência, etc. Dependerá do módulo ESP32 utilizado.
(Opcional) Um LED de qualquer cor (+ um resistor correspondente para gerenciar a corrente).
(Opcional) Uma campainha 3v3 a 5v COM gerador (assim ativo e não passivo).
Para conectar o RX5808 ao ESP32 use a tabela de pinagem abaixo. Observe que o pino + 5 V no RX5808 deve ser conectado a uma fonte 3v3 para subtensão do RX5808 para obter uma melhor resolução RSSI e ajudar no resfriamento:
PIN ESP32 | RX5880 |
---|---|
33 | RSSI |
GND | GND |
19 | CH1 |
22 | CH2 |
23 | CH3 |
3V3 | +5V |
Pinagem de entrada de tensão de LED, campainha e bateria opcional, mas recomendada:
PIN ESP32 | Periférico |
---|---|
21 | Ânodo LED (+) |
27 | Campainha positiva (+) |
35 | Entrada VBAT MAX 3,3v (o código assume um divisor de tensão de 1/2 com uma célula de íon-lítio de 1s) |
Você pode encontrar um diagrama de conexão dos periféricos abaixo. Para T-Energy e T-Cell você só precisa conectar o RX5808 e uma campainha.
Alternativamente, você pode pedir à comunidade para criar um cronômetro para você. Pergunte no discord!
Atualmente a construção do firmware acontece por meio do Visual Studio Code. A configuração do conjunto de ferramentas é exatamente a mesma do ExpressLRS, portanto, se você já tem um conjunto de ferramentas ExpressLRS configurado e em execução, você deve estar bem. Os requisitos para construir o firmware são os seguintes:
Código do Visual Studio.
PlataformaIO.
Eita.
Execute estas etapas para configurar o conjunto de ferramentas em seu computador:
Baixe e instale o vscode.
Abra o vscode e clique no ícone Extensions
na barra de ferramentas à direita (consulte Gerenciando Extensões).
Na caixa de pesquisa, digite platformio e instale a extensão (consulte a documentação pio install
).
Instale o git.
A última etapa antes de construir o firmware é clonar este repositório em seu computador:
No VSCode abra a paleta de comandos (usando Cmd+Shift+P
no MacOS ou Ctrl+Shift+P
no Windows)
Digite Git: Clone
.
Clique nele.
Em seguida, insira o URL do repositório PhobosLT (pode ser encontrado no topo da página do github no botão Clone
).
Escolha uma pasta onde deseja que sua cópia do repositório esteja localizada.
Para construir o firmware, clique no ícone PlatformIO
na barra de ferramentas à esquerda, que mostrará a lista de tarefas. Agora selecione Project Tasks
, expanda PhobosLT
-> General
e selecione Build
. Você deverá ver o resultado no terminal após alguns segundos ( Success
).
Antes de tentar fazer o flash, certifique-se de que haja uma conexão entre o ESP32 e o computador via USB. Piscar é um processo de duas etapas. Primeiro precisamos atualizar o firmware e, em seguida, a imagem estática do sistema de arquivos para o ESP32.
Para atualizar o firmware, clique no ícone PlatformIO
na barra de ferramentas à esquerda, que mostrará a lista de tarefas. Agora selecione Project Tasks
, expanda PhobosLT
-> General
e selecione Upload
. Você deverá ver o resultado no terminal ( Success
). Em seguida, vá para a etapa 2.
Selecione Project Tasks
, expanda PhobosLT
-> Platform
e selecione Upload Filesystem Image
. Aguarde o resultado no terminal dizendo Success
. É isso! Seu cronômetro está pronto para uso.
Se algo deu errado, verifique também o Terminal. Ele conterá pelo menos uma dica de qual é o problema. Por favor, peça mais ajuda à comunidade no discord!
Estojo ESP-WROOM-32 por porlock
Esta seção irá descrever o uso e configuração do temporizador. O aplicativo consiste em 3 páginas e é muito fácil de usar!
Ligue o cronômetro, você deverá ouvir um bipe curto e um longo.
Ligue o seu dispositivo e ligue o WiFi.
Espere que ele descubra um ponto de acesso WiFi começando com PhobosLT_xxxx
.
Clique nele e digite a senha: phoboslt
.
Ele deve se conectar e abrir uma janela do navegador com o aplicativo para você. Se isso não acontecer, abra o navegador e digite 20.0.0.1
.
Voilá!
Para configurar o temporizador você precisa clicar no botão Configuration
. Você deverá ser saudado com uma tela semelhante a esta:
Abaixo você encontra todos os parâmetros de configuração e suas descrições:
Canal e Banda - defina para a mesma Banda e Canal do seu drone. Bandas suportadas - A, B, E, Fatshark, RaceBand e LowBand, 8 canais cada. Frequência - este é um campo estático que exibirá a frequência com base na Banda e Canal definidos. Tempo Mínimo de Volta - você pode definir um tempo mínimo de volta que pode ser cronometrado. Isso evita falsos positivos quando você bate no portão de largada ou quando sua pista está muito apertada e você voa próximo ao cronômetro várias vezes durante uma volta. Limite de alarme de tensão da bateria - define um alarme de tensão da bateria que será acionado quando a tensão desejada for atingida. O intervalo está entre 2,5-4,2v. Tipo de locutor - você tem algumas opções sobre como deseja que seu cronômetro relate os tempos de volta:
None
é nenhum som.
Beep
emitirá apenas um bipe curto na travessia para avisar que registrou uma volta.
Lap Time
anunciará o tempo da volta (incluindo o nome do seu piloto se o campo Nome do piloto estiver preenchido).
Two Consecutive Lap Time
anunciarão os dois tempos de volta consecutivos.
Three Consecutive Lap Time
anunciarão os três tempos de volta consecutivos.
Taxa do locutor - controla a velocidade do locutor lendo o tempo da volta. Nome do Piloto - quando preenchido incluirá o nome do piloto na leitura dos tempos, ex. Pilot1 23.45
. É útil quando há mais de um cronômetro em execução ao mesmo tempo. Ao praticar sozinho deixe-o vazio.
NOTA: Uma vez configurada, salve a configuração clicando no botão Save Configuration
, caso contrário as alterações não terão efeito.
A calibração é uma etapa muito importante e precisa ser feita corretamente para garantir que a cronometragem aconteça corretamente e que cada volta seja contada pelo cronômetro.
Para realizar a calibração clique no botão Calibration
. Devem ser apresentados dois controles deslizantes e um gráfico representando o RSSI ao longo do tempo. Você pode pensar no RSSI como o inverso da distância entre o drone e o cronômetro. Quanto maior o RSSI, menor será a distância.
Um nó pode ser Crossing
ou Clear
. Se um nó estiver Clear
, o cronômetro acredita que um drone não está próximo do cronômetro porque o RSSI está baixo. Se for Crossing
, o cronômetro acredita que um drone está passando pelo cronômetro porque o RSSI está alto. Uma volta passada será registrada assim que a Crossing
for concluída e o RSSI retornar à zona Clear
. Calibramos isso definindo os limites de RSSI Enter
e Exit
.
Um cronômetro bem calibrado mostrará o tempo da volta quando tivermos apenas uma travessia quando o drone estiver mais próximo do cronômetro, ex:
Crossing
será sempre marcado em verde escuro, enquanto Clear
será colorido em azul.
Para encontrar bons valores iniciais para Enter
e Exit
RSSI, execute estas etapas:
Ligue o cronômetro e seu drone, ajuste-o para a potência VTx desejada, aguarde 30 segundos para que o VTx atinja a temperatura de funcionamento.
Coloque o drone a uma distância de pouco mais de um portão acima do cronômetro.
Observe o RSSI, deduza de 2 a 5 pontos para segurança - esse deve ser o seu Enter RSSI
.
Deduza outros 8 a 10 pontos e defina-o como seu Exit RSSI
.
Clique em Save RSSI Thresholds
- caso contrário, as alterações não terão efeito.
Ao voar com outros pilotos as leituras de RSSI podem ser menores devido a todo o ruído gerado por outros VTxs em canais adjacentes. Uma boa prática é diminuir ambos os limites em alguns pontos ao voar com outros pilotos no ar.
A tela Corrida permitirá que você inicie ou pare uma corrida e visualize e apague seus tempos de volta. Uma vez clicado no botão Race
, uma tela mudará para esta:
Funções dos botões:
Start Race
- clique para iniciar a contagem regressiva e sinalizar o cronômetro para iniciar a contagem das voltas.
Stop Race
- pressione quando quiser parar de contar novas voltas. Não apaga as voltas coletadas até o momento.
Clear Laps
- limpa as voltas na tela, pode ser feito durante a corrida também.
Depois de executar algumas voltas, a tela será preenchida com os tempos das voltas:
Junte-se ao nosso canal Discord para suporte e perguntas ou apenas para conversar! Todos são bem-vindos!