Définissons une méthode/environnement de création libre, modulaire, accessible et économe, de 2017.
Buts:
Il y a 2 cotés, accès au système:
on créer un tuyau connectant node-red et PD soit en FUDI (netsend/netreceive) soit en firmata soit en OSC ?
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.
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 <<EOF > /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 ' <!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd"> <busconfig> <policy user="root"> <allow own="org.freedesktop.ReserveDevice1.Audio0"/> <allow own="org.freedesktop.ReserveDevice1.Audio1"/> <allow own="org.freedesktop.ReserveDevice1.Audio2"/> </policy> <policy user="pi"> <allow own="org.freedesktop.ReserveDevice1.Audio0"/> <allow own="org.freedesktop.ReserveDevice1.Audio1"/> <allow own="org.freedesktop.ReserveDevice1.Audio2"/> </policy> </busconfig> '>/etc/dbus-1/system.d/audiojack.conf # /etc/fstab echo "none /dev/shm tmpfs defaults 0 0" >> /etc/fstab
Modifs
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 <<EOF >/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
# gestion de serveur yunohost git clone https://github.com/YunoHost/install_script /tmp/install_script cd /tmp/install_script && sudo ./install_yunohost
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 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 : 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
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