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)