Accueil Interface-Z - Produits - Programmation - Formations - Conseils - Contacts - Liens
Dates : Samedi 2 et dimanche 3 Octobre 2010
Formation organisée par Interface-Z
Les buts de l'atelier sont
- de manipuler concrètement du matériel interactif, de se familiariser avec ses possibilités et ses contraintes, de maîtriser les branchements et la connexion à l'ordinateur ;
- de découvrir et mettre en pratique un environnement de programmation gérant des événements temps réel en l'abordant simplement par l'utilisation des capteurs.
Programme :
Les participants peuvent installer eux-même le logiciel avant la formation, en téléchargeant le fichier correspondant à leur système d'exploitation via la page :
Téléchargement du logiciel : http://www.processing.org/download/
Documentation : http://www.processing.org/learning/
Manuel en français pour débuter : http://fr.flossmanuals.net/Processing/print
Le sketchbook sert à ranger les sketchs personnels et est indispensable pour installer des libraies supplémentaires.
Menu File / Preferences
LIgne "Sketchbook location" en haut : vérifier ou choisir un dossier pratique.
Les libraries supplémentaires doivent être téléchargées, décompressées et placées dans un répertoire "libraries" lui-même situé dans le sketchbook.
Nous utilisons RWMidi. Il faut l'installer dans le sketchbook.
RWMidi Processing MIDI Library : http://ruinwesen.com/blog?id=95
Téléchargement : http://ruinwesen.com/support-files/rwmidi.zip
Quelques renseignements : http://ruinwesen.com/support-files/rwmidi/documentation/RWMidi.html
But : ajouter au moins une entrée Midi et une sortie Midi à un ordinateur.
Possibilités : interfaces Midi-USB, cartes sons, mixettes ou claviers USB.
Interfaces sans drivers : compatibles avec seulement les derniers OS.
Interfaces avec drivers : installer d'abord le pilote à partir du CD puis brancher l'interface.
Avant de coder la configuration Midi, il faut aborder l'environnement Processing.
Menus
Zone d'édition
Play / Stop
Console
Onglets
Distinction Edition / Exécution
Configurer le Midi revient à configurer le port Midi et le canal dans un sketch.
Contrairement à des logiciels de programmation modulaire comme Pure Data ou Isadora, les périphériques Midi ne se configurent pas dans l'environnement de programmation (Processing) mais individuellement dans chaque sketch.
Il faut :
-
importer la library Midi (import rwmidi.*;) ;
- détecter les périphériques (Devices) Midi branchés sur l'ordinateur ;
-
et ouvrir une session pour un périphérique précis.
- Les valeurs des capteurs sont reçues grâce à la méthode controllerChangeReceived().
Les ports Midi disponibles sont affichés grâce à un println (ils correspondent à des Devices). Les entrées sont numérotées dans une liste Input Devices, les sorties sont dans une liste Output Devices. Ces ports peuvent être matériels ou virtuels.
Cette liste permet de
-
vérifier que le matériel est bien reconnu en Processing ;
- connaître le numéro de périphérique de l'interface qui nous intéresse.
sketch testcapteur01.pde
Ces notions, très liées en pratique au matériel, seront revues en détail lors des manipulations de capteurs.
Le matériel utilisé pour débuter et tester les branchements sera limité à un capteur simple d'emploi branché sur une interface sans réglage particulier (1 ou 2 entrées analogiques).
![]() |
Variation physique Capteur Rallonge Interface 1 capteur vers Midi Câble Midi Midi-USB Ordinateur |
- Brancher un capteur -> rallonge -> interface -> entrée Midi
- Sketch testcapteur01.pde
- Vérifier et/ou choisir le bon périphérique Midi dans la liste
- Si le matériel est correctement branché, des chiffres défilent dans la console témoin lorsque le capteur est actionné.
Les raisons pour lesquelles cela ne marche éventuellement pas :
- Le capteur n'a pas été actionné et n'envoie rien tant qu'on ne le touche pas.
- Erreur de branchement entre prise Midi In et Out
- Oubli de brancher l'alimentation de l'interface
- Interface Midi-USB non reconnue ou mal configurée (normalement traité au chapitre précédent)
- Interface Midi débranchée / rebranchée sans redémarrer Processing
Attention au nombre de lancements d'un sketch Midi ! (close, exit)
Une partie de Pong en capteurs pour se changer les idées.
Interrupteurs
Potentiomètres
Force
Ondes mécaniques
Dynamiques
Ondes lumineuses
Ondes sonores
Magnétisme
Autres
Météo
Le ;
méthodes ()
print
size()
formes
couleurs
int
float
color
frameRate()
if, else
for
translate() et rotate()
Dessiner une forme qui tourne autour du centre de la fenêtre graphique.
Potentiomètre mécanique à rotation infinie : sur un tour complet, les données augmentent régulièrement de 0 à 127, puis passent brutalement à nouveau à 0 lors de l'amorce du tour suivant.
Associer les données de ce capteur à la forme en rotation sur l'écran.
Notions utilisées en traitement des données :
- radians / degrés pour les angles
- mise à léchelle des données avec map().
- Création d'une police
- Variables liées au texte
- Assignation d'une chaîne de caractères à une variable
- Arrays de textes
- Affichage du texte
Utiliser les données du capteur pour naviguer dans le tableau de phrases et associer les différentes phrases à des distances différentes.
Traitement de données : comportement différent si l'on s'éloigne ou si l'on se rapproche. les phrases changent instantanément quand on s'approche du capteur, elles reviennent lentement à la première si l'on s'en éloigne ou que l'on sort du champ.
Mise en pratique de la très utile librairie Timeline, qui permet de tracer des coubes de comportement, des les associer à une variable et de les lancer depuis le draw(). Cela simplifie beaucoup la programmation d'événements temprels tels qu'une vague qui se propage sur des objets différents.
http://www.drifkin.net/timeline/
- Associer une Timeline à un ou deux disques qui rebondissent
- Déclencher le mouvement des disques lors d'un passage devant le capteur pyro
Notions utilisées en traitement des données :
- Double seuil
- Coupure des la prise en compte des données après déclenchement de l'effet
http://jklabs.net/maxlink/?page=about
Fixer le piezo sur une table, vérifier qu'il est bien régler en testant des chocs plus ou moins forts : les données doivent former des pics plus ou moins élevés en fonction de la force de l'impact.
Le but est de déclencher un événement (par exemple l'apparition d'un disque jaune) au moment de l'impact et avec une intensité (ici la taille) dépendant de la force de cet impact.
Pour cela il faut
- détecter le moment du choc sur la table
- identifier la force du choc détecté grâce au maximum du pic de données
- associer cette valeur à l'intensité de l'événement
- ne déclencher l'événement que lors du pic et pas en continu ensuite.