====== Chaînes et chaînage, vision d'un environnement de création ====== Définissons une méthode/environnement de création libre, modulaire, accessible et économe, de 2017. Buts: * éditer des sites Internet * diffuser des sites Internet et des services autres, en rapport avec les usages d'aujourd'hui * connectable avec des smartphones, logique javascript/Nodejs * connectable avec des PC logique html/php/mysql etc... * pouvoir intégrer des espaces d'expérimentations et de création numérique/analogique * ne pas coûter cher pour pouvoir l'offrir lors d'atelier au participant * Auto-Intégrable localement avec d'autre machine identique pour la gestion d'un mesh * pouvoir etre aussi une central d'objets connectés * avoir éventuellement de multiple E/S audio ( jackd/logique HP bluetooth/...) chaque élément ne fournissant que 2/2 canal audio * accès aux interfaces/capteurs des autres éléments du réseau, une machine servant de capteur, une autre pour la diffusion, une autre pour la gestion de moteurs etc... ) * utiliser un système relativement simple à mettre en oeuvre, pas de soudure? ===== Pistes: ===== ==== Éditions ==== * Editer des pages en markdown * [[http://remarkableapp.github.io |Remarkable ]] Simple et efficace * [[http://atom.io|Atom]] , Complet, peut même éditer du code pour arduino * Transcoder du code de mise en page vers markdown * https://github.com/titledk/dokuwiki-to-markdown-converter * Gérer la fabrication de site Internet, integrer les pages,images theme et fabrique le code pour le télécharger sur un serveur distant ou pas ( apache/nginx/...) pas besoin de php,mysql car sites statiques * [[https://blog.getpelican.com/|Pelican]], en python * [[http://gohugo.io/|gohugo]], en Go * https://github.com/spf13/hugo ==== Gestion de serveur/services ==== * [[https://yunohost.org/|Yunohost]] du code python pour gerer ses sites,messagerie,partage sur une petite machine armbian/debian * https://github.com/B4rb3rouss/hostathome alternative a yunohost plus directe et moins casse pieds * [[http://armbian.com|Armbian]] le système d'exploitation , base Debian pour tout un tas de carte ARM * topologie réseau * B.A.T.M.A.N. * découverte automatique des routes pour atteindre une passerelle * il semble aussi découverte de périphérique attaché ? * fixer les IP dans un cadre general ? ==== Base créative ==== Il y a 2 cotés, accès au système: - Coté réseau local WiFi en point d'acces (hostapd) - Coté Internet , connectable sur une box, un routeur à Internet on créer un tuyau connectant node-red et PD soit en [[https://en.wikipedia.org/wiki/FUDI|FUDI]] (netsend/netreceive) soit en firmata soit en OSC ? * puredata pd-L2ork / malinette netpd... * http://forum.pdpatchrepo.info/topic/10569/purr-data-finally-released * https://git.purrdata.net/jwilkes/purr-data * objets en rapport avec pd / node-red * https://www.npmjs.com/package/pd-fileutils ?? * https://www.npmjs.com/package/port ?? * https://github.com/thisconnect/port * node-red gestion d'interaction aux objet connectés et autres interfaces/capteurs * https://flows.nodered.org/ * https://www.npmjs.com/search?q=Raspberry&page=1&ranking=popularity pour trouver des drivers * http://johnny-five.io/ plugin arduino / firmata * https://github.com/rwaldron/johnny-five/wiki/Getting-Started#prerequisites * truc pour comprendre node-red * https://hallard.me/pitinfo/ => pm2 en gestionnaire de tache * gestion de sites du coté Internet à travers yunohost/nginx Un accès à un bureau VNC (noVNC accès par un navigateur) peut être mis en place, 'bureau' ou plutôt session simple, fluxbox, windowmaker?, openbox ..., tunnel ssh. Nous pouvons utiliser aussi la carte sans arduino, (ni pd), avec directement les GPIO de la carte elle même. * http://wiki.friendlyarm.com/wiki/index.php/WiringNP:_WiringPi_for_NanoPi ==== Matériels==== * [[http://www.friendlyarm.com/index.php?route=product/product&path=69&product_id=132| Nanopi NEO]] 10$ + kits de connexions divers (penser rester sous les 2kg pour le transport) * ou [[https://fr.aliexpress.com/store/product/New-Orange-Pi-Zero-Set-6-Orange-Pi-Zero-512MB-Expansion-Board-Black-Case-development-board| Kit Orange Pi Zero ]] ( tot 17€) * ou une Nanopi M1 si besoin de sortie HDMI video ? ( tot..30€ ) * microSD 8 ou 16Go class10! * cable USB micro , d'alim * **Alimentation** qui dure, waterproof ,** elle doit absolument délivrer plus de 2A !!!** * sur ebay 20W High Power LED Driver 110V/220V Waterproof Transformer Power Supply (5€?) * Mean Well LPV-20-5 (15?) ==== Expériences ==== Prérequis : Installation d'une microSD armbian debian jessie server apt-get update dpkg-reconfigure locales # choisir fr_FR.UTF-8 # mettre fr_FR.UTF-8 sur les lignes de /etc/default/locale # avahi donne un nom a la machine (mDNS) apt-get install avahi-utils libnss-mdns avahi-autoipd avahi-set-host-name neo-1 # neo-1 a changer ... # deja fait sur les version armbian >= 5.27 echo "blacklist rtl8192cu" >> /etc/modprobe.d/blacklist.conf # pb sur wifi rtl8192cu! # partie alsa base cat < /etc/asound.conf pcm.!default { type hw ; card 0 } ctl.!default { type hw ; card 0 } EOF apt-get purge whoopsie libwhoopsie0 vi /etc/dbus-1/system.d/org.freedesktop.NetworkManager.conf # et enlever ous les trucs user whoopsie # partie dbus au cas ou jackd et user pi echo 'export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket' >> /home/pi/.bashrc echo ' '>/etc/dbus-1/system.d/audiojack.conf # /etc/fstab echo "none /dev/shm tmpfs defaults 0 0" >> /etc/fstab Modifs * cf https://github.com/dynobot/TinyCore-Sound-Adjustments/ * https://github.com/dynobot/Linux-Audio-Adjustments echo "#modif latence reseau" > /etc/sysctl.d/network-latency.conf echo 'net.core.rmem_max = 16777216' >> /etc/sysctl.d/network-latency.conf echo 'net.core.wmem_max = 16777216' >> /etc/sysctl.d/network-latency.conf cat </etc/rc.local #!/bin/bash #Reduce Audio thread latency #chrt -f -p 43 $(pidof ksoftirqd/0) #chrt -f -p 43 $(pidof ksoftirqd/1) #chrt -f -p 43 $(pidof ksoftirqd/2) #chrt -f -p 43 $(pidof ksoftirqd/3) #Reduce operating system latency echo noop > /sys/block/mmcblk0/queue/scheduler echo 1000000 > /proc/sys/kernel/sched_latency_ns echo 100000 > /proc/sys/kernel/sched_min_granularity_ns echo 25000 > /proc/sys/kernel/sched_wakeup_granularity_ns sleep 5 #chrt -f -p 27 $(LE_PID_DE_LAPPLI_AUDIO) exit 0 EOF qjackctl et donc jackd fonctionne bien avec une carte son USB /usr/bin/jackd -v -dalsa -r44100 -p1024 -n2 -D -Chw:Device -Phw:Device Il semble y avoir un probleme avec alsa sur la carte interne, que pulsaudio n'a pas... Donc dans les cas ou on utlise jackd et puredata : utiliser une carte USB ! Sinon pour une lecture simple pulsaudio fait l'affaire === Partie serveur coté Internet === # gestion de serveur yunohost git clone https://github.com/YunoHost/install_script /tmp/install_script cd /tmp/install_script && sudo ./install_yunohost * sur l'interface http://neo-1.local * création de l'utilisateur yuno * installer shellinabox pour un terminal dans un navigateur * option et test https://github.com/labriqueinternet/hotspot_ynh * a condition d'avoir la bonne clée WiFi ! (peu de compatibilité) * https://neo-1.local/wifiadmin #SSID neo-1 / nanopi2017 * test d'un tableau de post'it application : 'https://github.com/YunoHost-Apps/scrumblr_ynh/' === Partie serveur coté local === Installation d'un bureau interface X11 fluxbox et Installation d'un serveur X reseau xtightvnc-server apt install fluxbox xterm tightvncserver xfonts-base x11-xserver-utils apt install pcmanfm xpad # options Pensez en étant l'utilisateur à un vncpasswd et lancez par vncserver Installation de [[https://github.com/novnc/noVNC | noVNC ]] cd /usr/local/bin git clone https://github.com/novnc/noVNC.git apt install python-numpy Reste à ajouter les ouvertures de port 5901 et 6080 du firewall (http://neo-1.local:6080/vnc.html?host=neo-1.local&port=6080) Le lancement automatique peut se faire dans /etc/rc.local: y ajouter avant le exit # lancement des services NEO su neo -c "vncserver " & sleep 3 su neo -c "cd /usr/local/bin/noVNC ; ./utils/launch.sh --vnc localhost:5901 " & Si noVNC ne fonctionne pas : une version précédente ok : {{ :projets:novnc.tgz |}} **cote hat pour les NEO** venant de http://wiki.friendlyarm.com/wiki/index.php/Main_Page git clone https://github.com/friendlyarm/BakeBit.git git clone https://github.com/friendlyarm/WiringNP git clone https://github.com/friendlyarm/NanoHAT-Motor-Python-Library === Préparation d'un site méthode === Trouver un nom pour la plateforme technique ? y en a t il besoin ?: besace , FourbiFab, BazarLab DIYOptre : espace d'expérimentation séparant le monde réel de l'algorithmique DIYOD : Do It Youself Our DIYOD Le site etant aussi une doc du site * Fabrication de la base * ou trouver les composants * comment les assembler * comment faire le systeme , ou trouver des images du système * Faire des services Internet ( usage de yunohost ) * sites * partage de ressources * Faire une machine algorithmique ( usage de pd, node-red, supercollider, codes python ... ) * machine sonore * machine et objet poétiques * Connecter des capteurs * différents type , schéma, photos, codes