Kerminy HackSpace

Outils du site


ressources:odroid_n2

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
ressources:odroid_n2 [2023/04/06 13:00] – [Ajout bouton on/off] jeffressources:odroid_n2 [2024/02/08 17:20] (Version actuelle) – modification externe 127.0.0.1
Ligne 71: Ligne 71:
 apt install xserver-xorg-core xserver-xorg-input-libinput xinit dbus-x11 xfonts-base x11-xserver-utils x11-utils libgl1-mesa-dri mesa-utils mesa-utils-extra apt install xserver-xorg-core xserver-xorg-input-libinput xinit dbus-x11 xfonts-base x11-xserver-utils x11-utils libgl1-mesa-dri mesa-utils mesa-utils-extra
 apt install vim fluxbox xterm  xfonts-base x11-xserver-utils apt install vim fluxbox xterm  xfonts-base x11-xserver-utils
-apt install pcmanfm xpad avahi-daemon # options+apt install pcmanfm xpad avahi-daemon rox-filer # options 
 mkdir -p /root/.fluxbox mkdir -p /root/.fluxbox
 echo "startfluxbox" > /root/.xsession echo "startfluxbox" > /root/.xsession
 </code> </code>
 <code> <code>
 +**startfluxbox**
 echo " echo "
 # fluxbox startup-script: # fluxbox startup-script:
Ligne 85: Ligne 87:
  
 xterm -T 'Top' -e /usr/bin/top & xterm -T 'Top' -e /usr/bin/top &
 +##lancement installation sonore 
 +/root/.fluxbox/rapidestart.sh &
 +#
 +wmnd  &
 +wmmisc &
 +#
 +
 /root/.fluxbox/x11vnc.sh 2>&1 > /tmp/x11vnc.log & /root/.fluxbox/x11vnc.sh 2>&1 > /tmp/x11vnc.log &
 exec fluxbox -log ~/.fluxbox/fluxbox.log exec fluxbox -log ~/.fluxbox/fluxbox.log
Ligne 90: Ligne 99:
 chmod 755 /root/.fluxbox/startup chmod 755 /root/.fluxbox/startup
 </code> </code>
-menu fluxbox ./fluxbox/menu+**menu fluxbox** ./fluxbox/menu
 <code> <code>
 [begin] (Fluxbox) [begin] (Fluxbox)
   [exec] (Bash) { /usr/bin/xterm -T "Bash" -e /bin/bash --login} <>   [exec] (Bash) { /usr/bin/xterm -T "Bash" -e /bin/bash --login} <>
 +  [exec] (alsamixergui) {alsamixergui -c1} <>
 +  [exec] (start.sh) {~/start.sh} <>
 +  [exec] (stop.sh) {~/stop.sh} <>
 +  [exec] (enregistre volumes) {alsactl store 1 -f ~/volumes_param.txt} <>
 +  [exec] (restore volumes) {alsactl restore 1 -f ~/volumes_param.txt} <>
  
   [exec] (ROX) {rox-filer} <>   [exec] (ROX) {rox-filer} <>
Ligne 135: Ligne 149:
  
 ===== Premier capteur weather board ===== ===== Premier capteur weather board =====
-de https://wiki.odroid.com/odroid-n2/application_note/software/weather_board avec pour nous une sortie OSC+de https://wiki.odroid.com/odroid-n2/application_note/software/weather_board avec pour nous une sortie OSC\\ 
 +Connexion sur 1-3V  2->SDA 3->SDC 9->GND 
 + 
 +– Sensors : BME280, Si1132
  
 <code> <code>
