Utiliser un capteur

IV - Belgariade : exemple de dispositif interactif - Part 4

4 - Déclencher des actions avec un capteur

Brancher un capteur

Chaîne d'acquisition des données :

  • Capteur de distance, de lumière, d'inclinaison, etc...
  • Rallonge à trois fils
  • Interface de conversion du capteur en Midi : 2-Analogiques, ZIP 2, 8-Analogiques, etc
  • Interface Midi-USB, port entrant = IN, Input, "Connect to Out" (une sortie Midi se branche sur une entrée)
    Le capteur envoie des données vers / dans l'ordinateur, il faut utiliser l'entrée Midi.
  • Ordinateur

Réception des données

Messages Midi de type Control Change
Objet ctlin avec trois sorties :

  • droite, canal, commun à toute la carte
  • milieu, numéro, correspondant à la prise du capteur
  • gauche, valeur, correspondant à la mesure du capteur


A ce stade, si des nombres arrivent, c'est que les branchements sont bons mais que les diverses entrées capteurs disponibles ne sont pas triées.

Seuil

Trier les capteurs, isoler les données d'un seul capteur

Le ctlin reçoit toutes les données de toutes les entrées capteurs. Il faut trier et dire au ctlin le numéro de Control Change associé aux valeurs du capteur qui nous intéresse. Ce numéro dépend de la carte de conversion et de la prise sur laquelle le capteur est branché.

  • Carte 2 Analogiques : numéros 0 et 1 ;
  • Carte ZIP 2 : numéros 0, 1, 2 et 3 ;
  • Carte 8 Analogiques, numéros 32 à 39.

Ces informations sont disponibles sur la documentation des cartes, dans la section de présentation des cartes du site d'Interface-Z.
Pour cet exemple, nous considérons que le capteur est branché sur la première prise d'un 2-Ana ou d'une ZIP, avec le numéro 0.
Seuil sur les données d'un capteur

Caractéristiques d'un seuil :

  • Un seuil est une valeur fixe.
  • Les valeurs variables du capteur sont comparées au seuil, avec un objet de comparaison supérieur ou inférieur.
  • La réponse de la comparaison est 1 ou 0, vrai ou faux.
  • La réponse qui nous intéresse est sélectionnée avec l'objet sel : sel 1 si nous voulons utiliser la réponse 1.
    L'objet sel donne en sortie un signal bang.

    Déclencher un seul son à chaque geste

    Tel quel, si nous utilisons toutes les réponses de la comparaison, c'est très laid : le son est redéclenché à chaque fois qu'une donnée arrivée, même si elle a déjà dépassé le seuil.
    L'objet change filtre les réponses identiques et ne laisse passer que les valeurs qui ont changé, ce qui évite les bégaiements.
    Lire un son avec un capteur
    Ce patch permet donc de déclencher proprement un son à chaque fois que les valeurs du capteur dépassent le seuil : quand le visiteur s'approche d'un capteur de présence, quand il crie devant un capteur de volume sonore, quand il tape un capteur piézoélectrique, etc.
    Le son est redéclenché si le seuil est à nouveau dépassé, même s'il n'est pas fini.

  • C'est un choix qui correspond par exemple aux dispositifs musicaux : la note est jouée quand le visiteur agit.
  • Déclencher un son et le lire jusqu'au bout

  • Un autre choix esthétique est possible : laisser le son jouer jusqu'au bout, s'il s'agit d'un mot ou d'une phrase par exemple. Même si le visiteur agit sur le capteur, même si les données dépassent à nouveau le seuil, le son en cours n'est pas interrompu. Un son ne peut être redéclenché que si celui-ci est fini.
  • Comment ?

    • Laisser passer un premier signal lorsque le seuil est dépassé, pour déclencher la lecture du son.
    • Bloquer les détections suivantes avec un objet onebang.
      onebang se ferme automatiquement lorsqu'un signal est passé. Il faut le réouvrir en envoyant un bang sur l'entrée de droite.
    • Détecter la fin de lecture du son avec le signal sur la sortie de droite de l'objet sfplay~.
    • Utiliser cette information pour ouvrir à nouveau l'objet onebang, qui sera prêt ensuite à laisser passer un seul autre signal.

    Si le patch semble bloqué, ouvrir une première fois le onebang (bang de droite) manuellement, c'est que l'objet a été fermé avant que sa réouverture automatique soit câblée.

    Lancer un son sans interruption

    Patches Max basiques