Interrupteurs Logiques

Le Bistable

Article écrit par LapinFou en Mars 2019.

Le Bistable


La meilleure équivalence que j'ai pu trouver est un interrupteur simple à 2 boutons (un peu comme une balance):
- 1 Bouton NOIR (V1) -> l'inter logique est vrai
- 1 Bouton ROUGE (V2) -> l'inter logique est faux
On voit l'effet mémoire. Quand j'appuie une fois sur le bouton noir, l'interrupteur reste dans cette position tant que je n'appuie pas sur le bouton rouge, et vice et versa.

Seul le passage/transition, dans la condition déclarée dans V1/V2, va mettre à jour la mémoire Bistable.
C'est à dire que si V1 = SA↑, c'est le passage vers SA↑ qui déclenche une mise à jour du Bistable. Même chose pour V2.
Dit plus simplement, les conditions V1/V2 doivent être vues comme si l'on appuyait UNE fois sur le bouton SANS laisser son doigt appuyé.

bistable_-_image
V1: Inter pour activer (ON)
V2: Inter pour désactiver (OFF)

  • l'action sur V1 est prise en compte uniquement si le Bistable est OFF.
  • l'action sur V2 est prise en compte uniquement si le Bistable est ON.

Donc si V1 et V2 sont commutés en même temps, le résultat dépendra si le Bistable est ON ou OFF.


Exemple concret: je veux une coupure moteur sécurisée. Quand l'inter SB est en position haute, le moteur est coupé. Par contre s'il n'est pas en position haute, il faut que la manette des gaz soit à 0 (donc en position -100%) pour activer le moteur. C'est une double sécurité qui évite de désactiver la coupure moteur et que le moteur parte pleine balle car on a oublié de mettre le manche des gaz en bas ! :)

Les interrupteurs logiques


- Je crée un inter logique L1: si le manche des Gaz est inférieur à -95% et que l'inter SB n'est PAS en position haute, alors L1 est VRAI, sinon L1 est FAUX.
Notez bien que j'ai utilisé Gaz et pas [Ex]Gaz, car je veux la valeur directe (RAW) du manche sans trim, sans expo, sans courbe (surtout en hélico si l'Idle-Up était activé par mégarde), etc.
Pour mémoire, les manches vont de -100% à +100% et sont à 0% en position centrale.

En résumé, IMPOSSIBLE d'appuyer sur le gros bouton ROUGE (et donc de désactiver la sécurité moteur) tant que le manche des gaz n'est pas en bas et que l'inter SB n'est pas en position milieu ou basse.
- Je crée l'inter logique L2 Bistable (V1= l'inter logique devient VRAI, V2= l'inter logique devient FAUX). Si l'inter SB (V1) passe en position haute (ou est déjà en position haute au démarrage de la radio/chargement du modèle), alors L2 devient VRAI, peu importe la valeur de L1 (V2). Si L1 (V2) devient VRAI, alors L2 devient FAUX.

bistable_-_il

En résumé:
- L2 = sécurité moteur (L2 est VRAI = la coupure moteur est active, L2 est FAUX = la coupure moteur est désactivée).
- L2 devient VRAI quand SB passe en position haute (ou est déjà en position haute au démarrage de la radio/chargement du modèle) = J'appuie une fois sur le bouton NOIR.
- L2 devient FAUX quand L1 passe VRAI (manche des gaz en bas ET SB pas en position haute) = J'appuie une fois sur le bouton ROUGE.

NOTE IMPORTANTE:
Si vous avez tout suivi, vous pouvez vous demander pourquoi j'ai ajouté un "ET supplémentaire" sur l'inter logique L1 ???
La réponse est: quand l'inter SB passe en position haute, c'est comme si j'appuyai UNE FOIS sur le le bouton "NOIR" sans laisser mon doigt appuyé (comme expliqué au début).
Donc si je n'avais pas ajouté le "ET supplémentaire" on aurait le problème suivant (je vous encourage à tester sous Companion pour bien comprendre):
- SB en position haute ? OK, la sécurité moteur L2 est ACTIVÉE
- Manche des gaz en position basse ?? OK, la sécurité moteur L2 est DÉSACTIVÉE, bien que SB soit en position haute !
Ce n'est pas ce que l'on veut !! DANGER: la sécurité n'est pas assurée, car un mouvement vers le haut du manche des gaz va démarrer le moteur.

Ce que l'on veut c'est:
- SB en position haute ? OK, la sécurité moteur L2 est ACTIVÉE
- Manche des gaz en position basse, ET SB n'est PAS en positon haute ? OK, la sécurité moteur L2 est DÉSACTIVÉE.

Les Mixages



bistable_-_mixages
Ajout d'une ligne de mixage "REMPLACER" afin de forcer la voie des gaz à -100% lorsque la sécurité est activée.
Si L2 est VRAI, alors je force le VOIE1 (le contrôleur Brushless dans mon cas) à -100%.

Les Fonctions Spéciales



bistable_-_fs

FS3: Si L2 est VRAI, alors je joue l'annonce vocale "moteur coupé" (Engine OFF) avec "Annonce lue une fois, mais pas à la mise en route de la radio".
FS4: Si L2 est FAUX, alors je joue l'annonce vocale "moteur allumé" (Engine ON) avec "Annonce lue une fois, pas de répétition".

Annexe


La fonction Bistable réagit uniquement sur une transition ou plus précisément sur une détection de niveau.
Cela veut dire que (en prenant SA comme exemple):
SA↑ → une transition est détectée lorsque SA passe en position haute
SA- → une transition est détectée lorsque SA passe en position milieu
SA↓ → une transition est détectée lorsque SA passe en position basse

Si vous choisissez SH↑, une seule et unique transition sera générée au moment où votre inter passe en position haute.
Que votre inter SA reste en position ou qu'il retourne en position - ou , cela ne change rien. La transition arrive uniquement lorsque vous passez en position .
Pour résumer notre exemple, c'est comme si vous surveillez en permanence la position de votre inter SA et que vous appuyez une fois sur un bouton poussoir lorsque l'inter SA passe en position ↑.

Maintenant, revenons à notre problème. Exemple avec un inter logique L1.
La fonction Bistable a 2 entrées, V1 et V2. Dans notre cas V1 = V2 = SH↓, donc,
L1: Bistable SH↓ SH↓

Au démarrage L1 est FAUX.
  1. L1 est FAUX, donc seule la transition sur V1 compte. Peut importe ce qui se passe sur V2.
  2. Vous actionnez votre inter SH en position SH↓ → une transition est détectée !!
  3. L1 est maintenant VRAI, donc seule la transition sur V2 compte. Tant que L1 est VRAI, peut importe ce qui se passe sur V1.
  4. Vous relâchez votre inter SH. Il retourne en position SH↑ → AUCUNE transition n'est détectée.
  5. Vous actionnez l'inter SH en position SH↓ → une nouvelle transition est détectée !!
  6. L1 est maintenant FAUX
  7. etc.

Donc, la programmation "L1: Bistable SH↓ SH↓", permet d'allumer/éteindre L1 à chaque fois qu'une transition SH↓ est détectée.
Si vous avez compris cet exemple, alors vous maîtrisez l'interrupteur logique "Bistable".
:party
Cette page a été vue 6998 fois