Article écrit par Coyotte en Mai 2019.
Comme cela a déjà été évoqué à plusieurs reprises, OpenTx est à d’autre logiciels de radio ce qu'un atelier de menuiserie est à Ikea : Soit on utilise des modules « tout faits » qui offrent un certain nombre de possibilités et il faudra faire avec celles-ci, soit on dispose d’outils tels qu’OpenTx et on va pouvoir disposer de LA fonctionnalité souhaitée sans faire de compromis entre nos souhaits et les possibilités du système.
En voici un nouvel exemple :
Un pilote de planeur souhaite connaître le temps total passé en vol plané (c-à-d moteur coupé) lors d’un vol. Il veut donc comptabiliser le temps de vol pendant lequel le moteur ne tourne pas.
Petite contrainte supplémentaire, il souhaite que l’on ne tienne pas compte du temps perdu lors de la mise en œuvre du planeur. Il faut donc détecter que le moteur tourne pendant une durée minimum correspondante à une (re)montée et comptabiliser les temps sans moteur.
Comme à chaque fois, avant d’entamer toute programmation, examinons les besoins :
- Il faut détecter une remontée au moteur, c'est à dire une durée de fonctionnement du moteur supérieure à n secondes.
Dans le cadre de cet exercice, n sera fixé à 2 (si à chaque test il faut patienter 10 ou 15 secondes, le temps de mise au point s’en ressent… ???? )
- Il faut détecter un moteur à l’arrêt APRÈS une montée et enclencher le chrono.
- Il faut détecter une remise des gaz pour arrêter le chrono.
- Le cycle doit pouvoir se poursuivre tant que l’accu n’est pas vide ou le pilote fatigué…
Grâce à la souplesse d’OpenTx, nous allons nous en sortir en utilisant simplement quelques interrupteurs logiques :
C’est assez facile : Il « suffit » de détecter que le moteur est activé pendant un temps minimum. Dans notre exemple, la voie qui commande le moteur est la voie 3
Nous avons donc un interrupteur logique configuré comme suit :
→ L01 est actif lorsque la voie 3 est supérieure à -95 pendant au moins 2 secondes.
C’est encore plus simple puisse qu'il n’y a pas de contrainte temporelle
→ Notez l’usage de -94 et -95 entre L01 et L02 afin de couvrir toute la plage de valeurs…
Détecter une montée, c’est bien. S’en rappeler, c’est mieux !
L03 est un bistable qui s’active lorsque L01 est vrai, c’est à dire, lorsque le moteur a tourné au moins pendant la durée minimum et qui se désactive lorsque L02 devient faux.
Quand L02 devient-il faux ? Lorsque le moteur tourne.
« Oui mais, lorsque le moteur tourne pour activer L01, L02 est (déjà) faux », me direz-vous. Le bistable devrait donc s’activer et se désactiver immédiatement.
Non, car le bistable détecte un changement d’état. Il faut que l’état de L02 change ET que celui-ci soit faux pour que le bistable bascule.
Dans le cas présent L01 devient vrai après 2 secondes. Le Bistable bascule et L03 devient vrai. Lorsque l’on coupe le moteur, L01 retombe et L02 devient vrai. Le bistable ne change pas d’état. Lorsque le moteur sera relancé, L02 deviendra faux et le bistable basculera …
Nous pouvons déclencher le chrono de vol plané lorsque:
C’est ce que détecte L04
L05 est en charge du chrono:
A nouveau, nous utilisons un bistable qui s’active lorsque la condition de déclenchement est reconnue (L04) et se désactive lorsque le moteur est relancé (!L02).
Pour que le chrono soit géré par L05, il faut se rendre sur la première page de la configuration des modèles et sélectionner L05 comme activation du Chrono souhaité.
Et voilà… En 5 lignes de configuration, nous obtenons un fonctionnement taillé sur mesure. Bien évidemment, ceci n’est qu'une base qui peut être adaptée à d’autres situations et d’autres capteurs. Il serait, par exemple, possible d’utiliser l’altimètre pour détecter une remontée en lieu et place du moteur… Sky is the limit !
Bons vols !
