Programmation

Les codes et programmes d’Interface-Z

Accueil > Matériel > Captation et interfaces > Capteurs Simples > Capteur piézoélectrique vers Midi en Processing

Capteur piézoélectrique vers Midi en Processing

Mis à jour le mardi 21 mars 2017, par zandrine

 

Réception et traitement des données

Capteur piezo. Sketch Pg : Détection de l’instant du pic et obtention de la valeur maximale

piezo_pic.pde

  1. Réception des données
    Vérifier que les données du capteur arrivent bien dans le logiciel. En cas de doute, identifier le canal Midi de l’interface ou l’entrée correspondant au capteur. Dans cet exemple, il y a un capteur branché sur la première entrée d’une carte "2 analogiques" ou d’une carte ZIP. La réception des données se fait grâce à la librairie RWMidi. Une fonction controllerChangeReceived() met à jour un tableau valeur[] dont la première case (valeur[0]) contient les données du capteur piezo.
  2. Affichage des données du capteur au cours du temps
    Les données issues du capteur sont affichées dans la console. Si nécessaire, utiliser un affichage temps réel des données du capteur pour voir les pics.
  3. Réglage de la sensibilité du capteur
    En observant les données affichées, régler le capteur à l’aide du potentiomètre. Le capteur doit être installé en position d’utilisation, fixé proprement et soigneusement, et le disque piézoélectrique doit être soit collé soit pincé avec une plaque sans qu’il soit tordu ou trop écrasé. Tester des chocs d’intensité variable. Pour un fonctionnement optimal du capteur, les pics de données doivent atteindre un maximum de 127 (en Midi standard) lorsque les chocs sont forts, sans saturer, et être tout petits lorsque les chocs sont faibles. La saturation apparaît quand le pic est tronqué à 127 (ce qui ne se voit qu’en affichage echantilloné).
  4. Traitement des données
    Ce sketch permet de détecter l’instant du maximum du pic de données et d’en extraire la valeur correspondant à l’intensité de la percussion. La difficulté est de prendre en compte l’état dans le temps du capteur, pas seulement son sens d’évolution, pour extraire un instant. Le traitement se fait dans la fonction de réception et non dans le draw(). En effet le draw() est cadencé au rythme de l’affichage d’écran et rééchantillonerait les données.

    Le maximum du pic dans les données donne à la fois l’instant et la valeur liée à l’impact. Il se formalise par l’idée que le sens d’évolution était positif auparavant et qu’il devient négatif.