====== Simple streambox ====== {{tag>streaming, RSP, FM}} Sur Raspberry pi première génération, juste une carte son USB, darkice , une connexion réseau et c'est tout... - INSTALLATION RASPBERRY PI : - Récupérer la dernière version de raspbian light 32 bit pour cette ancienne Raspberry - option monter la SD et pour ouvrir un ssh sans connecter d'écran - echo 'lepass' | openssl passwd -6 -stdin donne le pass - echo "pi:lepass" > la-ou-est boot/userconf - ou brancher un ecran / clavier pour faire le param de debut et valider le ssh - (touch /boot/ssh) - devrai tmarcher : ssh pi@raspberrypi.local pass : lepass - fonctionne, il faut bien 2 min pour le premier boot... - sudo raspi-config pour mettre a jour - TESTER LE SON avec une carte USB ultra simple - alsamixer pour voir la sortie (hw:1,0 par ex , CODEC pour moi) et régler le volume - INSTALLER DARKICE - sudo apt install darkice - configuration echo " #/etc/darkice.cfg [general] duration = 0 bufferSecs = 10 # gros buffer si wifi ou reseau lent reconnect = yes [input] device = hw:1,0 # pour carte USB sampleRate = 44100 bitsPerSample = 16 channel = 1 [icecast2-0] bitrateMode = abr format = vorbis bitrate = 64 server = parla.net port = 8001 password = passquiva mountPoint = streambox1.ogg name = streambox1 description = flux de streambox1 url = http://parla.net:8001/streambox1.ogg # A changer si necessaire selon le DNS genre = experimental public = yes " > /etc/darkice.cfg # toute la gestion est dans rc.local , old scool... echo "\#!/bin/bash sleep 5 #dhclient eth0 #ifconfig eth0 192.168.1.111 # ou bien verifier que le reseau fonctionnera sleep 3 sudo darkice 2>&1 > /tmp/darkice.log & exit 0 " > /etc/rc.local Le codage Ogg prend moins de ressource que celui en mp3... Ensuite pour les modifications, il faudra monter la carte SD sur un PC et modifier directement le fichier ../etc/darkice.cfg ===== Option transmetteur radio FM pour petits tests===== Avec un bout de fil sur la PIN 7 (4eme coté 1) {{ :ressources:rsp_gpio.jpg?200|}} ou pour le dipôle 7 et 9 (GND) de : https://github.com/markondej/fm_transmitter en compilant le truc : {{ :ressources:fm_transmitter.tgz |}}\\ avec le fichier test au cas zou {{ :ressources:acoustic_guitar_duet.wav |}} il y a aussi https://www.hackster.io/taifur/raspberry-pi-based-wireless-fm-microphone-9f2eeb avec une autre version du coup le rc.local echo "#!/bin/bash sleep 5 ifconfig eth 192.168.3.5 # selon votre reseau sleep 3 su root -c /usr/local/bin/stream.sh & exit 0 " > /etc/rc.local /usr/local/bin/stream.sh #!/bin/sh -e # streambox.sh # # Transmetteur FM de fichier wav (22050Hz 16bit mono) # présent dans /home/pi/SONS # sinon # streaming Darkice de l'entrée microphone d'une carte son USB (1) FREQUENCE_FM=100 # #sleep 2 ##dhclient eth0 # normalement pas besoin? #ifconfig eth0 192.168.3.5 # pour acces reseau localement sleep 2 mkdir -p /home/pi/SONS cd /home/pi/SONS if [ -f darkice.cfg ]; then sudo darkice -c /home/pi/SONS/darkice.cfg 2>&1 > /tmp/darkice.log fi if [ -f frequence_FM ]; then FREQUENCE_FM=`cat frequence_FM` else echo -n "88" > frequence_FM FREQUENCE_FM=88 fi if [ "$FREQUENCE_FM" -lt "88" ] ; then FREQUENCE_FM=88; fi if [ "$FREQUENCE_FM" -gt "110" ] ; then FREQUENCE_FM=110; fi ls -1 *.wav > /dev/null RET=$? if [ $RET -eq "0" ] ; then while true do for i in `ls -1 *.wav` do sudo fm_transmitter -f $FREQUENCE_FM $i 2>&1 > /tmp/fmtransmitter.log done done fi sudo arecord -D plughw:1,0 -c 1 -d 0 -r 22050 -f S16_LE | sudo fm_transmitter -f $FREQUENCE_FM - 2>&1 > /tmp/fmtransmitter.log exit 0 #sudo /usr/src/fm_transmitter/fm_transmitter -f 88 -r /usr/src/fm_transmitter/acoustic_guitar_duet.wav 2>&1 > /tmp/aplay.log ## # # AUTRE et fin #dhclient eth0 exit 0 ===== LE petit programme: ===== FM_transmitter/stream.sh le répertoire de travail est quand on est logé sur la RSP: /home/pi/SONS fichier 'frequence_fm' contient la frequence en MHz\\ si il n'existe pas il est fabriqué avec 88 la transmission FM se fait si il y a des fichiers .wav\\ les fichiers sons sont transmis en boucle dans l'ordre alpha. fichier darkice.cfg contient la configuration du streamer internet darkice\\ si présent , c'est darkice qui se met en route avec ses paramètres si il n'y a ni fichier son .wav , ni le fichier darkice.cfg\\ alors c'est l'entrée micro de la carte sonUSB qui est transmise en FM les fichier son doivent être codés en 16bits 22050Hz mono\\ et déposés sur la carte SD à partir d'un PC\\ le répertoire sera rootfs/home/pi/SONS Ne pas oublier les permissions chmod 755 /usr/local/bin/* arecord -D plughw:1,0 -c 1 -d 0 -r 22050 -f S16_LE | sudo ./fm_transmitter -f 88 - Fonctionne bien !\\ Avec un simple RSP A, les premières, j'ai capté en utilisant un fil-antenne de 64cm (88MHz) a plus de 100m !\\ 4.5 % de CPU ... https://annuradio.fr/commune.php?loc=Rosporden&mode=rech pour trouver des fréquences qui ne dérangent pas. ===== Antenne ===== Pour info, longueur antenne filaire ou dipôle: * 88 MHz : * La longueur d'onde λ 3,407 m * La moitié de la longueur d'onde λ/2 1,703 m * Le quart de la longueur d'onde λ/4 0,852 m * La longueur totale de l'antenne dipôle L 1,66 m * La longueur de la jambe du dipôle l 0,83 m * 100 MHz : * La longueur d'onde λ 2,998 m * La moitié de la longueur d'onde λ/2 1,499 m * Le quart de la longueur d'onde λ/4 0,749 m * La longueur totale de l'antenne dipôle L 1,46 m * La longueur de la jambe du dipôle l 0,73 m * 110 MHz * La longueur d'onde λ 2,725 m * La moitié de la longueur d'onde λ/2 1,363 m * Le quart de la longueur d'onde λ/4 0,681 m * La longueur totale de l'antenne dipôle L 1,33 m * La longueur de la jambe du dipôle l 0,66 m à priori on peut faire un test en 110 MHz ou il y a plus de place. ===== sinon Pistes: ===== * https://github.com/IchigoDelphinium/PiFM une interface graphique de controle FM, * du coup beaucoup de dépendances graphiques, inutiles dans notre cas. Mais en ligne de commande camarche aussi. * arrivé de piperwireen service * probleme si pas une pi4 :( * http://www.hamblog.co.uk/top-10-amateur-radio-uses-for-raspberry-pi/ ==== AM ==== Super travail : https://github.com/F5OEO/rpitx\\ rpitx is a general radio frequency transmitter for Raspberry Pi which doesn't require any other hardware\\ unless filter to avoid intererence. It can handle frequencies from 5 KHz up to 1500 MHz.\\ Rpitx is a software made for educational on RF system.\\ It has not been tested for compliance with regulations governing transmission of radio signals.\\ You are responsible for using your Raspberry Pi legally.\\ A forum is available : https://groups.io/g/rpitx \\ Created by Evariste Courjaud F5OEO. See Licence for using it. Tout cela pour en apprendre un peu plus du trafic radio, nous pourrions écouter d'autre fréquences et d'autres protocoles et **les sonifier** ;-)