Article écrit par CoyotteDundee en Novembre 2021
Un pilote de mon club m’a demandé s’il était possible de gérer la séquence d’ouverture et fermeture du train d’atterrissage de son dernier modèle.
En effet, celui-ci est muni de trappes qui s‘ouvrent lors de la rentrée et de la sortie du train, puis se ferment une fois le train dans la position souhaitée.
Il existe des boîtiers électroniques capables de gérer ce séquencement, mais nous allons voir qu’avec OpenTx, c’est un jeu d’enfant d’arriver à ce résultat sans aide extérieure.
Pour des raisons didactiques, cet exemple se focalisera sur la problématique du train.
Les autres entrées et mixages relatifs au pilotage de l’appareil (Ailerons, direction, gaz, etc) ont été retirés du modèle pour gagner en clarté.
Pour les mêmes raisons, les valeurs de sortie ou d'entrée sont exprimées par une valeur entière et les ratios par une valeur suivie d'un
%.
Si l’on désire arriver au bon résultat, il faut préalablement définir avec précision le comportement que l’on souhaite obtenir.
Dans le cas présent, nous souhaitons le fonctionnement suivant :
Les trappes sont donc toujours ouvertes préalablement à tout changement dans la position du train et se referment lorsque le train est dans la position voulue.
Cette définition permet de comprendre qu’il existe une notion temporelle dans ce comportement.
Les trappes s’ouvrent ensuite le train sort ou rentre et ensuite les trappes se referment.
Il faudra donc trouver un moyen de contrôler les éléments en fonction du temps. Cette notion sera appelée « Ligne du temps » dans la suite de cette présentation.
Nous avons défini ce que nous souhaitons obtenir comme comportement. Nous allons maintenant spécifier les moyens pour y parvenir en définissant les entrées/sorties concernées.
Une fois n’est pas coutume, commençons par la fin. Pour commander nos trappes et notre train, nous avons besoin de servos ou de moteurs.
Afin de ne pas compliquer inutilement cet exemple, nous allons considérer qu’une voie sera dédiée à la commande des trappes et une voie à celle du train.
Dans notre exemple, la
voie 6 sera réservée au train et la
voie 7 commandera les trappes.
Lorsque la
voie 6 est à
-100, le train est
rentré. A +100, le train sera sorti.
De même, lorsque la
voie 7 vaudra
-100, les trappes seront
fermées. Elle seront
ouvertes pour une valeur de
+100.
Nous savons ce que nous allons commander. Reste à définir comment.
Dans le cas d’un train d’atterrissage, une commande « tout ou rien » est amplement suffisante. Un
interrupteur fera donc parfaitement l’affaire.
Dans le cas présent ce sera
SA. (Ce pourrait être SB, SC ou tout autre interrupteur mieux placé sur la radio selon vos critères personnels)
Lorsque
SA sera en position
haute (SA↑) le train sera
rentré. Dans le cas contraire, le train sera sorti. (Notez bien que j’écris « dans le cas contraire » et non « si SA est en position milieu » ou « si SA est bas »… Vous comprendrez pourquoi dans quelques paragraphes.)
Nous devons trouver un moyen de commander nos voies en fonction d’un temps imaginaire.
Fort heureusement pour nous les développeurs d’OpenTx (bénis soient-ils !!!) ont prévu un paramètre "ralenti" {Slow} sur les mixages. Ce paramètre permet de définir le temps mis par la voie pour passer d’une position extrême (-100 par exemple) à l’autre (+100 pour le même exemple).
Il existe un
ralenti haut, qui spécifie le temps nécessaire pour passer de
-100 à +100 et un
ralenti bas qui détermine le temps pour passer de
+100 à -100 ce qui autorise des vitesses de ralenti différentes.
Notre
ligne du temps sera donc basée sur un tel ralenti. Nous disposerons d’une voie qui passera de -100 à +100 et de +100 à -100 en un temps déterminé.
Nous devons maintenant convertir cette information en une position pour les trappes et le train.
Encore une fois, les développeurs d’OpenTx (bénis soient-ils !!!) ont implémenté une fonctionnalité d’une souplesse impressionnante : Les courbes !
Petit rappel rapide sur les courbes…
Dans OpenTx, une courbe permet de transformer une valeur d’entrée X en une valeur de sortie Y selon une fonction de transformation déterminée par une courbe définie par l’utilisateur.
Ci-dessous un exemple de courbe définie par 5 points de passage :
Concentrons-nous sur le dessin de la courbe :
L’abscisse (l’axe horizontal rouge), représente la valeur d’entrée (bien souvent, ce sera la position d’un manche) qui peut aller de -100 à +100.
L’ordonnée (l’axe vertical bleu) , représente la valeur de sortie pouvant également aller de -100 à +100.
La courbe verte représente les valeurs de sortie pour chaque valeur d’entrée possible.
Dans cet exemple, si la valeur d’entrée vaut -50, la valeur de sortie sera égale à -20.
Selon la même courbe, pour une valeur d’entrée égale à 50, la valeur de sortie vaudra 30.
Par défaut, pour les valeurs d’entrée situées entre les points définis par l’utilisateur, le logiciel calcule la valeur de sortie selon une approximation linéaire.
Par exemple, pour une valeur d’entrée de 25, la valeur de sortie sera de 15. Et pour une valeur d’entrée de 75, elle sera égale à 65.
Imaginons la courbe suivante :
Lorsque X vaut -100, la valeur correspondant est -100. Et cela, tant que X est inférieur à -30.
A partir de ce point, la valeur de Y augmente jusqu’à atteindre 100 lorsque X vaut 30. Au delà de 30, la valeur de Y reste fixée à 100.
Imaginons que cette courbe représente la sortie de la voie du train. Tant que l’entrée X est inférieure à -30, le train reste rentré. Entre -30 et +30, le train sort. Au delà, il reste sorti.
Sympa, non ?
Examinons maintenant la courbe suivante :
De -100 à -75, la sortie est égale à -100. Entre -75 et -50, la sortie passe progressivement à +100., position qu’elle garde jusqu’à ce que l’entrée atteigne 50. A partir de là, la sortie repasse progressivement à -100, valeur qu’elle garde pour X allant de 75 à 100.
Cette sortie pourrait ressembler au fonctionnement d’une trappe de train… non ?
Nous allons créer une entrée correspondant à la commande du train :
Dans l’écran des entrées, nous créons l’entrée Trai qui peut avoir deux valeurs :
Voilà pour les entrées.
Nous allons créer notre
Ligne du temps en joutant un mixage sur le
canal 10. (Ce pourrait être n’importe quel autre canal libre, bien évidemment)
Le mixage est le suivant :
Nous prenons comme source l’entrée
[I]Trai que nous avons créée. Tous les autres paramètres sont inchangés sauf les
Ralentis Haut {Slow Up} et
Bas {Slow down} qui sont fixés à 5 secondes.
Si l’on teste le modèle à ce moment-là, on constate que selon la position de
SA, la
voie 10 voit sa valeur augmenter ou diminuer progressivement.
La
voie 6 reçoit le mixage lié au train :
Ce mixage prend comme Source la
voie 10 (notre
ligne du temps) et lui applique la courbe
CV1
Le mixage de la
voie 7 est comparable sauf qu’il utilise la courbe
CV2
Nous y sommes presque…
Il nous reste deux courbes à définir.
La courbe du train est en 5 points dont les valeurs sont données ci-dessous :
C’est une courbe en 6 points :
Et voilà ...
C’est terminé !
Si vous placez l’écran de votre Taranis en mode
visualisation des voies, et que vous basculez l’inter
SA, vous verrez alors les voies 6 et 7 évoluer comme prévu.
Il est bien évidemment possible d’ajuster le fonctionnement du système en jouant sur
- la durée du ralenti
- les points de courbes pour déterminer le début et la fin des mouvements des différentes parties.
Comme toujours avec OpenTx, il est possible d’améliorer cette base en y ajoutant, par exemple, une information vocale ("Trains sorti", "Train rentré"), une deuxième voie de train pour gérer les jambes gauches et droites séparément (avec même un timing de rentrée différent), …
Tout est possible, votre imagination est la seule limite !
Avant de vous laisser, je tiens à remercier mon épouse pour la relecture attentive de cet article.
Bons vols !