====== La Quête du Saint Tube ====== [[http://wiki.dominiqueleroy.info/dokuwiki/doku.php?id=encac#description|Une description de la chose ]] //TUBE - tank métonymie as a magic ingenious and absurd machine, installed in the Czech countryside is transmuted by the artists Van Bela, Leroy and Rolez into a poetic resonator data it can analyze and send back. The TUBE resonates the flow of Giron's waves or Quebec Bridge activities into sounds, texts, images, or performances…which sow doubt about the uses of algorithmic systems practiced. Marina Pirot/ 13-08-2015// ===== Techniques utilisées ===== à Chaque entrée de la machine à raisonner nous placerons une micro-machine ARM, micro, capteurs, logiciels de traitement sonore et de streaming. **Depuis: été 2018**, d'autres expériences nous portent à explorer de nouvelles pistes: * mettre en modules la partie capture sonore, horloge, capteurs divers et séparer machines de captures / machine(s) de traitements. * gérer des flux sonores par le réseaux entre toutes les machines, pour minimiser la partie analogique * gérer l'ensemble en OSC, capteurs, info (penser Rednod?) * autonomiser les modules par des alimentations séparées * expérimenter solaire/super-capa/accu NiMh ou juste solaire/super-capa pour produire 100mA sur 12h L'idée est donc: * des ESP32 en WiFi avec des puces ADC (codec,I2S) autonomes, comme ESP32-LyraT * stream vers la machine de traitement * peuvent etre d'un grand nombre * se gèrent par le réseau en OSC * autant de capteurs , météo, lumière etc que l'on veut sur base ESP8266 gérés en OSC * une base horloge WiFi par une ESP8266/DS1307 * une ou plusieurs ARM, relativement plus costaud qu'un H3 ,genre Odroid C2 * purr * éventuellement jackd ----- 2017 ==== Machine ARM ==== de fait un peu n'importe laquelle ferait l'affaire , de 10€ à 40€, compatible RaspberryPi, nous partons sur une **NanoPi** tout en esperant bien faire aussi sur une orangePi Zero Alimentation , après recherche, soit: * récupération d'un block d'alimentation ATX d'un PC dont on utilise que la partie 5V, gratuit * MW Mean Well LPV-20-5 LED Driver 15W 5V IP67 Power Supply Waterproof , il y a des versions 35W 30$, block noyé dans la résine waterproof. ==== Arduino en plus ==== L'idée est d'embarquer un arduino (firmata) comme centrale de communication avec les capteurs (connexion grove). Cela dans le but de faciliter la fabrication en minimisant les soudures * arduino pro mini 5v, on en trouve a 2$ * connexion capteurs (grove) * https://www.tindie.com/products/imrehg/grovehat-for-arduino-nano/ * https://hackaday.io/project/7919-grovehat-for-the-arduino-nano * firmata => possiblité de module PD ou john-the-five ==== version gamma ==== on re repense la plateforme de façon plus directe ! En utilisant les possibilités de noVNC (websocket) * https://github.com/novnc/noVNC Nous pouvons utiliser directement un bureau X11 comme xfce,fluxbox,openbox etc sur la machine ARM grace a un application autour de html5 et un proxy avec noVNC Afin de contrôler à distance la session graphique :0 du serveur et d'avoir ainsi accès à l'interface, nous passons par x11vnc sudo apt-get install x11vnc x11vnc -storepasswd Et on ajoute dans les "Applications au démarrage" : x11vnc -rfbauth .vnc/passwd -forever -display :0 Pour info, quand le serveur est lancé sans écran, la session par défaut est en 1024x768. L'interface a donc été adaptée en conséquence plutôt que de modifier le Xorg. code de /etc/rc.local sleep 10 # su nanopim -c "vncserver" & # si pas de lancement par le bureau par ##x11vnc -rfbauth .vnc/passwd -forever -display :0 sleep 5 su nanopim -c "cd /usr/local/bin/noVNC ; ./utils/launch.sh --vnc localhost:5901 " & acces par http://IP_de_ARM:6080/vnc.html?host=IP_de_ARM&port=6080 Cela n'empeche pas l'usage de node-red. De plus je cherche le moyen de passer plus directement par le noyau GNU/Linux pour l'usage des capteurs. Il me faut en faire la liste.. lm_sensors et lm-detect ... Nous pourrons en avoir un acces par PD sans doute plus directe ? ==== version beta ==== L'idée est de repenser le projet autour de node-red, celui-ci s'occupera de gerer les capteur et la mise en forme des données à destination de PD. peut etre une orange Pi Zero pour expérimenter aussi les flusx jackd sur le reseau et avoir une des installation homogenes cf [[:projets:chaine]] capteurs dont on a un driver node-red * https://www.npmjs.com/package/bh1750 lumiere i2c * https://www.npmjs.com/package/tsl2561 - - * https://www.npmjs.com/package/mcp3424 4 entree analogiques sur i2c * === Logiciels === Enlever ou modifier certain trucs de armbian: * prend trop de cpu au lancement et nous faisons déjà des vérifs update-rc.d -f unattended-upgrades remove * npm install node-gyp * npm install node-red-contrib-opi-gpio * penser a la forme sudo npm install -g --unsafe-perm node-red node-red-admin, le -g --unsafe-perm resoud qlq problèmes... ---- ==== version alpha ==== ==== Capteurs ==== * [[http://raspiomix.org/ | Shield RaspiO'Mix]] pour pouvoir connecter des grove * restera a faire une carte grove<=>UEXT pour les interfaces Olimex === temps /horloge === une puce DS1307 sur le bus I2C de la RaspiO'Mix gère le temps, elle est vue la première fois modprobe rtc-ds1307 echo ds1307 0x68 | sudo tee /sys/class/i2c-adapter/i2c-0/new_device placer rtc-ds1307 dans /etc/modules lire : sudo hwclock -r / écrire sudo hwclock -w === son === Micro electret , ou carte http://www.delock.com/produkte/G_61961/merkmale.html on trouve en cherchant sur ebay : DELOCK 61961 carte audio === lumière === le pg /usr/local/bin/GY... est lancé par /usr/local/bin/capteur-start.sh pd récupère les données OSC port 9081 /LUX === pression/température === le pg /usr/local/bin/GY... est lancé par /usr/local/bin/capteur-start.sh pd récupère les données OSC port 9081 /TEMP === humidité === === E/S analogiques=== * 0x6A Convertisseur analogique / numérique 1 (MCP3424) * 0x6E Convertisseur analogique / numérique 0 (MCP3424) récupérer [[https://raw.githubusercontent.com/hugokernel/RaspiOMix/master/src/python/raspiomix.py|raspiomix.py]] et suivre la doc de la carte http://raspiomix.org/le-logiciel.html A faire : une entrée pd ==== Communication ==== Wifi ==== Alimentation/ Gestion de l'énergie ==== L'ensemble devant être autonome, il y a un panneau solaire. * panneau solaire * régulateur de maintient de la charge * batterie * gestion du temps ==== Système ==== Installation d'une Debian par http://www.armbian.com/nanopi-m1/ Puis: * ennlever pulsaudio apt-get remove pulsaudio ( on utilise jack) * une maj par un apt-get update * sudo apt-get install tightvncserver xfonts-75dpi xfonts-base fluxbox xterm * su nanopi -c vncpasswd * install pdextended : echo "deb http://apt.puredata.info/releases/ wheezy main" | sudo tee /etc/apt/sources.list.d/puredata.list apt-get update * sudo aptitude install pd-extended # c'est une 0.43.4~extended1-1~raspbian * il y a aussi moyen de mettre pd-l2ork en le compilant : http://l2ork.music.vt.edu/main/make-your-own-l2ork/software/ * sudo aptitude install de qjackctl libcups2 * sudo aptitude install ttf-dejavu-core libfftw3-3 libftgl2 libgsl0ldbl liblua5.1-0 libquicktime2 * modif de /etc/dbus-1/system.d/audiojack.conf pour une carte en plus sur le bon utilisateur # nom de l utilisateur cree # nom de l utilisateur cree et mettre ala fin de /etc/bash.bashrc export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket cd $HOME * relancer : sudo service dbus restart * fermeture éventuelle du X sur le moniteur * mettre dans /etc/default/nodm : NODM_ENABLED=false === streaming=== * darkice en tant qu'entrée jack vers un icecast2, les parametrages de darkices sont fait avec darksnow * darksnow fabrique un ~/.darksnow/darkice.cfg qui peu être récupéré une fois lancé * nous avons un serveur de streaming pour accueillir les flux =====Cheminements==== Au lancement ?? a verifier - la machine à une horloge interne - la machine à une clée WIFI et tente d'accéder au SSID /pass défini dans /etc/network/interfaces - le réseau est paramétré par un dhclient donc une addresse ip sur un réseau locale - /etc/rc.local fait: - ifconfig eth0:1 192.168.1.50 (vérifier l'ad) - nanopi /usr/local/bin/lance_capteur.sh ?? - /usr/local/bin/GY-tructruc capteur lumiere =>OSC 9081 /LUX - /usr/local/bin/GY-tructruc2 capteur température =>OSC 9081 /TEMP - nanopi /usr/home/nanopi/jack-start.sh ?? - nanopi vncserver - fluxbox - xterm alsamixer - xterm /usr/local/bin/streaming.sh - darkice -c ~/darksnow/darkice.cfg - qjackctl - xterm /home/nanopi/pd-start.sh ?? ===== Accès ===== ssh root@192.168.1.50 vncserver 192.168.1.50:1 ===== Suitess Node-Red ===== * https://sciencetonnante.wordpress.com/2015/10/16/la-machine-a-inventer-des-mots-video/ * http://www.algorithmiccomposer.com/2010/05/algorithmic-composition-tutorial-markov.html Partie expériences node-red * http://www.projetsdiy.fr/installer-node-red-orange-pi-armbian/ début! * http://nodered.org/docs/hardware/raspberrypi * http://tech.scargill.net/a-node-red-websockets-web-page/ * https://bitbucket.org/snippets/scargill/94yxL/raspbian-debian-ubuntu-menu-script * https://github.com/industrialinternet/Node-red-flows-mobile-web-app * http://www.projetsdiy.fr/node-red-dashboard-interface-partie1/ <== monter ses interfaces * https://create.arduino.cc/projecthub/gokulpsamy/interfacing-arduino-with-node-red-f07882 * http://hallard.me/pitinfo/ interconnexion pd : netreceive expects messages to be FUDI-formatted. Basically, this means messages are terminated with a semicolon. Until a ';' is received, [netreceive] won't output anything.Read more here: https://en.wikipedia.org/wiki/FUDI et avec johhny-five * http://johnny-five.io/ * https://github.com/rwaldron/johnny-five/wiki/Getting-Started#prerequisites * http://blog.ricardofilipe.com/post/getting-started-arduino-johhny-five Ce qui nous emmène, un retour sur l'idée de terminal passe partout * orangePi zero + petit écran tactile + kit main libre telephone < 30€ * android ou debian ( double boot ? ou emulation) ===== Pistes ailleurs ===== * proxy OSC https://github.com/automata/osc-web