Il est toujours mieux de travailler un projet avec les capteurs définitifs à disposition. Ce n'est malheureusement parfois pas possible en TD. Afin de malgré tout avancer dans la programmation, il est possible d'enregistrer des données de capteurs et de les réutiliser ensuite pour simuler le comportement d'un dispositif avec de vraies valeurs.
Cette technique permet de faire fonctionner un dispositif virtuel avec des résultats réalistes.
L'objet mtr
permet d'enregistrer plusieurs flux de données (ou un seul...) en même temps. Il permet donc de créer des simulateurs pour automatiser le test et la démonstration d'un dispositif.
Enregistrement d'un seul capteur :
Pour plusieurs capteurs synchronisés ensemble :
Télécharger : playback.zip
L'entrée de gauche gère le fonctionnement général de l'objet, l'enregistrement des données dans un fichier externe et le rappel de données pré-enregistrées.
Il apparaît autant d'entrées à droite que le nombre configuré dans l'objet mtr :
Il faut TOUJOURS utiliser la ou les SORTIES DE DROITE !!
Chacune fonctionne individuellement et peut être déclenchée à volonté pour enregistrer ou relire des données.
Chaque entrée individuelle (droite) obéit à des messages record
, stop
et play
.
L'entrée générale de gauche, de plus, permet d'enregistrer toutes les données accumulées sur toutes les entrées dans un fichier txt externe, avec le message write
.
L'entrée de gauche obéit aussi au message read
qui permet d'appeler un fichier txt enregistré auparavant.
C'est la seule façon d'enregistrer les données mémorisées une fois le patch fermé : sans write
, les enregistrements sont perdus à la fermeture du patch.
Après record
et stop
, l'objet mtr permet de rappeler et de jouer les données tant que le patch est ouvert, ce qui permet de vérifier que les données sont correctes. Mais il ne les écrit PAS directement en dur, il est donc indispensable d'utiliser le message write
pour automatiser une démonstration.
record
: début d'enregistrement, soit individuel à droite, soit général à gauchestop
: arrêt de l'enregistrement en cours, arrêt de la lecture en coursplay
: lecture des données mémorisées, soit individuellement soit en généralclear
: vide la mémoire du mtr
write
: écrit les données dans un fichier texte externeread
: ouvre un fichier texte sauvegardéMessage write
:
Attention !! Lors de l'enregistrement du fichier txt, choisir l'option TEXTE explicitement et non l'option patch max, si la distinction entre les deux existe (selon les systèmes d'exploitation).
ECRIRE .txt explicitement dans le nom du fichier.
Verifier immédiatement que le fichier peut être relu, avec read
, en regardant si la console Max affiche une erreur.
Si le mauvais type est sélectionné les données sont irrécupérables.
Quand le record
est déclenché en général et pas capteur par capteur, les attentes sont aussi enregsitrées, comme dans l'exemple suivant. Les divers capteurs sont pris en compte au cours du temps.
C'est une fonctionnalité intéressante pour montrer le fonctionnement d'un dispositif qui avance dans une histoire, où on passe d'étape en étape, ou encore s'il faut coordonner plusieurs capteurs ensemble (comme des capteurs de doigts).
C'est moins intéressant dans le cas d'un quizz ou d'un dispositif où tous les capteurs peuvent agir en même temps. A ce moment-là, des record
individuels conviennent très bien.
L'objet mtr
est incorporé au patch de la Belgariade (https://www.interface-z.fr/cygne/evman-l2-2018-19-max/belgariade-dispositif-interactif).
C'est ici un mtr 2 car il y a 2 capteurs.
Tel quel ce n'est pas très ergonomique : c'est une étape lors du développement et du choix des capteurs, ais une fois le projet affiché en plein écran, il est maladroit de conserver des déclenchements à la souris. Voir page Utilisation.
Télécharger le patch complet : belgariade2-playback.zip
Le patch est fourni avec un fichier capteursbelgariade.txt qui contient la séquence d'actions sur les deux capteurs.
Pour faire fonctionner la démo en playback, sans modifier les données des capteurs :
read
(6)play
jaune général (7)Dans ce patch, tous les capteurs sont enregistrés en même temps, ce qui permet de décaler dans la lecture le capteur de distance après le capteur de mouvement.
Cela se fait en utilisant les messages record / stop / play de l'entrée générale à gauche.
Adapter le mtr au nombre de tracks nécessaires, au nombres de capteurs synchronisés. Inutile d'enregistrer 4 tracks s'il n'y a qu'un capteur.
Procédure
clear
pour nettoyer l'objet mtrrecord
pour démarrer l'enregistrementstop
pour arrêter l'enregistrementwrite
pour enregistrer les données dans un fichier texte, choisir un autre nom de fichier que ceux déjà présents dans le dossier, taper .txt à lafin, choisir type text file s'il y a l'option.ATTENTION !
A la moindre inattention, le fichier enregistré est inutilisable... Il faut explicitement choisir le TYPE TEXT FILE, puis TAPER volontairement .txt en extension, sinon le fichier s'enregistre en signes cabalistiques.
Par saine précaution, ouvrir le fichier txt généré HORS DE MAX dans un éditeur de texte avant d'effacer les données dans le mtr.
Les données doivent ressembler à :
track 1;
30 65;
26 66;
5 65;
137 64;
end;
Chaque ligne correspond à (durée en ms depuis la mesure précédente) (valeur mesurée).