====== Histoires à suivre ======
C'est un cadre d'expérimentation, une des composantes des 5eme dimensions, autour du projet des balades sonores, balades numériques, etc.
Il nous permet de penser les balades, l'idée de géolocalisation et la spacialisation sonore avec un GPS et une boussole.
===== Matériel =====
* Asus EEEPC 4Go
* GPS USB [[ http://lextronic.fr/P1492-module-gps-xbu-353-a-sortie-usb.html|XBU-353 chez lextronic.fr ]]
* Boussole numérique [[ http://lextronic.fr/P1773-module-boussole-cmp03.html | P1773 Philips ]]
* Arduino
* casque
* micro
* un point d'accès WIFI
* ...
===== Logiciels =====
==== ubuntu 8.04 adaptée au eeepc ====
De fait, c'est pour le moment une [[ http://wiki.eeeuser.com/ubuntu:eeexubuntu:home | eeexubuntu ]] mise à jour.
je cherche si une [[http://minibuntu.crealabs.it/|minibuntu ]] peut être adaptée sans trop de problèmes.
Avantages que j'y trouve :
* elle suit - pour autant que le crealab le fait - la distrib de base
* elle est vide :) et ne demande que 138 Mo en iso
* on peut se limiter à fluxbox et cairo-doc
Je pense faire une sd card de 1Go pour l'ensemble de l'environnement des 5emedim, on peut penser ainsi changer de perso, de prototype, en changeant la sd. D'un coup, l'eeepc boot dessus ;-) .
==== Pure-data ====
* {{:trav:pd-0.39.3-extended-debian-testing-i386.deb|pd-extended-39.3-extended-debian-testing-i386.deb}}
* Si cela ne marche pas du premier coup, installer les dépendances manquantes à partir de la gutsy, notamment :
* [[http://ftp.heanet.ie/pub/ubuntu/pool/main/i/imagemagick/libmagick9_6.2.4.5.dfsg1-2ubuntu1_i386.deb|libmagick9_6.2.4.5]]
* [[http://ftp.estpak.ee/pub/ubuntu/pool/main/i/imagemagick/libmagick++9c2a_6.2.4.5.dfsg1-2ubuntu1_i386.deb|libmagick++9c2a]]
* [[http://launchpadlibrarian.net/7694628/libgsl0_1.9-3_i386.deb|libgsl0]]
* librairie {{:trav:pdjimmies-0.1.tar.gz|pdjimmies-0.1.tar.gz}} de nSLAM de http://tot.sat.qc.ca/logiciels_nslam.html
* abstraction {{:trav:pdmtl.tar.gz|pdmtl.tar gz}} de http://wiki.dataflow.ws/PdMtlAbstractions
Si vous avez cette erreur :
/usr/local/lib/pd/extra/pidip.pd_linux: libjasper-1.701.so.1: cannot open shared object file: No such file or directory
ajoutez un lien symbolique de la librairie que vous avez (ici libjasper.so.1.0.0, adaptez en fonction de ce que vous avez) en tapant ceci :
sudo ln -s /usr/lib/libjasper.so.1.0.0 /usr/lib/libjasper-1.701.so.1
d'autre trucs épars :
* http://www.workinprogress.ca/pd/pdlinux
* cf. http://apo33.org/bookmarks
* et autres...
un truc sur le driver son de l'eeepc
j'ai mis le fichier a jour par asoundconfig sur intel puis ajouter :
pcm.dsp0
{
type plug
slave.pcm "dmix"
}
a la fin ce qui donne pour le fichier
.asoundrc.asoundconf
::::::::::::::
# ALSA library configuration file managed by asoundconf(1).
#
# MANUAL CHANGES TO THIS FILE WILL BE OVERWRITTEN!
#
# Manual changes to the ALSA library configuration should be implemented
# by editing the ~/.asoundrc file, not by editing this file.
!defaults.pcm.card Intel
defaults.ctl.card Intel
defaults.pcm.device 0
defaults.pcm.subdevice -1
defaults.pcm.nonblock 1
defaults.pcm.ipc_key 5678293
defaults.pcm.ipc_gid audio
defaults.pcm.ipc_perm 0660
defaults.pcm.dmix.max_periods 0
defaults.pcm.dmix.rate 48000
defaults.pcm.dmix.format S16_LE
defaults.pcm.dmix.card defaults.pcm.card
defaults.pcm.dmix.device defaults.pcm.device
defaults.pcm.dsnoop.card defaults.pcm.card
defaults.pcm.dsnoop.device defaults.pcm.device
defaults.pcm.front.card defaults.pcm.card
defaults.pcm.front.device defaults.pcm.device
defaults.pcm.rear.card defaults.pcm.card
defaults.pcm.rear.device defaults.pcm.device
defaults.pcm.center_lfe.card defaults.pcm.card
defaults.pcm.center_lfe.device defaults.pcm.device
defaults.pcm.side.card defaults.pcm.card
defaults.pcm.side.device defaults.pcm.device
defaults.pcm.surround40.card defaults.pcm.card
defaults.pcm.surround40.device defaults.pcm.device
defaults.pcm.surround41.card defaults.pcm.card
defaults.pcm.surround41.device defaults.pcm.device
defaults.pcm.surround50.card defaults.pcm.card
defaults.pcm.surround50.device defaults.pcm.device
defaults.pcm.surround51.card defaults.pcm.card
defaults.pcm.surround51.device defaults.pcm.device
defaults.pcm.surround71.card defaults.pcm.card
defaults.pcm.surround71.device defaults.pcm.device
defaults.pcm.iec958.card defaults.pcm.card
defaults.pcm.iec958.device defaults.pcm.device
defaults.pcm.modem.card defaults.pcm.card
defaults.pcm.modem.device defaults.pcm.device
defaults.rawmidi.card 0
defaults.rawmidi.device 0
defaults.rawmidi.subdevice -1
defaults.hwdep.card 0
defaults.hwdep.device 0
defaults.timer.class 2
defaults.timer.sclass 0
defaults.timer.card 0
defaults.timer.device 0
defaults.timer.subdevice 0
defaults.namehint.showall off
defaults.namehint.basic on
defaults.namehint.extended off
pcm.dsp0
{
type plug
slave.pcm "dmix"
}
du coup xfce4-mixer fonctionne bien :)
==== Arduino ====
* la base {{:trav:arduino-0011-linux.tgz|arduino.tgz}}
* La librairie Wire supplémentaire {{:trav:aduino-lib-wire.tgz|librairie Wire.tgz}}
===== Principes de fonctionnement =====
* Le eeepc se localise grâce au gps, une boucle cherche si la position est proche de celle enregistrée dans un fichier plat, (base de données des actions).
* S'il y a correspondance : la boucle déclenche un évènement lu dans le fichier.
Cet évènement contient : une direction (liée a la boussole), une prioritée, une commande et ses paramètres
* Les commandes peuvent être :
* lire un fichier son, une playlist, en l'orientant par defaut sur la direction avec un volume moyen
* arrêter la lecture du (des) fichier(s) son
* pause de lecture du dernier fichier
* suivant dans la liste
* précédent dans la liste
* appliquer un filtre xxx , un patch sur l'écoute
==== Différentes approches pour le chemin ====
La première sous forme de point (way point) à positionner sur un fond, une carte en coordonnées absolue, l'autre en trace (track) ou déplacement par rapport au point précedent avec de temps en temps des marqueurs de coordonnées absolus
=== Première approche ===
format du fichier pour le moment : en csv, ';' comme séparateur
1234.000;1234,000;MMM;0;DDD;Action blabla
* Latitude : 1234.000 en °
* Longitude : 1234.000 en °
* Marge d'action : MMM en m , elle définie le champs autour du point localisé.
* Priorité : de 0=max a 9=min dans le cas d'évennement multiple
* Direction : de 001 a 365 :fixe une direction d'écoute par rapport au nord magnétique ( très pertubable )
* action : 1000 caracteres maxi : texte de la commande et de ses paramètres à éxécuter .
* fin de ligne
=== Deuxième approche ===
On peut rendre ce fichier de point relatif plutot que de coordonnees absolues.
1234.000;1234.000;MMM;0;DDD;AP
l'action AP fixe le point 0 de départ.
toutes les lignes sont placées relativement à la précédente ! On indexe aussi les lignes pour avoir un suivi plus simple.
Le fichier ressemble à ça :
0;1234.000;1234.000;MMM;0;DDD;AP
1;5;-1.000;MMM;0;DDD;Action blabla par rapport au point AP (point 0)
2;1.000;-2.000;MMM;0;DDD;Action blibli par rapport au point 1 (blabla)
3;1.000;0.000;MMM;0;DDD;Action blublu par rapport au point 2 (blibli)
Cela permet de décrire comme dans le cas d'une balade, un tracé en fonction de la précédente position, avec de temps en temps des marqueurs fixes répertoriés (AP).
Dans l'avenir, les AP peuvent être des points d'action : bouton, puce RFID, évènement exterieur, évènement de paramétrage, etc.
=== Troisième approche ===
Adoption du format standard GPX pour faciliter l'usage : http://www.topografix.com/GPX/1/1 http://www.gpsbabel.org/readme.html
* avantage : translation directe vers des outils connus ou non
* dsavantage : pas lisible .. et 10 fois plus gros
on peut prévoir un traducteur par la suite, genre gpsbabel, et garder un fichier modifiable à la main et par un tableur (format csv)
format découte du GPS : NMEA
$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A
RMC Recommended Minimum sentence C
123519 Fix taken at 12:35:19 UTC
A Status A=active or V=Void.
4807.038,N Latitude 48 deg 07.038' N
01131.000,E Longitude 11 deg 31.000' E
022.4 Speed over the ground in knots
084.4 Track angle in degrees True
230394 Date - 23rd of March 1994
003.1,W Magnetic Variation
*6A The checksum data, always begins with *
==== Wifi : possibilité 1 ====
L'ensemble est synchonisé par une connexion wifi sur le point d'accès, le wifi est fermé ensuite pour économiser la batterie.
==== Wifi : possibilité 2 ====
La connexion wifi reste ouverte.
* une boucle est à l'écoute d'évènements wifi répertoriés, ces évènements comme ceux du GPS peuvent activer des processus. Il sont aussi repertoriés dans un fichier.
* wifi, découverte d'un réseau connu par son ssid
* wifi, découverte d'un autre marcheur par la connexion à un serveur de position
* échange d'informations, d'actions par le wifi, par exemple chargement et application de patch sur l'écoute.
===== Avancement technique =====
==== Déclenchement d'un fichier son au moment d'entrer dans une zone ====
Si la zone est définie par son centre (X1, Y1) et son rayon Z, et la position par (X2, Y2), alors on est dans la zone si
''racine de [(Y2-Y1)²+(X2-X1)²] < Z''
==== Les patchs de PureData ====
* Lecture d'un fichier texte sous la forme
x1 y1 fichier_son1.ogg
x2 y2 fichier_son2.ogg
etc.
et extraction des variables position et fichier son
* Vérification si un point (x,y) est dans une zone
* Lecture des données d'un GPS
* Lecture d'un fichier ogg
* Paramètres de lecture en fonction de l'orientation (boussole)