Solution de chronométrage de course à nœud unique FPV abordable
Si vous aimez ce projet, vous pouvez le soutenir en contribuant à la base de code, en testant et en donnant votre avis, en partageant de nouvelles idées et en aidant à diffuser l'évangile PhobosLT. Vous pouvez également envisager de m'acheter un bubble tea ou une bière, cela me donnera du carburant pour améliorer le projet !
Phobos LapTimer (ou PhobosLT) est une solution de chronométrage simple mais puissante pour les pilotes FPV 5,8 GHz. Il est conçu pour un usage personnel et pour les petits drones (2 pouces ou moins), mais il n’y a rien contre l’utiliser avec des drones plus gros ! Il s'agit d'un petit appareil autonome auto-alimenté qui communique via WiFi avec un téléphone, une tablette ou un ordinateur portable. L'objectif du projet est d'avoir un petit appareil simple à utiliser qui peut être utilisé n'importe où, chaque fois que vous souhaitez faire une séance d'entraînement de course de whoop dans votre salon ou sur un lieu d'entraînement local avec des amis, sans chichi. Certaines parties du code sont basées sur RotorHazard et ExpressLRS. Un grand bravo aux personnes derrière ces organisations, elles font BEAUCOUP pour la communauté et façonnent l'avenir du FPV. Si vous ne connaissez pas encore ces projets et avez du temps, n'hésitez pas à les consulter !
PhobosLT présente les fonctionnalités suivantes :
Synchronisation à nœud unique des systèmes analogiques 5,8 GHz, HDZero et Walksnail.
Annonces vocales, incluant éventuellement le nom du pilote.
Lecture et calibrage RSSI en temps réel – permet une synchronisation même dans de petits espaces comme une pièce de 16 m^2 ou 200 pi^2.
Temps de 2 tours consécutifs et 3 tours consécutifs et lectures facultatives à la volée (spécialement développées pour RaceGOW).
Historique des tours visible.
Possibilité de définir un temps au tour minimal mesurable pour éviter les faux positifs.
Alarme basse tension configurable.
Petite taille, facile à construire.
Relativement bon marché.
Aucune application supplémentaire nécessaire, solution autonome.
Plans de développement futurs :
Clignotant via WiFi ou via configurateur web.
Matériel personnalisé pour minimiser la soudure.
Intégration avec ExpressLRS et goggle VRX pour transmettre les temps au tour à l'OSD.
Intégration avec RotorHazard pour mesurer les temps intermédiaires.
Prendre en charge plusieurs pilotes en même temps au prix d’une précision moindre.
Le cœur du projet est une carte ESP32 + un module RX5808. ESP agit comme un serveur Web qui sert une simple page Web avec toutes les configurations. Tout appareil doté d'une connectivité WiFi et d'un navigateur Web peut être utilisé pour s'y connecter, configurer la minuterie et mesurer les temps au tour.
Le chronométrage des tours s'effectue en mesurant le RSSI au fil du temps, en le filtrant et en vérifiant les pics du RSSI, car plus le drone est proche du chronomètre, plus le RSSI est élevé. Sur cette base, nous avons défini des seuils Enter RSSI
et Exit RSSI
, qui nous indiquent quand couper un pic. Le temps entre le RSSI d'entrée et de sortie est ensuite utilisé pour mesurer le temps entre le dernier pic et le pic actuel qui est un tour.
La communication avec le client s'effectue via WiFi. L'ESP32 configure un point d'accès et le client s'y connecte. RSSI est transmis via une websocket pour dessiner le graphique RSSI en temps réel. La configuration, les interactions utilisateur et les événements (comme le démarrage du chronomètre, l'arrêt, la communication d'un temps au tour) sont effectués à l'aide d'appels de repos.
Le navigateur est utilisé pour émettre des sons ou annoncer des temps au tour à l'aide de la bibliothèque articulate.js, mais un bip optionnel (mais recommandé) peut être installé sur le chronomètre pour émettre également un son à chaque fois qu'un pic est détecté ou pour alerter, par exemple, lorsque le chronomètre la tension de la batterie est faible.
Pour construire un Phobos LapTimer, vous aurez besoin de :
Une carte breakout ESP32, de préférence avec USB. La base de code est plug and play avec LilyGo T-ENERGY
qui dispose d'un emplacement pour cellule Li-Ion 1s 18650 intégré et d'un circuit de détection de tension prêt à l'emploi. Cartes prises en charge :
LilyGo T-ENERGY - recommandé.
LilyGo T-CELL - plus cher que celui ci-dessus mais dispose d'un circuit de charge.
ESP32-DevKit - simple mais bon marché.
Un module RX5808 VRx avec mod SPI.
Une alimentation en tension de toute sorte - une batterie, une batterie externe, etc. Cela dépendra du module ESP32 utilisé.
(Facultatif) Une LED de n'importe quelle couleur (+ une résistance correspondante pour gérer le courant).
(Facultatif) Un buzzer 3v3 à 5v AVEC un générateur (donc actif et non passif).
Pour connecter le RX5808 à l'ESP32, utilisez le tableau de brochage ci-dessous. Veuillez noter que la broche +5 V du RX5808 doit être connectée à une source 3v3 pour sous-volter le RX5808 afin d'obtenir une meilleure résolution RSSI et pour faciliter le refroidissement :
Broche ESP32 | RX5880 |
---|---|
33 | RSSI |
GND | GND |
19 | CH1 |
22 | CH2 |
23 | CH3 |
3V3 | +5V |
Brochage de l'entrée de tension de la LED, du buzzer et de la batterie en option mais recommandé :
Broche ESP32 | Périphérique |
---|---|
21 | Anode LED (+) |
27 | Buzzer positif (+) |
35 | Entrée VBAT MAX 3,3 V (le code suppose un diviseur de tension 1/2 avec une cellule Li-Ion 1 s) |
Vous trouverez ci-dessous un schéma de connexion des périphériques. Pour T-Energy et T-Cell il vous suffit de connecter le RX5808 et un buzzer.
Vous pouvez également demander à la communauté de créer un minuteur pour vous. Demandez autour de vous sur Discord !
Actuellement, la construction du micrologiciel s'effectue via Visual Studio Code. La configuration de la chaîne d'outils est exactement la même que pour ExpressLRS, donc si vous avez déjà une chaîne d'outils ExpressLRS configurée et exécutée, vous devriez être bon. Les conditions requises pour créer le firmware sont les suivantes :
Code Visual Studio.
PlateformeIO.
Git.
Effectuez ces étapes pour configurer la chaîne d'outils sur votre ordinateur :
Téléchargez et installez vscode.
Ouvrez vscode et cliquez sur l'icône Extensions
dans la barre d'outils de droite (voir Gestion des extensions).
Dans la zone de recherche, saisissez platformio et installez l'extension (voir la documentation pio install
).
Installez git.
La dernière étape avant de pouvoir créer le firmware consiste à cloner ce référentiel sur votre ordinateur :
Dans VSCode, ouvrez la palette de commandes (en utilisant Cmd+Shift+P
sous MacOS ou Ctrl+Shift+P
sous Windows)
Entrez Git: Clone
.
Cliquez dessus.
Ensuite, entrez l'URL du dépôt PhobosLT (se trouve en haut de la page github sous le bouton Clone
).
Choisissez un dossier dans lequel vous souhaitez que votre copie du référentiel soit située.
Pour créer le firmware, cliquez sur l'icône PlatformIO
dans la barre d'outils de gauche, qui affichera la liste des tâches. Maintenant, sélectionnez Project Tasks
, développez PhobosLT
-> General
et sélectionnez Build
. Vous devriez voir le résultat dans le terminal après quelques secondes ( Success
).
Avant d'essayer de flasher, assurez-vous qu'il existe une connexion entre l'ESP32 et l'ordinateur via USB. Le clignotement est un processus en deux étapes. Nous devons d’abord flasher le firmware, puis l’image statique du système de fichiers sur l’ESP32.
Pour flasher le firmware, cliquez sur l'icône PlatformIO
dans la barre d'outils de gauche, qui affichera la liste des tâches. Maintenant, sélectionnez Project Tasks
, développez PhobosLT
-> General
et sélectionnez Upload
. Vous devriez voir le résultat dans le terminal ( Success
). Ensuite, passez à l'étape 2.
Sélectionnez Project Tasks
, développez PhobosLT
-> Platform
et sélectionnez Upload Filesystem Image
. Attendez le résultat dans le terminal indiquant Success
. C'est ça! Votre minuterie est prête à être utilisée.
Si quelque chose ne va pas, veuillez également vérifier le terminal. Il contiendra au moins une indication de la nature du problème. Veuillez demander de l'aide à la communauté sur Discord !
Étui ESP-WROOM-32 par Porlock
Cette section va décrire l'utilisation et la configuration de la minuterie. L'application se compose de 3 pages et est très simple à utiliser !
Allumez la minuterie, vous devriez entendre un bip court et long.
Allumez votre appareil et activez le WiFi.
Attendez qu'il découvre un point d'accès WiFi commençant par PhobosLT_xxxx
.
Cliquez dessus et tapez le mot de passe : phoboslt
.
Il devrait se connecter et ouvrir une fenêtre de navigateur avec l'application pour vous. Si cela ne se produit pas, ouvrez le navigateur et tapez 20.0.0.1
.
Voilà !
Pour configurer la minuterie, vous devez cliquer sur le bouton Configuration
. Vous devriez être accueilli par un écran semblable à celui-ci :
Ci-dessous vous trouverez tous les paramètres de configuration et leur description :
Canal et bande : définissez la même bande et le même canal que votre drone. Bandes prises en charge : A, B, E, Fatshark, RaceBand et LowBand, 8 canaux chacune. Fréquence - il s'agit d'un champ statique qui affichera la fréquence en fonction de la bande et du canal définis. Temps de tour minimum - vous pouvez définir un temps de tour minimum qui peut être chronométré. Cela évite les faux positifs lorsque vous vous écrasez dans la porte de départ, ou lorsque votre piste est très étroite et que vous volez à proximité du chronomètre plusieurs fois au cours d'un tour. Seuil d'alarme de tension de batterie - définit une alarme de tension de batterie qui se déclenchera une fois la tension souhaitée atteinte. La plage est comprise entre 2,5 et 4,2 V. Type d'annonceur - vous disposez de quelques options sur la manière dont vous souhaitez que votre chronomètre rapporte les temps au tour :
None
n'est aucun son.
Beep
émettra simplement un court bip lors du croisement pour vous informer qu'il a enregistré un tour.
Lap Time
annoncera le temps au tour (y compris votre nom de pilote si le champ Nom du pilote est rempli).
Two Consecutive Lap Time
annonceront les deux temps au tour consécutifs.
Three Consecutive Lap Time
annonceront les trois temps au tour consécutifs.
Taux d'annonceur - contrôle la vitesse à laquelle l'annonceur lit le temps au tour. Nom du pilote - une fois rempli, il inclura le nom du pilote lors de la lecture des heures, par exemple Pilot1 23.45
. Ceci est utile lorsque plusieurs minuteries fonctionnent en même temps. Lorsque vous pratiquez seul, laissez-le vide.
REMARQUE : Une fois configuré, assurez-vous de sauvegarder la configuration en cliquant sur le bouton Save Configuration
, sinon les modifications ne prendront pas effet.
Le calibrage est une étape très importante et doit être effectué correctement pour garantir que le chronométrage se déroule correctement et que chaque tour est compté par le chronomètre.
Pour effectuer le calibrage, cliquez sur le bouton Calibration
. Deux curseurs et un graphique représentant le RSSI au fil du temps devraient vous être présentés. Vous pouvez considérer le RSSI comme l’inverse de la distance entre le drone et le minuteur. Plus le RSSI est élevé, plus la distance est courte.
Un nœud peut être soit Crossing
, soit Clear
. Si un nœud est Clear
, le timer pense qu'un drone n'est pas à proximité du timer car le RSSI est faible. S'il s'agit Crossing
, le timer pense qu'un drone passe devant le timer car le RSSI est élevé. Un tour de passe sera enregistré une fois la Crossing
terminée et le RSSI revenu en zone Clear
. Nous calibrons cela en définissant les seuils RSSI Enter
et Exit
.
Un chronomètre bien calibré affichera le temps au tour lorsque nous n'avons qu'un seul passage lorsque le drone est le plus proche du chronomètre, par exemple :
Crossing
sera toujours marqué en vert foncé, tandis que Clear
sera coloré en bleu.
Pour obtenir de bonnes valeurs initiales pour Enter
et Exit
RSSI, procédez comme suit :
Allumez la minuterie et votre drone, réglez-le sur la puissance VTx souhaitée, attendez 30 secondes que le VTx atteigne sa température de fonctionnement.
Placez le drone à une distance légèrement supérieure à une porte au-dessus de la minuterie.
Notez le RSSI, déduisez 2 à 5 points pour être sûr - cela devrait être votre Enter RSSI
.
Déduisez 8 à 10 points supplémentaires et définissez-le comme votre Exit RSSI
.
Cliquez sur Save RSSI Thresholds
– sinon les modifications ne prendront pas effet.
Lorsque vous volez avec d'autres pilotes, les lectures RSSI peuvent être inférieures en raison de tout le bruit généré par d'autres VTx sur les canaux adjacents. Une bonne pratique consiste à abaisser les deux seuils de quelques points lorsque vous volez avec d’autres pilotes dans les airs.
L'écran Course vous permettra de démarrer ou d'arrêter une course et d'afficher et d'effacer vos temps au tour. Une fois cliqué sur le bouton Race
, un écran changera comme suit :
Fonctions des boutons :
Start Race
- cliquez dessus pour démarrer le compte à rebours et signaler au chronomètre de commencer à compter les tours.
Stop Race
- appuyez dessus lorsque vous souhaitez arrêter de compter les nouveaux tours. Cela n'efface pas les tours accumulés jusqu'à présent.
Clear Laps
- efface les tours sur l'écran, peut également être effectué lorsque la course est en cours.
Une fois que vous aurez effectué quelques tours, l'écran s'affichera avec les temps au tour :
Rejoignez notre chaîne Discord pour obtenir de l'aide et des questions ou simplement pour sortir ! Tout le monde est le bienvenu !