#liste_articles {display:block}

Le chimpanzé, le pingouin et le chameau

jeudi 28 septembre 2006

 

Déclenchement d’un interactif par les détecteurs infrarouges Sharp GPD

La mise en place d’un capteur d’obstacle (voir Capteur de présence de l’interactif Chimpanzé (exposition labelbêtes)) pour labelBêtes permet de détecter la présence d’un visiteur devant un écran de projection.
Cet article décrit le fonctionnement de la chaine capteur/traitement/projection.

Le chameau n’est pas sur la photo

Capteur et acquisition

L’acquisition de données en provenance du capteur est traitée dans l’article précédent. Le principe ne change pas, et l’acquisition de données se fait via la commande :

./monkeyBusiness -d 50 | perl filter get + get + get + get + 4 / pop 

soit la moyenne de 4 valeurs lues à 50 ms d’intervalle.
On obtient donc un échantillonage de l’ordre de 5Hz (5 valeurs par seconde), ce qui est largement assez pétulant pour détecter les mouvement des visiteurs.

Traitement et gestion de la projection

L’interactif est constitué de 6 pages statiques séquentielles, qui doivent être affichées pendant environ 25 secondes (selon les goûts !).

Exemple de page

Un fondu au noir (fade-out) doit être projeté lors du départ d’un visiteur et un fondu du noir (fade-in) doit précéder l’affichage de la page 1 lors de l’arrivée d’un visiteur.

Après plusieurs tests, la solution la plus simple consiste à compiler une vidéo qui sera projetée en direct avec MPlayer.
Ce lecteur possède un mode "slave" qui permet de le piloter en envoyant des ordres sur son entrée standard (STDIN pour les intimes).

Cette vidéo comprendra les 6 pages.
Le fade-in est directement intégré à la vidéo, tandis que le fade-out sera géré dynamiquement à la projection en faisant varier la luminosité et le contraste de MPlayer.

Afin d’automatiser les séquences détection/projection/fondu, un logiciel lira les valeurs filtrées reçues du capteur et pilotera MPlayer en fonction de cette valeur, faisant office de "glue" entre le capteur et le lecteur (d’ou son nom d’une originalité défrisante).

Automatisation

L’environnement de déploiement est une Ubuntu Dapper 6.06.
L’OS est configuré pour démarrer automatiquement l’interacif au boot. Compte tenu du mode de fonctionnement d’Ubuntu, il a fallu passer le pilote du capteur suid root, afin de pouvoir l’executer au boot sous l’utilisateur usuel ubuntu (en l’occurence ’support’).

$ sudo chown root.support monkeyBusiness
$ sudo chmod 4770 monkeyBusiness
$ chmod +x glue.pl filter.pl

Le script d’exécution de l’interactif est appellé au démarrage de la session (la session est ouverte automatiquement au boot) :

#!/bin/sh

./monkeyBusiness -d 50 | ./filter.pl get + get + get + get + 4 / pop | ./glue.pl labelbetes.avi

Voila, en quelques commandes, comment un pingouin (Linux) et un chameau (Perl) ont permis à un chimpanzé de reprendre contact avec l’espèce humaine.

Documents :

par Michel Blanc