Accueil Interface-Z - Produits - Programmation - Formations - Conseils - Contacts - Liens


Atelier Interactivité temps réel :
initiation à Processing


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.

Formation Processing.

Programme :

 


I - Initiation Processing & capteurs - Jour 1

1 - Installations logicielles

a - Processing

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

b - Configuration du sketchbook

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.

Préférences

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.

c - Installation d'une library Midi

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

 

2 - Entrées / sorties Midi

a - Installation d'interfaces Midi-USB

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.

b - L'environnement de programmation

Avant de coder la configuration Midi, il faut aborder l'environnement Processing.

Menus
Zone d'édition
Play / Stop
Console
Onglets

Distinction Edition / Exécution

c - Configuration en Processing

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.

Liste de Devices

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

3 - Notions de chaîne d'acquisition des données

Ces notions, très liées en pratique au matériel, seront revues en détail lors des manipulations de capteurs.

a - Branchement du matériel

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).

Chaîne d'acquisition.

 

 

Variation physique

Capteur

Rallonge

Interface 1 capteur vers Midi

Câble Midi

Midi-USB

Ordinateur

b - Test de fonctionnement

- 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é.

println

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)

c - Pong

Une partie de Pong en capteurs pour se changer les idées.

4 - Panorama des capteurs simples

a - Capteurs mécaniques

Interrupteurs

Potentiomètres

Force

Ondes mécaniques

Dynamiques

b - Interaction à distance

Ondes lumineuses

Ondes sonores

Magnétisme

Autres

Météo

5 - Bases de Processing

a - Les débuts

Le ;
méthodes ()
print

size()
formes
couleurs

b - Types et variables

int
float
color

c - setup() et draw()

frameRate()

d - Conditions

if, else

e - Boucles

for

 



II - Initiation Processing & capteurs - Jour 2

1 - Exercice - Potentiomètre à rotation infinie

a - Rotation

translate() et rotate()
Dessiner une forme qui tourne autour du centre de la fenêtre graphique.

b - Le capteur

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().

2 - Exemples d'installations et de spectacles utilisant notre matériel - Suite.

3 - Exercice - Exploration de textes avec un capteur de distance

a - Gestion du texte

- 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

b - Le capteur : proximètre infra-rouge

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.

4 - Exercice - Déplacement d'une image avec un capteur

5 - Gestion du temps : Timeline

a - Les courbes

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/

b - Mise en pratique avec un capteur pyroélectrique

- 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

6 - Communication avec Max/MSP : Maxlink

http://jklabs.net/maxlink/?page=about

7 - Exercice - Déclenchement d'événement par capteur piézoélectrique

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.