Ligne 146: Ligne 163:
 </code> </code>
 {{ :ressources:weather_board_osc.py.tgz |}} {{ :ressources:weather_board_osc.py.tgz |}}
 +
 +ajout d'un code python pour la transmission MQTT des données, en utilisant juste un popen 
 +<code python>
 +import os
 +cputemp = float(os.popen('cat /sys/class/thermal/thermal_zone3/temp').read()) / 
 +1000
 +broker_address = "192.168.1.13"
 +broker_port = 1883
 +topicbase = "bubulle"
 +client_id = "bubulle"
 +username = 'blabla'
 +password = 'blabla'
 +
 +client = mqtt.Client(client_id)
 +client.username_pw_set(username, password)
 +client.connect(broker_address, broker_port,60)
 +
 +topic = topicbase + "/cputemp"
 +client.publish(topic, (float)(bme280.read_temperature()))
 +time.sleep(1)
 +
 +</code>
 +<code c>
 +
 +</code>#!/usr/bin/python3
 +import os  
 +import time
 +from paho.mqtt import client as mqtt_client
 +
 +cputemp = float(os.popen('cat /sys/class/thermal/thermal_zone0/temp').read()) / 
 +1000
 +broker_address = "192.168.1.13"
 +broker_port = 1883
 +topicbase = "prox"
 +client_id = "prox"
 +username = 'blabla'
 +password = 'blabla'
 + 
 +client = mqtt_client.Client(client_id)
 +client.username_pw_set(username, password)
 +client.connect(broker_address, broker_port,60)
 + 
 +topic = topicbase + "/cputemp"
 +client.publish(topic, (float)(cputemp))
 +time.sleep(1)
 +
 +===== Machine sonore =====
 +Serveur son : Jack2 \\
 +GUI : Qjackctl\\
 +Outils de programmation :  Puredata 
 +Script de lancement start.sh présent dans le répertoire et lancé par le startup de fluxbox
 +
 +regarder du coté des applications jack ...
 +  * https://jackaudio.org/applications/
 +  * https://linuxmao.org
 +  * -> https://aj-snapshot.sourceforge.io/
 +<code>
 +apt install qjackctl jack-tools aj-snapshot zita-njbridge alsamixergui
 +</code>
 +==== installation Puredata vanilla ====
 +
 +pour optimiser au maximum, nous laisserons les patch en no-gui donc la partie graph ne sera utile que pour la mise au point\\
 +Liste des paquets Puredata utilisables portés sur cette base Ubuntu arm64
 +<code>
 +puredata puredata-core puredata-dev puredata-doc puredata-extra \
 +puredata-gui puredata-gui-l10n puredata-import puredata-utils multimedia-puredata \
 +pd-ableton-link pd-ambix pd-arraysize pd-autopreset pd-bassemu pd-beatpipe pd-boids \
 +pd-bsaylor pd-chaos pd-cmos pd-comport pd-creb pd-csound pd-cxc pd-cyclone \
 +pd-deken pd-deken-apt pd-earplug pd-ekext pd-ext13 pd-extendedview pd-fftease \
 +pd-flext-dev pd-flext-doc pd-flite pd-freeverb pd-ggee pd-gil pd-hcs pd-hexloader \
 +pd-hid pd-iem pd-iemambi pd-iemguts pd-iemlib pd-iemmatrix pd-iemnet pd-iemutils \
 +pd-jmmmp pd-jsusfx pd-kollabs pd-lib-builder pd-libdir pd-list-abs pd-log \
 +pd-lyonpotpourri pd-mapping pd-markex pd-maxlib pd-mediasettings pd-mjlib \
 +pd-moonlib pd-motex pd-mrpeach pd-mrpeach-net pd-nusmuk pd-osc pd-pan \
 +pd-pddp pd-pdogg pd-pdp pd-pdstring pd-pduino pd-plugin pd-pmpd pd-pool \
 +pd-puremapping pd-purepd pd-purest-json pd-readanysf pd-rtclib pd-sigpack \
 +pd-slip pd-smlib pd-syslog pd-tclpd pd-testtools pd-unauthorized pd-upp \
 +pd-vbap pd-wiimote pd-windowing pd-xbee pd-xsample pd-zexy pdal
 +</code>
 +==== Installation de pdnext ====
 +pd-vanilla a un gros défaut, c'est de ne pas être multi-thread ! du coup ne cherchant un peu j'ai trouvé https://github.com/sebshader/pdnext :-)\\
 +Cela résout le problème et permet de ne pas utiliser pd-l2ork avec nw et ses besoins en ressource plus importante voir son inexistence en ARMv8 ...
 +
 +du coup
 +<code c>
 +cd /usr/src
 +git clone https://github.com/sebshader/pdnext.git
 +cd pdnext
 +./autogen.sh
 +./configure --disable-jack-framework --enable-jack --disable-portaudio --prefix=/usr
 +make -j4
 +make install
 +</code>
 +Ensuite il faut peut etre recompiler certain paquet pd genre zexy
 +<code c>
 +apt source pd-zexy
 +cd pd-zexy_labonne_version
 +./configure --prefix=/usr
 +make
 +make install
 +</code>
 +==== Scripts sonores ====
 +**Arret**
 +<code>
 +#!/bin/bash
 +# stop.sh , kill jack et pd
 +# limite les doubles cliques
 +if [ -f /tmp/stop.run ]; then exit 0 ; fi
 +
 +for i in `ps -e|grep pd|awk '{print $1}'`; do kill -9 $i; done
 +for i in `ps -e|grep jack|awk '{print $1}'`; do kill -9 $i; done
 +for i in `ps -e|grep qjackctl|awk '{print $1}'`; do kill -9 $i; done
 +#
 +date > /tmp/stop.run
 +#
 +# limite les doubles cliques
 +sleep 5 
 +rm /tmp/stop.run
 +exit 0
 +</code>
 +**Lancement**
 +
 +**.fluxbox/rapidestart.sh**
 +<code>
 +#!/bin/bash
 +# rapidestart.sh lancement qjackctl puredata
 +#
 +# lancement capteur OSC
 +python3 /usr/local/bin/weather_board_OSC.py /dev/i2c-0 2>&1 > /dev/null &
 +# jackd
 +alsactl restore 1 -f ~/volumes_param.txt
 +qjackctl &
 +date > /tmp/start
 +cd /root/Pd
 +pd -jack /root/Pd/serre-labo.pd &
 +
 +exit 0
 +</code>
 +**start.sh**
 +<code>
 +#!/bin/bash
 +# start.sh lancement qjackctl puredata
 +# limite les doubles cliques
 +if [ -f /tmp/start.run ]; then exit 0 ; fi
 +
 +for i in `ps -e|grep pd|awk '{print $1}'`; do kill -9 $i; done
 +for i in `ps -e|grep jack|awk '{print $1}'`; do kill -9 $i; done
 +for i in `ps -e|grep qjackctl|awk '{print $1}'`; do kill -9 $i; done
 +#restore volume enregistré par alsactl store 1
 +alsactl restore 1 -f ~/volumes_param.txt
 +qjackctl &
 +date > /tmp/start.run
 +sleep 4
 +pd -jack &
 +#
 +# limite les doubles cliques
 +sleep 10
 +rm /tmp/start.run
 +
 +exit 0
 +</code>
ressources/odroid_n2.1680778858.txt.gz · Dernière modification : 2024/02/08 17:20 (modification externe)