Raspberry Pi Utilisations

Il y a désormais pas mal de documents dédiées au pi sur le site http://puredata.info/ http://puredata.info/search?SearchableText=raspberry

Entre autres un paquet est désormais disponible dans le dépôt officiel apt.puredata.info

From this post (SDL 1.2 with dispmanx backend): http://www.raspberrypi.org/phpBB3/viewtopic.php?t=25146

I was able to get pdp_sdl working in fullscreen with hardware acceleration. It is surprisingly fast. I was able to generate noise (pdp_noise-help.pd) and play video (pdp_qt-help.pd) without an Xwindows right from the console. I did it this way. Make sure you are in the console only (no x window system).

To try it out:

get:

http://megrimm.net/press/wp-content/software/pdp_03.14.13.zip
http://megrimm.net/press/wp-content/software/sdl-dispmanx_03.14.13.zip
http://megrimm.net/press/wp-content/software/pdp-noise_sdl-test.pd

unzip:

/home/pi/pd-externals/pdp
/home/pi/Applications/SDL12-kms-dispmanx

copy/move:

/home/pi/Desktop/pdp-noise_sdl-test.pd

then:

export LD_LIBRARY_PATH="/home/pi/Applications/SDL12-kms-dispmanx/build/.libs"
pd && pd -nogui -stderr -lib pdp -open
/home/pi/Desktop/pdp-noise_sdl-test.pd
arecord -l

pour avoir le nom du micro de la caméra PS3

gst-launch-0.10 oggmux name=mux ! shout2send ip=labomedia.org password=****** mount=variable.ogg alsasrc device="plughw:CameraB304061" ! audio/x-raw-int,rate=8000,channels=1,depth=8 ! queue ! audioconvert ! vorbisenc ! queue ! mux. v4l2src  ! 'video/x-raw-yuv,width=320,height=240,framerate=30/1' ! videorate max-rate=4 !  theoraenc ! mux.

vignette|droite|Module Caméra vignette|droite|Module Caméra

Avec la Caméra Raspberry

rPI 1
nc -l 0.0.0.0 5002 | /opt/vc/src/hello_pi/hello_video/hello_video /dev/stdin # Start video receiving in bought sides first
raspivid -t 99999999 -h 740 -w 1180 -fps 31 -b 2000000 -o - | nc -v "rPI 2 IP" 5001
rPI2
nc -l 0.0.0.0 5001 | /opt/vc/src/hello_pi/hello_video/hello_video /dev/stdin # Start video receiving in bought sides first
raspivid -t 99999999 -h 740 -w 1180 -fps 31 -b 2000000 -o - | nc -v "rPI 1 IP" 5002

VPN

Techniquement, il y a pas mal de solutions qui existent. Les plus courantes sont PPTP et OpenVPN.

Openvpn

PPTP

Faire un lecteur audio à partir d'une Raspberry Pi qui lise en boucle des fichiers audio contenus dans un répertoire

A partir d'une raspian à installer sur carte SD : https://www.raspberrypi.org/downloads/raspbian/

trouver la raspberry sur son réseau local adapter la classe ip (eg : 192.168.1.0) à votre réseau local

sudo nmap -sP 192.168.1.0/24

Se connecter en ssh

ssh pi@ip-de-la-rapsberry

Installer des logiciels complémentaires players audio, utilitaires après mises à jour

sudo apt-get update
sudo apt-get upgrade
sudo rapsi-config
sudo apt-get install sox oggfwd nload htop netcat opus-tools ecasound alsa-utils

on aura ainsi plusieurs players audio à disposition (play, aplay, avplay, omxplayer), de quoi streamer et identifier les cartes sons

Créer le script qui va lire les fichiers audio situés dans le répertoire /home/pi/audiofiles en boucle

nano lecteuraudioboucle.sh

Avec aplay en tant que lecteur audio (pour jouer du wav)

#!/bin/sh
 
# définir le chemin du répertoire contenant vos fichiers audio
AUDIOPATH="/home/pi/audiofiles" 
 
# définir le lecteur audio
SERVICE="aplay"
 
# c'est parti pour la boucle infinie !
while true; do
        if ps ax | grep -v grep | grep $SERVICE > /dev/null
        then
        sleep 1;
