======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 * http://log.liminastudio.com/programming/running-puredata-on-the-raspberry-pi >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/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/sdl-dispmanx_03.14.13.zip]]\\ [[http://megrimm.net/press/wp-content/software/pdp-noise_sdl-test.pd| 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 ! * http://cagewebdev.com/index.php/raspberry-pi-running-processing-on-your-raspi/ * http://www.pobot.org/Processing-sur-Raspberry-Pi.html * http://forum.processing.org/one/topic/processing-on-raspberry-pi.html ===== OpenFramework sur Raspberry Pi ===== * **[[Raspberry Pi OpenFrameworks|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 * Gstreamer http://variable.constantvzw.org/define/index.php/PiEye 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 * http://pingbin.com/2012/12/raspberry-pi-web-cam-server-motion/ * http://www.linuxcircle.com/2013/02/06/faster-video-streaming-on-raspberry-media-server-with-mjpg-streamer/ * http://www.youtube.com/watch?v=8cFXnVDa5Cc et {{media_11:pi-noir.png|vignette|droite|Module Caméra vignette|droite|Module Caméra}} ==== Avec la Caméra Raspberry ==== * http://elinux.org/Rpi_Camera_Module * https://github.com/raspberrypi/userland/tree/master/host_applications/linux/apps/raspicam * 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 ===== * http://www.pikilipita.com/superpikixpi/ ===== Visioconférence avec 2 Raspberry Pi ===== * http://www.raspberrypi.org/forums/viewtopic.php?f=43&t=45807 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. * http://d.stavrovski.net/blog/post/how-to-install-and-set-up-openvpn-in-debian-7-wheezy#install-openvpn * http://www.canalgeek.fr/installer-un-serveur-vpn-pptp-sur-raspberry-pi/ * Connexion à un vpn http://www.undernews.fr/anonymat-cryptographie/anonymat-un-client-vpn-avec-un-raspberry-pi-cest-possible.html * http://doc.frapp.fr/doku.php?id=materiel:raspi:serveur:vpn:start === Openvpn === et openssl ... * http://raspberrypi-hacks.com/29/turn-your-raspberry-into-an-openvpn-vpn-server/ * open vpn http://www.raspberrypi.org/forums/viewtopic.php?f=36&t=46961 === PPTP === microsoft ... * http://bidouiller.fr/2013/03/01/tuto-mettre-en-place-un-serveur-vpn-sur-un-raspberry-pi/ ===== Streamer un flux audio mp3 via un serveur Icecast avec MDP ===== * http://log.liminastudio.com/miscellaneous/streaming-mpd-to-icecast-as-mp3 ===== 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 * http://hardware-libre.fr/2013/07/ajouter-un-bouton-dextinction-avec-python/ * http://www.pihomeserver.fr/2013/10/25/raspberry-pi-home-server-ajouter-bouton-darret/ Utiliser un serveur audio pour gérer et jouer les fichiers * http://www.musicpd.org/ * https://github.com/devsnd/cherrymusic ===== Transformer Raspberry Pi en emetteur FM ===== * http://www.icrobotics.co.uk/wiki/index.php/Turning_the_Raspberry_Pi_Into_an_FM_Transmitter * 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 * ça cause sur 2 sujets http://www.raspberrypi.org/phpBB3/viewtopic.php?f=41&t=25323 et http://www.raspberrypi.org/phpBB3/viewtopic.php?f=37&t=25301 * 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)|Radio Définie par Logiciel (SDR)]] ===== Lire une vidéo en boucle au lancement sur Raspberry ===== //Cette manière de faire utilise VLC, omx étant apparemment obsolète.// //Pour le moment, testé sur rPi 4 B+ seulement// - [[https://ressources.labomedia.org/lire_une_video_en_boucle_au_lancement_sur_raspberry|Une technique avec autostart]] - [[https://ressources.labomedia.org/raspberry_pi_installation#lancer_une_application_au_demarrage_de_raspberry_pi_os_debian_11_bullsyesvlc_par_exemple_pour_faire_un_player_video|une autre technique et une autre façon de faire l'autostart]] ===== Raspberry comme lecteur vidéo ===== //Omx ne fonctionne apparemment plus (n'est plus inclus dans l'OS de base), ce qui risque de rendre obsolètes plusieurs des méthodes ci-dessous// * lecteur commandable en OSC http://antoine.villeret.free.fr/?p=633 * http://antoine.villeret.free.fr/?p=600 avec omx * http://w.xuv.be/projects/raspi_video_loop * Lire une playlist en boucle http://www.cenolan.com/2013/03/looping-video-playlist-omxplayer-raspberry-pi/ * Autre technique http://lietu.net/2013/05/bash-playlist-management-raspberry-pi.html * 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) ===== * http://www.raspberrypi.org/phpBB3/viewtopic.php?t=33462&p=306469 * http://wiki.linuxaudio.org/wiki/raspberrypi 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 $ 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 * http://jasperproject.github.io {{ vimeo>123514651 }} ==== 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 * https://wiki.archlinux.org/index.php/Ssh#X11_forwarding avec VNC * http://elinux.org/RPi_VNC_Server ===== Onion Pi : proxy tor ===== * http://www.raspberrypi.org/archives/4204 ===== Synthèse vocale ===== * espeak et mbrola http://www.pobot.org/Synthese-vocale-avec-espeak-et.html * avec picottts http://mon-club-elec.fr/mes_downloads/doc_raspberrypi/rasperrypi_procedures_audio.pdf * guide compil http://forums.debian.net/viewtopic.php?f=16&t=38976 ===== Raspberry Pi en télécommande radio sans fils ===== * https://github.com/s7mx1/pihat ===== 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 [[http://www.framboise314.fr/decouvrez-la-framboise314-allo-un-pabx-asterisk-dans-votre-raspberry-pi-partie-2/#more-1578|tuto complet]] basé sur Raspbx http://www.raspberry-asterisk.org/downloads/ * Un autre https://www.aplu.fr/v2/post/2013/06/25/Asterisk-%28avec-SIP%29-en-5-minutes http://blog.nicolargo.com/2007/03/connection-dasterisk-au-serveur-sip-de-free.html * 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 ===== * http://www.davidhunt.ie/piphone-a-raspberry-pi-based-smartphone/ ===== Raspberry Pi Capteurs température humidité gyroscope joystick ===== * https://www.raspberrypi.org/products/sense-hat/ ===== 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/ {{media_12:sonic-pi.png?direct&600|}} ===== MediaCenter avec Raspberry ===== * http://openelec.tv/ ===== CodimMD super PADs sur Raspberry ===== * CodimMD https://github.com/hackmdio/codimd 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 {{tag>bj micro_ordinateur raspberry_pi}}