Explications sur le fonctionnement matériel et logiciel des

Transcription

Explications sur le fonctionnement matériel et logiciel des
Explications sur le fonctionnement matériel et logiciel des stimutalogues.
Exemple avec le gnathonemus petersii.
Préambule :
Une des idées principales des “Stimutalogues” étant l'intercommunicabilité des
systèmes, l'expérience a été pensée pour être réalisée avec n’importe quel
organisme vivant, réel ou artificiel.
Le phénomène d’électrolocation chez le gnathonemus petersii, et par cela sa
capacité à émettre un signal cohérent continu, ainsi qu’à répondre a un
stimuli de manière significative, nous a parut une bonne base de travail pour
expérimenter ce projet.
C’est pourquoi l’exemple qui suit illustrera le fonctionnement d’une interface
homme/poisson basée sur des éléments réel et virtuels.
La chaîne logistique de ce projet se divise en trois modules physiquement
séparés : Un poisson, un serveur, et un ou plusieurs utilisateur(s).
Ces modules communiquent entre eux par une connexion internet.
Leurs actions et leurs besoins sont définis comme suit :
1) Le gnathonemus petersii (organisme vivant réel) vit dans son environnement
naturel reproduit en aquarium.
Ce poisson a besoin d’être nourrit quotidiennement.
Son aquarium est équipé d’un système de captation et d émission d impulsions
électriques.
Les programmes sont automatisés et ne nécessitent aucune maintenance.
Ce poisson se situe à Sorgues, à 100 km de Marseille (France).
2) Le serveur d’IIE (intervalle d’impulsions électriques) est un ordinateur
ayant pour fonction de traiter le signal brut en provenance du poisson, ainsi
que les signaux émis par les utilisateurs du système.
Les programmes sont automatisés et ne nécessitent aucune maintenance.
Cet ordinateur se situe à Marseille.
3) L’utilisateur (organisme vivant réel ou artificiel), a lui pour fonction
d’observer, d’interpréter et de réagir, d’être stimulé par ces signaux
provenant du poisson, et de renvoyer lui même un stimuli vers l’animal.
Cet utilisateur a besoin d’un ordinateur et d’une connexion internet (et
d'être nourrit quotidiennement).
Il se situe n’ importe où dans le monde.
I)
Le système de captation et d’émission d’impulsions électriques :
Dans l’aquarium où vit le poisson sont immergées 3 électrodes de graphite,
l’une, ayant fonction de masse, est positionnée au centre, les 2 autres
servant de « points chauds » sont positionnées aux extrémités de manière
symétrique.
Les impulsions électriques étant assez faibles, ce doublage du signal est
nécessaire lors du déplacement du poisson, de sorte que ce signal ait
approximativement la même amplitude, quelque soit la position et l’orientation
de celui-ci.
Ce signal «stéréo» est conduit vers l’entrée micro de la carte son d’un
ordinateur. La carte son a été choisie comme périphérique d acquisition et de
restitution de par la simplicité des programmes permettant la conversion d’un
signal analogique électrique de faible intensité en signal numérique.
Le programme utilisé est en l’occurrence « puredata ». Il a pour fonction
d’additionner ces deux signaux analogiques, puis de calculer l’enveloppe du
signal résultant, et enfin de retourner l’amplitude de cette enveloppe sous
formes de valeurs numéraires, lesquelles valeurs peuvent être assimilées à des
décibels.
Ce flux continu de donnés est ensuite envoyé via un protocole UDP vers le
serveur, ce sans aucune limitation de débit.
Il est à noter qu’en cas de stimulation extérieure, l’envoie des données sera
stoppé pendant la durée de réception de ce signal afin de ne pas mélanger les
différentes sources (voir aussi « III) L’utilisateur »).
La réception et la restitution vers l’aquarium d’une stimulation extérieure
constituent en effet la seconde partie de ce programme :
Un second port UDP sert à recevoir un autre flux d'informations venant d’un
utilisateur externe, essentiellement l’ordre d'émission d’une impulsion
électrique, et l’amplitude de cette impulsion.
L’ordre d’émission reçu, le programme va envoyer une onde de 333 Hz pendant un
temps de 3 ms, ce qui correspond à peu près au temps d’émission d’un véritable
poisson. La fréquence de l’onde est elle subjective, il faudrait en effet hard
coder une eprom pour ré envelopper le signal électrique en signal
mormyromorphe ( voir note (1)), comprendre le timbre exact du poisson, et n’a
pour but que de générer une faible intensité électrique à la sortie de la
carte son.
Notons que cette fréquence de 333 Hz n'est pas due au hasard, et qu'elle
enveloppe le signal électrique de façon relativement similaire a celui que
produit le poisson, ce malgrés la « linéarité » de cette enveloppe.
La sortie « speaker » de la carte son est reliée à l’aquarium via un mini-jack
malle/malle dont l'extrémité externe est immergée. La distance de 2 mm entre
le point chaud et la masse du mini-jack correspond à la taille réelle de
l’organe émetteur du poisson, ce mini-jack constitue donc un jeu d'électrodes
parfait pour simuler cet organe.
Aussi, lorsqu’une stimulation a lieu, le poisson perçoit la présence d’un
congénère (avec une « voix » un peu étrange), localisée au niveau de ces
électrodes (voir note (2)).
L’image qui suit est une impression d’écran de ce programme.
Cela dit, aucune intervention n’étant nécessaire à son exécution, l’interface
graphique n’offre que peut d’intérêt.
Ce programme est lancé lors de la séquence de boot comme un service du système
d'exploitation, dans ce cas une knoppix-3.7 (base Debian).
NOTES :
(1) Un tel système a été réalisé par C.Graff mais notre expérience ne
nécessitait pas cette précision.
Christian GRAFF, Maître de Conférences en Neurosciences (1990 - ), Université
Pierre Mendès-France (Grenoble 2, Sciences Sociales).
Voir aussi http://web.upmf-grenoble.fr/labicog/
(2) Nous avons pu, lors de la réalisation de cette expérience, observer un
comportement très précis, d’abord effrayé et « silencieux » puis agressif,
allant directement a la rencontre de l’électrode, et lui faisant
alternativement face ou dos (son organe d’émission étant directionnel), avec
des séries d’impulsions très rapides.
II)
Le serveur d’intervalle d’impulsions électriques :
Ce programme, également conçu avec puredata, est divisé en 3 sections : Le
serveur TCP, le serveur UDP, et enfin la réception du signal brut et le calcul
d’intervalle de temps entre les impulsions électriques (« calcul d’ IIE »).
Le chois de deux types de protocoles (TCP et UDP) pour un même serveur a été
motivé par les différents avantages de chacun.
Le protocole UDP autorisant la perte de donnée, le flux est plus rapide, et
surtout, respecte les intervalles de temps. On peut donc le considérer comme
« temps réel ». En contre partie, ce protocole nécessite de la part de
l’utilisateur une configuration nat du routeur de son réseau (si le client
passe par un routeur) et l’ouverture d’un port UDP sur sa machine, il est donc
réservé à des utilisateurs avancés.
A l’opposé, le protocole TCP est géré automatiquement, l’utilisateur n’a donc
aucune configuration particulière à effectuer, si ce n’est l’autorisation
d’ouverture de socket dans le cas d’un pare-feu (XP sp2). En revanche, ce
protocole n’autorise pas la perte de donnée, le flux est donc « saccadé », les
valeurs sont correctes mais l’intervalle de temps entre leur réception n’est
pas respecté. Cela dis ce protocole reste très pratique et d’une simplicité
d’utilisation essentielle à notre expérience.
Outre ces considérations, ces serveurs ont une fonction de serveur standard :
reconnaître l’adresse des utilisateurs qui s’y connectent pour leur renvoyer,
et/ou recevoir des informations.
Ce système de partage d’information peut être assimilé à un « chat » .
La seconde partie de ce programme est le calcul d’ IIE proprement dit.
A la réception du signal brut convertit, une fonction compte 5000 échantillons
de ce flux et en moyenne l’amplitude. Ceci permet d’une part d’évaluer la
fréquence de réception, et d’autre part de calculer une valeur de seuil qui
définira si le signal est un « bruit » de la carte son ou une impulsion du
poisson.
Le programme compte ensuite le nombres de millisecondes écoulées entre deux
moments où le signal passe au dessus de cette valeur de seuil : c’ est l’IIE.
Parce que la moyenne définie précédemment ne correspond pas réellement au
seuil entre le « bruit » de la carte son et l’impulsion du poisson, cette
valeur est ensuite traitée par des règles mathématiques déduites des
contraintes physiologiques du gnathonémus.
Par exemple, nous savons que l'IIE est comprise entre 10 ms et 1200 ms (à peu
de chose près), nous pouvons donc en déduire que si l'IIE excède les 1200 ms ,
c'est que la valeur du seuil est trop élevée, le programme retire donc 5% a
cette valeur. En revanche, si l'IIE est inférieure à 10 ms, la valeur du
seuil est augmentée de 5%.
De la même manière, lors du calcul de l'IIE, si la durée de l'impulsion est
supérieure à 4 ms (le temps naturel d'une impulsion chez le gnathonémus est de
3ms), le « reste » de l'impulsion est considéré comme un écho, et donc non
comptabilisé dans l'IIE.
Ce système de calcul est en réalité un peut plus complexe car les « échos » se
situent à la fois avant et après la décharge, l'instant de la décharge étant
considéré au moment où l'amplitude du signal est la plus élevée.
Quoi qu'il en soit, l'effectivité ce système à été validé tant au niveau
conceptuel qu'au niveau empirique par le Laboratoire de Biologie du
Comportement (SHS-Grenoble), spécialisé dans le phénomène d'élecrtolocation.
Les images ci-dessous illustrent l'arborescence de ce processus dans
l'interface graphique de puredata.
Encore une fois, ce programme fonctionne automatiquement, il est lui aussi
lancé comme un service de l'OS, dans ce cas une knoppix-3.6 (base Debian).
Module de calcul IIE :
Calcul de la moyenne de l'amplitude du signal :
Règles organiques pour le traitement du seuil :
Traitement du seuil et calcul de l'IIE :
III)
L’utilisateur et le programme client :
L'utilisateur constitue en fait le coeur de ce projet.
Il faut d'abord considérer que, malgré son équipement matériel et l'ouverture
constante d'un port UDP entre lui et le serveur, le poisson est en fait un
utilisateur comme un autre, à cela près qu'il est connecté 24/24.
Le serveur agit alors en simple médiateur entre plusieurs utilisateurs de
nature similaire ou différente.
En effet, le programme dit « client », dont la fonction est de se connecter au
serveur, de lui transmettre et d'en recevoir des informations, a été pensé
pour permettre la réception, la conversion et l'envoie de tout type de
données.
Le propos est donc de définir ce qu'il advient de l'information reçue :
Comment est-elle perçue, de qu'elle manière est-elle interprétée et/ou
traduite ?
Quelle sera la réponse à ce signal, et de quelle nature sera-t-il ?
L'exemple le plus simple d'interaction a été réalisé via DNS (connexion
internet) entre un homme et un poisson de la manière suivante :
L'homme lance le programme client qui le connecte au serveur, celui-ci lui
renvoie alors l'IIE. Cette série continue de chiffre, significative mais un
peu abrupt, est alors envoyée vers un oscillateur qui va générer une onde de
fréquence égale à l'IIE. Le son ainsi coloré (plus l'IIE est court, plus la
note est aigue), permet à l'utilisateur de mieux percevoir le comportement du
poisson. Évidement, une note identique (de 333 hz) émise au moment de
l'impulsion serait plus proche de la réalité. Cela est possible grâce à un
mélangeur qui offre 4 types d'interprétation sonores, comme illustré par
l’image (1).
Un autre exemple de conversion est la génération de paternes chromatiques
morphodynamiques (voir image (2)) : Un nombre de pixel est définit pour une
matrice graphique, les IIE sont alors stockés jusqu'à ce qu'une image puisse
être affichée. La définition de l'image (nombre de pixel), le réglage
couleur/noir et blanc ainsi que la qualité floutée ou non du pixel affiché
sont accessible dans l'interface du programme.
L'être humain réagit particulièrement aux stimulus auditifs et visuels, c'est
pourquoi nous avons simplifié au maximum le principal processus de réponse :
un clic de la sourie sur le déclencheur du module d'émission va induire une
impulsion électrique dans l'aquarium (voir l'image(3), module d'émission). Il
est intéressant de noter que ce processus analogique de réponse amène l'être
humain a un comportement relativement similaire a celui du poisson (voir I ,
note (2)).
Cela dit, rien ne nous empêche de décider à l'avance du stimulus à envoyer au
poisson. Par exemple, on peut l'enregistrer pendant quelque temps, puis lui
renvoyer en différé son propre signal (image(3), module de simulation).
On pourrait aussi considérer la valeur de chaque pixel d'une image comme une
valeur d'IIE et lui envoyer le « 20 heure » ou un Miro, ou encore faire de
même avec les fréquences produites par un orchestre symphonique.
Un tel dispositif à été conçu dans le cadre de « vestiaire bestiaire », basé
sur les paternes générée par des céphalopodes.
L'idée d'attribuer une valeur a chaque lettre ou phonème de notre langue afin
de convertir du Baudelaire en signal mormyromorphe avait également été
avancée, mais reste à réaliser.
Tout ces exemples sont applicables aux 2 logiciels client (UDP et TCP), même
si leurs interfaces différent quelque peu (image(4) et (5) ).
image(1):
image(2):
image(3):
image(4), le client TCP :
image(5), le client UDP :.
IV)
Extensions du projet :
1) Radio Gnatho :
Le flux d'IIE est doublé au niveau du module de calcul du serveur afin
d'alimenter un serveur Mp3 (shoutcast), qui diffuse en continu une
interprétation sonore du signal du gnatho.
Radio Gnatho est une radio internet accessible sur
http://cypres.dyndns.org:40020/listen.ls
2) HTTP-GnathoHeader :
C'est un scrip python qui fait office de serveur HTTP classique, sauf qu'il ne
sert que les IIE, avec un ordre de rafraîchissement de type <meta httpequiv=refresh content=0;URL=http://cypres.dyndns.org:3000/>.
Accéssible donc sur http://cypres.dyndns.org:3000/
3) Les correspondances chromato-auditive :
La longueur d'onde du spectre chromatique visible se situe entre 450 et 650
manomètres. La correspondance entre ces longueurs d ondes et des fréquences
sonores ,ou des caractéristique de shading 3d ( hls / rgb ), est une fois de
plus une question de conversion. En multipliant cette longueur d'onde par la
vitesse de la lumière, on obtient sa fréquence d'émission (image(A)).
Celle-ci est beaucoup trop élevé pour être audible par un organe naturel
terrestre, mais le système de notation musicale offre une classification basé
sur une suite arithmétique d'intervalles, aussi ,pourquoi ne pas multiplier la
dite fréquence par une valeur cohérente (un multiple de la raison de cette
suite) qui la rendrait audible (image(B)).
image(A)
image(B)