Table des matières
Raspberry Pi Utilisations
Pure Data sur Raspberry Pi
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
Processing sur Raspberry Pi
ça marche !
OpenFramework sur Raspberry Pi
- OpenFrameworks avec Raspberry Pi page dédiée sur le wiki
Streaming Video sur Raspberry Pi
- Les différentes possibilités : http://elinux.org/RPi_Projects/StreamingVideo
- Les webcams qui marchent http://elinux.org/RPi_USB_Webcams
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.
- Avec omxplayer en stream H264 http://elinux.org/Omxplayer
Avec la Caméra Raspberry
-
- Raspicam Générateur de Ligne de Commande http://www.handsdown.be/raspicam/indexfr.html
- node.js read stream for h.264 data from the raspberry PI camera module https://github.com/binocarlos/raspivid
- Streaming vidéo, quelques exemples http://antonsmindstorms.blogspot.nl/2014/12/realtime-video-stream-with-raspberry-pi.html
Vj avec Raspberry
Visioconférence avec 2 Raspberry Pi
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.
- PPTP est un protocole développé par Microsoft. Il possède des lacunes mais est relativement simple à mettre en place.
- OpenVPN pousse la technique plus loin avec un cryptage plus poussé, il passe à travers les proxy plus facilement que PPTP. Sa mise en place est par contre plus complexe.
Openvpn
et openssl …
PPTP
microsoft …
Streamer un flux audio mp3 via un serveur Icecast avec MDP
Lecteur audio en boucle
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
Transformer Raspberry Pi en emetteur FM
-
- La version de Pifm à utiliser (au 09.2015) https://github.com/rm-hull/pifm
- (obsolète ?) PifmDma modifié https://github.com/CRC-Mismatch/PiFmDma http://www.raspberrypi.org/phpBB3/viewtopic.php?f=37&t=25301&p=235412#p235412
- PifmRDS une version qui génère un signal RDS (TA y compris) marche sur raspi 2 https://github.com/ChristopheJacquet/PiFmRds
- http://www.raspberrypi.org/phpBB3/viewtopic.php?f=38&t=40599 avec un mini emetteur FM sony
Voir la partie dédiée à la Radio Définie par Logiciel (SDR)
Raspberry comme lecteur vidéo
- lecteur commandable en OSC http://antoine.villeret.free.fr/?p=633
- Lire une playlist en boucle http://www.cenolan.com/2013/03/looping-video-playlist-omxplayer-raspberry-pi/
- Player vidéo synchronisable http://www.pocketvj.com/
- OMXplayer syncronisable en python via DBUS https://github.com/turingmachine/omxplayer-sync
- Un système de synchro “pro” via gstreamer https://github.com/thaytan/aurena
- Avec OpenFramework http://w.xuv.be/projects/raspivj
Enfin, il y a désormais un paquet Debian disponible dans les dépôts officiel apt.puredata.info (à tester!)
Raspberry et l'audio (temps réel)
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
Reconnaissance vocale
Avec PocketSphinx
PocketSphinx est le logiciel libre de reconnaissance vocale le plus abouti, il reste laborieux à installer et à configurer
- Installation en compilation à partir d'une raspbian Raspi 2 https://wolfpaulus.com/jounal/embedded/raspberrypi2-sr/
- Pour créer un jeu de mots http://www.speech.cs.cmu.edu/tools/lmtool-new.html
- Si utilisation de jackd, utiliser celui de ce dépot : http://wiki.linuxaudio.org/wiki/raspberrypi
- Installation autre tuto http://jasperproject.github.io/documentation/configuration/#pocketsphinx-stt
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]
Serveur X déporté
avec ssh
avec VNC
Onion Pi : proxy tor
Synthèse vocale
- espeak et mbrola http://www.pobot.org/Synthese-vocale-avec-espeak-et.html
-
- guide compil http://forums.debian.net/viewtopic.php?f=16&t=38976
Raspberry Pi en télécommande radio sans fils
Raspberry Pi comme outils de collecte, de partage et de diffusion de documentations
- Projet LeCubeMedia http://raspberry.pobot.org/cube.html
“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).”
Raspberry Pi comme serveur de téléphonie SIP
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.
- Un tuto complet basé sur Raspbx http://www.raspberry-asterisk.org/downloads/
- dernières fonctionnalités http://nerdvittles.com/?p=8222
- rss 2 TTS speach http://www.tuxradar.com/content/make-talking-rss-feeds#null
-adcdev sysdefault
Install
raspi-config
choose locale FR UTF8
raspbx-upgrade
Wifi WPA
sudo apt-get install wireless-tools wpasupplicant
Smartphone avec Raspberry
Raspberry Pi Capteurs température humidité gyroscope joystick
Wikipedia sur Raspberry Pi
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
Sonic-Pi sur Raspberry Pi
- Le projet Sonic-Pi pour faire du live coding musical sur Raspberry https://sonic-pi.net/
MediaCenter avec Raspberry
CodimMD super PADs sur Raspberry
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
Arrêt automatique
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