Patch - Captation + Transitions

I - Exemple de programmation d'un projet - suite

Les patchs sont ici.

7 - Captation et transitions

Pour être vraiment rigoureux, cette page traite à la fois de la captation mais aussi de la décision, les analyses des données des capteurs servant à naviguer entre les états, avec des éléments supplémentaires tels que des gestions de flux et des automatismes comme les délais.
Néanmoins ces notions d'analyses dérivant de l'utilisation des capteurs, il est assez logique de les présenter dans cet ordre.

Par rapport au schéma fonctionnel, cette page s'occupe de la programmation des flèches = transitions entre états.

a - Réception des données des deux capteurs, devil10-reception

Réception de messages Control Change

Poser deux objets ctlin configurés sur les numéros des prises sur lesquelles sont branchés les capteurs. Ces numéros dépendent de la carte utilisée, par exemple 0 et 1 pour un 2-Analogiques ou 48 et 49 pour un 4-Ana.
Des sliders simples permettent

  • d'afficher les valeurs mesurées par les capteurs
  • de tester le patch manuellement en bougeant les sliders à la souris.
Comportement des capteurs
  • Capteur de mouvement pyro : au repos il est centré autour de la valeur 62. S'il détecte un mouvement, les données oscillent autour de ce centre, vers le haut ou vers le bas.
  • Inclinomètre/accéléromètre : au repos et horizontal, il est réglé sur 64. Penché dans un sens, les données descendent jusqu'à 0 en fonction de l'angle, dans l'autre sens elles vont jusqu'à 127.
  • Détecteur capacitif : c'est un capteur discret à 5 niveaux de détection d'approche. Les seules valeurs possibles sont 0 s'il n'y a rien, 31, 63, 9 et 126 au contact. Documentation.
  • Capteur de distance proximètre : 0 s'il n'y a rien, augmentation vers 127 avec l'approche.

b - Points de contrôle des états

Ajouter des objets receive à chaque trigger d'état.

Attention à ne pas mettre d'espace dans le nom d'un send / receive !!

... Sinon ils s'appellent tous "etat"...


c - Démarrage automatique de l'état 1, devil11-1vers2c

Le premier état, des cris dans la nuit, est déclenché au démarrage du patch.

Le loadbang envoie le signal sur un s etat1 correspondant au r etat1 de la zone de décision. Ce déclenchement se fait par précaution 100 ms après les initialisations générales, pour s'assurer que l'état démarre dans un contexte où tout est prêt pour la diffusion.

d - De l'état 1 vers l'état 2, des cris au combat, devil11-1vers2c

Si le visiteur saisit le phaser, le capteur pyro varie.

Pour identifier cette variation, les données sont analysées par un seuil.
Détails sur le seuil : Utiliser un capteur

  • Comparaison : les valeurs du capteurs sont comparées à une valeur seuil fixe de 69, au-dessus de la valeur de repos du pyro à 62. Réponse 0 ou 1.
  • change : ne prendre en compte que le dépassement du seuil, pas les réponses ensuite
  • sel : sélectionner la réponse intéressante, ici 1

L'objet onebang est l'objet fondamental gérant la transition de l'état 1 à l'état 2.
Détails sur le onebang : Objets Max utiles
Comme le dispositif démarre en l'état 1, ce onebang est ouvert par défaut (argument 1).
Une fois l'état 2 déclenché par le capteur, ce onebang est fermé. Bouger devant le pyro fait évoluer l'état 2 mais nous ne revenons pas à l'état1 s'il n'y a pas de mouvement.
Le onebang est réinitialisé sur son entrée de droite par un retour à l'état 1.

e - Retour de 2 vers 1, devil11-2vers1

L'état 2 a une limitation de durée : au bout de 30 secondes, si personne n'a trouvé l'œuf, le dispositif revient à l'état 1.
Ce retour est automatique.
Lorsque l'état 2 est déclenché, un délai est activé avec delay 30000 pour revenir à l'état 1.

f - Vers l'état 3, devil12-vers3

Suivons le schéma fonctionnel des transitions : il est possible d'entrer dans l'état 3 de l'œuf depuis les états 1 et 2, en s'approchant du détecteur capacitif.
La détection par seuil se fait sur le même principe que pour le pyro mais la valeur de seuil est fixée à 31, pour avoir le premier niveau d'approche.

Le onebang est ouvert lors des états 1 et 2, il est donc réinitialisé par le déclenchement de ces deux états (s etat1 et s etat2).
Le s etat3 sert à activer l'état de l'œuf.
Attention : activer l'état 3 ne suffit pas. Il faut aussi empêcher le délai de l'état 2 d'arriver à terme et de déclencher un retour à l'état 1. Le signal envoie donc un message stop à ce delay 30000 via un s stopretour1.

g - De l'œuf vers la fusion vulcaine, état 3 vers 4, devil13-3vers4

Les données du capacitif sont envoyées dans un deuxième seuil. Il n'y a pas de risque de déclencher l'état 4 depuis le 1 ou 2 car le onebang n'est pas ouvert avant l'état 3. Il faut forcément passer par 3 pour atteindre 4.
Le seuil est désormais fixé à au-delà de 96, pour ne détecter que le dernier stade d'approche à 126, au toucher de l'œuf.
En sortie, par précaution, le signal envoie aussi un stop sur le delai de l'état 2.


h - Vers la paix, état 4 vers 5, devil14-4vers5


Attention à ne pas déclencher le délai par le onebang mais directement par le sel.
En effet, si le délai dépend du onebang, il y a un risque que l'état 5 ne se déclenche pas. Par exemple, si l'état 4 est activé mais que le visiteur s'éloigne un peu de l'œuf, les valeurs du capacitif diminue. La video de Spock reste à l'écran mais le delay a été arrêté par le message stop. Si l'œuf est à nouveau touché, comme le onebang n'a pas été réinitialisé, l'objet delay n'est plus redéclanché et l'état 5 est inaccessible.

i - Corrections


j - Retour vers l'état 1, devil16-retour

Cette étape sert à préparer le dispositif pour un autre visiteur. Après un certain temps dans l'état de paix, un délai ramène automatiquement le dispositif dans l'état 1. Cette transition est indépendante des capteurs.