else
        for entry in $AUDIOPATH/*
        do
                clear
                $SERVICE $entry
        done
fi
done

Pour utiliser avplay qui va lire n'importe quel type de fichier

#!/bin/sh
 
# définir le chemin du répertoire contenant vos fichiers audio
AUDIOPATH="/home/pi/audiofiles" 
 
# définir le lecteur audio
SERVICE="avplay"
 
# c'est parti pour la boucle infinie !
while true; do
        if ps ax | grep -v grep | grep $SERVICE > /dev/null
        then
        sleep 1;
else
        for entry in $AUDIOPATH/*
        do
                clear
                $SERVICE -vn -nodisp -autoexit $entry
        done
fi
done

Pour lecture aléatoire du contenu d'un répertoire

#!/bin/sh
 
# définir le chemin du répertoire contenant vos fichiers audio
AUDIOPATH="/home/pi/audiofiles" 
 
# définir le lecteur audio
SERVICE="aplay"
 
# c'est parti pour la boucle infinie !
while true; do
        if ps ax | grep -v grep | grep $SERVICE > /dev/null
        then
        sleep 1;
else
#        for entry in $AUDIOPATH/*
#        do
                clear
                find audiofiles/ -type f -print0 | sort -z -R | xargs -r0 $SERVICE
#        done
fi
done

Lecture des fichiers d'un répertoire et diffusion via PiFMRDS

#!/bin/sh
 
# définir le chemin du répertoire contenant vos fichiers audio
AUDIOPATH="/home/pi/audiofiles" 
 
# définir le lecteur audio
SERVICE="sox"
 
# c'est parti pour la boucle infinie !
while true; do
        if ps ax | grep -v grep | grep $SERVICE > /dev/null
        then
        sleep 1;
else
        for entry in $AUDIOPATH/*
        do
                clear
                $SERVICE -t wav $entry -t wav - | sudo ./pi_fm_rds -freq 108.0 -audio - > /dev/null
        done
fi
done

rendre le fichier exécutable

chmod +x lecteuraudioboucle.sh

régler le son

alsamixer
sudo alsactl store

lancer le script au démarrage en ajoutant à rc.local :

sudo nano /etc/rc.local
./lecteuraudioboucle.sh
 exit 0

Arrêter la raspberry

sudo halt

Prendre la carte SD et mettre des fichiers audio dans le répertoire audiofiles (à créer), rebooter le tout est c'est parti

Possibilité de s'y connecter en SFTP (via fillezilla avec les mêmes identifiants que pour le ssh : pi raspberry

Ajouter un bouton pour arrêter proprement la raspbery

Utiliser un serveur audio pour gérer et jouer les fichiers

Enfin, il y a désormais un paquet Debian disponible dans les dépôts officiel apt.puredata.info (à tester!)

Pour savoir qui occupe la carte son : http://stray-notes.blogspot.fr/2010/12/aplay-device-or-resource-busy.html

lsof | grep snd

This displayed:

xmms2d  31732  patrick   7u    CHR  116,9  0t0  3885 /dev/snd/controlC0

Enregistrement sons

  • Plusieurs solutions possibles : rec, arecord, … à utiliser selon ses besoins. Le plus simple est d'utiliser arecord déjà installé.
  • Installation : installer le paquet alsa-utils qui contient arecord. Déjà installé par défaut.
$ sudo apt-get install alsa-utils

Utilisation :

$ arecord <html><params></html>
$ arecord

Information : $ man arecord ◦ -l donne la liste des périphériques ◦ -t type de fichier parmi voc, wav, raw,au ◦ - r débit en Hz ◦ - d durée de l'enregistrement en secondes ◦ -V activation vumètre = ne marche pas.. ◦ -c nombre de canaux 1 par défaut ◦ -f cd (16 bit little endian, 44100, stereo) Exemples :

$ arecord -d 5 test.wav
$ arecord -d 5 -r 16000 -f cd test.wav # enregistre 5 secondes en qualité CD à 16000hz dans fichier test.wav

PS : utilisation de -f cd limite les « craquements » de début et fin d'enregistrement… Note technique : par défaut, mon micro de webcam n'était détecté. J'ai créé le fichier .asoundrc avec la commande

$ geany .asoundrc

et copier coller le code suivant qui indique d'utiliser le micro de la webcam hw:1,0 pour la capture par défaut : pcm.!default { type asym playback.pcm { type plug slave.pcm “hw:0,0” } capture.pcm { type plug slave.pcm “hw:1,0” } }

Conversion de fichier son

  • Un utilitaire polyvalent : sox
  • Installation : le paquet sox
$ sudo apt-get install sox

Utilisation :

$ sox test.wav fichier.flac rate 16k # convertit le fichier *.wav en fichier *.flac avec échantillonage 16000hz

Avec PocketSphinx

PocketSphinx est le logiciel libre de reconnaissance vocale le plus abouti, il reste laborieux à installer et à configurer

pocketsphinx_continuous -hmm /usr/local/share/pocketsphinx/model/hmm/fr_FR/french_f0/ -lm /usr/local/share/pocketsphinx/model/lm/fr_FR/french3g62K.lm.dmp -dict /home/b01/ZSofts/TEXTE/MODFR/lium_french_f0/frenchWords62K.dic -inmic yes -adcdev sysdefault

On peut y greffer une couche supplémentaire de commande comme Jasper

Avec un service web

Il existe différents services web qui peuvent être sollicités

dont google qui a maintenant verrouillé son système de reconnaissance vocale et limite le nombre de requête par jour

  • Google STT is the speech-to-text system by Google. If you have an Android smartphone, you might already be familiar with it, because it’s basically the same engine that performs recognition if you say OK, Google. It can only transcribe a limited amount of speech a day and needs an active internet connection.
  • AT&T STT is a speech decoder by the telecommunications company AT&T. Like Google Speech, it also performs decoding online and thus needs an active internet connection.
  • Wit.ai STT relies on the wit.ai cloud services and uses crowdsourcing to train speech recognition algorithms. Like you’d expect from a cloud service, you also need an active internet connection.

Exécuter les commandes suivantes en parlant après la première : la 3ème commande doit renvoyer le texte correspondant à ce que vous avez dit !

d'après [ X. HINAULT http://mon-club-elec.fr/mes_downloads/doc_raspberrypi/rasperrypi_procedures_audio.pdf]

“L'objectif est de proposer un objet réel comme plateforme évolutive, open source et open hardware, pour la création et le partage de contenus multimédia, automatisant la collecte depuis de multiples sources (caméras, microphones, clés USB, captures d'écran, smartphones, réseaux sociaux, serveurs de fichiers) et la transformation vers de multiples destinations (web, mobiles, papier, conférence).”

Généralités

Consiste à brancher une Raspberry équipée du serveur Asterix à sa Freebox ou équivalent proposant un service SIP afin de gérer des appels téléphoniques via le serveur et les téléphones branchés à la box.

-adcdev sysdefault

Install

raspi-config

choose locale FR UTF8

raspbx-upgrade

Wifi WPA

 sudo apt-get install wireless-tools wpasupplicant

Avec le projet http://www.kiwix.org

wget http://download.kiwix.org/bin/kiwix-server-arm.tar.bz2
mkdir /home/pi/kiwix
tar xjf kiwix-server-arm.tar.bz2 -C kiwix
cd /home/pi/kiwix

y placer le fichier zim (trouvable ici http://www.kiwix.org/wiki/Content_in_all_languages/fr)

Créer l'index (à faire une seule fois):

./kiwix-index -v vikidia_fr_all_nopic_2015-11.zim vikidia_fr_all_nopic_2015-11.zim.idx

Puis démarrer le serveur:

./kiwix-serve --port=8080 --index=vikidia_fr_all_nopic_2015-11.zim.idx vikidia_fr_all_nopic_2015-11.zim 

A partir d'une Raspbian stretch, installer Docker :

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Installer docker-compose

sudo pip install docker-compose

Pour faire marcher CodiMD dans un container https://github.com/hackmdio/codimd-container

git clone https://github.com/hackmdio/codimd-container.git
cd codimd-container/
sudo docker-compose up

Wait until see the log HTTP Server listening at port 3000, it will take few minutes based on your internet connection.

Open http://127.0.0.1:3000

!!! Au final ne marche pas car Docker container pas prévu pour l'architecture ARM : “standard_init_linux.go:190: exec user process caused “exec format error”

Voir aussi pour yunohost https://forum.yunohost.org/t/solved-disabling-ssowat-login-for-some-url-fr-desactiver-la-connexion-avec-ssowat-pour-certaines-url/1412

sudo crontab -e

puis ajouter à la fin du fichier

15 20 * * * /sbin/shutdown -h now #heure d'arrêt 20h15

si tout va bien il sera affiché :

crontab: installing new crontab
  • raspberry_pi_utilisations.txt
  • Dernière modification: 2019/07/17 16:40
  • par Benjamin Labomedia