Journal Faire son propre JukeBox avec un Raspberry Pi

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
16
30
avr.
2021

Cher journal,

Aujourd'hui, je te partage comment nous avons fabriqué un jukebox pour nos enfants avec un Raspberry Pi 3.

On est parti sur une base OSMC, avec un écran tactile, une enceinte connectée en filaire et un abonnement spotify family.

Concernant les éléments matériels à se procurer:
- Raspberry Pi
- carte SD avec OSMC dessus (les images se copient facilement avec Etcher)
- écran touch (on a pris un HyperPixel4, petit, fluide et bonne résolution)
- enceinte filaire (bluetooth est possible, mais le son "saute" par moment sur un pi3)
- boîtier imprimé en 3D pour le tout : https://www.thingiverse.com/thing:3153767

Pour l'installation, il faut également:
- écran branché en HDMI
- clavier
- wifi ou ethernet

Une fois l'accès ssh fonctionnel, voici les étapes qu'on a suivi.

  • Installation des paquets nécessaires à l'installeur d'HyperPixel4
apt-get install python-rpi.gpio device-tree-compiler
  • Installation de l'écran à proprement parler
curl -sSL https://get.pimoroni.com/hyperpixel4 | bash
  • Rotation de l’écran
hyperpixel4-rotate right

Concernant la partie tactile, le pilote (goodix) n'est pas activé actuellement. J'ai fait une PR pour qu'il soit intégré par défaut.

Une fois le boitier fonctionnel avec OSMC, il suffit d'installer le plugin Spotify, de personnaliser le menu avec un thème adapté à l'usage tactile (Estouchy par exemple) et le tour est joué.

Au cas où, voici les instructions pour compiler soi-même le module noyau.

  • Identifier la version du noyau
uname -a 
# Dans ce cas, c'est 4.19.122-2-osmc
  • Installer et extraire les sources de ce noyau
apt-get install rbp2-source-4.19.122-2-osmc rbp2-headers-4.19.122-2-osmc
cd /usr/src
tar xvjf rbp2-source-4.19.122-2-osmc.tar.bz2
  • Recopier la configuration et les symboles du noyau en cours d’utilisation
cp /boot/config-4.19.122-2-osmc /usr/src/.config
cp ../rbp2-headers-4.19.122-2-osmc/Module.symvers .
# activer le module => CONFIG_TOUCHSCREEN_GOODIX=m
vim .config
  • Installer les dépendances nécessaires à la compilation
apt-get install build-essential bison flex bc libssl-dev
  • Lancer la compilation, en ciblant le module pour gagner du temps
make oldconfig
make prepare
make modules_prepare
make SUBDIRS=scripts/mod
make SUBDIRS=drivers/input/touchscreen modules
  • Installer le module
cp drivers/input/touchscreen/goodix.ko /lib/modules/4.19.122-2-osmc/kernel/drivers/input/touchscreen/ 
  • On peut vérifier le chargement du module, mais un reboot sera nécessaire pour que l'affichage bascule sur l'écran
depmod 
modprobe goodix
reboot
  • # Photo du résultat

    Posté par  . Évalué à 6 (+4/-0). Dernière modification le 30/04/21 à 16:53.

    Ça serait cool de mettre une photo du résultat pour que l'on se rende compte.

  • # Installer un RaspberryPi sans écran ni clavier

    Posté par  . Évalué à 6 (+4/-0). Dernière modification le 30/04/21 à 17:26.

    Pour info il n'y a pas besoin de clavier ni d'écran HDMI lors de l'installation d'un RaspberryPi.

    Dans la partition /boot de la SDCard (qui est de la FAT je crois, donc facilement modifiable avec n'importe quel système), il faut créer :
    - un fichier wpa-supplicant.conf qui contiendra toutes les infos de la connexion Wi-Fi
    - un fichier vide ssh qui permettra au service SSH de se lancer tout de même

    Enfin il se déclare sur le réseau en rasperrypi.local via les protocoles Avahi/Bonjour.

    En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

  • # Similaire : projet Phoniebox

    Posté par  (site Web personnel) . Évalué à 2 (+1/-0).

    Dans la même veine pour les petits, il y a le projet PhonieBox : un assemblage sans soudure avec un Raspberry Pi. En terme d'interface ce sont des cartes RFID ( ou des puces à coller sur des objets ) qu'on peut associer à des albums.

    Des exemples : 
    Titre de l'image

  • # Volumio

    Posté par  (site Web personnel) . Évalué à 4 (+2/-0).

    Pour ma part j'utilise Volumio qui fait très bien le job. Pas besoin d'écran tactile, tout est piloté via une interface web. Il supporte, nativement ou via un plugin, la plupart des fournisseurs de musique en ligne, les podcasts, les webradio, la discothèque distante sur un NAS, Airplay, DLNA, etc. Il supporte également la plupart des DAC pour Raspberry Pi et est mis à jour très régulièrement. C'est le mieux que j'ai trouvé pour faire d'un Raspberry Pi un lecteur audio complet.

    • [^] # Re: Volumio

      Posté par  . Évalué à 2 (+0/-0). Dernière modification le 30/04/21 à 18:48.

      Pas besoin d'écran tactile, tout est piloté via une interface web

      Je pense que sa solution vise expressément un écran tactile pour l'usage avec des enfants.

      Mais je vais y jeter un oeil, ça pourrait bien m'aller

      En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

    • [^] # Re: Volumio

      Posté par  . Évalué à 1 (+0/-0). Dernière modification le 30/04/21 à 20:44.

      C'est aussi une excellente solution pour sortie USB vers un DAC.
      Les seuls reproches que j'ai à lui faire sont un rafraîchissement de page un peu longuet et une mise en page perfectible sur petits écrans comme un téléphone.

    • [^] # Re: Volumio

      Posté par  . Évalué à 2 (+2/-0).

      Je ne connaissais pas Volumio.
      Pour ma part j'utilise Logitech Media Server (LMS), installé sur mon Raspberry couplé à un DAC Hifiberry, le tout relié à ma chaîne hifi. Il faut ensuite installer Squeezelite, la partie lecteur, qui peut-être soit sur le même Raspberry que LMS (c'est mon cas) ou sur un autre (pour faire du multi-room par exemple).
      Il gère également via des plugins pas mal de fournisseurs de musique en ligne, des radio, podcast, etc.
      Il scanne la médiathèque, classe tout bien comme il faut et récupère les jaquettes. Il est également possible de créer des playlists à l'aide de filtres (genre, notes, années, chanteur, etc).
      Il se pilote soit via une interface web soit via l'appli android Squeezer.

      Il existe également une appli, non libre, SqueezePlayer qui permet de transformer le téléphone en lecteur. Elle coûte 4,79€ mais franchement je n'ai jamais regretté mon achat. C'est pas cher payé pour pouvoir se doucher en musique le matin XD.

      Il est également possible d'écouter la musique provenant de LMS sur un PC (Linux/Windows/Mac) avec le logiciel Squeezeplay.
      Perso j'utilise une ancienne appli, Softsqueeze qui a l'avantage d'être proposé en mode portable sous forme de fichier .jar, ce qui me permet d'écouter la musique de mon serveur au taff avec un java portable (je ne peux rien installer sur mon PC au taff).

      Bref, vous aurez compris que LMS fait parti des rares appli dont je serai bien incapable de me passer aujourd'hui. C'est pas compliqué, un des premiers trucs que je fais en arrivant chez moi c'est d'allumer la chaine hifi sur laquelle est branché LMS, un des premiers trucs que je fais en arrivant au taff c'est de lancer Softsqueeze et un des premiers trucs que je fais une fois levé c'est de lancer SqueezePlayer sur le téléphone.

  • # Volumio

    Posté par  . Évalué à 1 (+1/-0).

    Raspberry pi 3 minimum pour le wifi, un ecran 7' officiel raspberry, un ampli pifi amp a 30€ sur aliexpress avec les pilotes hifiberry et une paire d'enceintes passive. Tout est piloté par volumio. J'ai fait le meme pour ma fille avec un dac pifi et des enceintes edifier a la fois filaire et bluetooth. Un vrai bonheur. Auparavant, j'utilisais le combo raspberry+dac depuis le raspberry pi 1, branché sur mon ampli pionner et piloté par mpd avec rompr pour le contrôle sur pc et mpdroid sur smartphone. L'avantage du mpd etant le stream natif.
    Le hat dac ou amp est indispensable car la sortie analogue du raspberry est vraiment tres mauvaise.

    Pour le stream pur et dur je ne saurai que trop vous conseiller mstream je crois d'ailleurs en avoir entendu parler sur linux.org

    • [^] # Re: Volumio

      Posté par  . Évalué à 2 (+0/-0).

      Moi je cherche une solution pour streamer une entrée analogique. Je veux récupérer le son du décodeur TV (j'ai une carte son USB nickel pour ça niveau connectique) et envoye rle flux sur le réseau, pour le récupérer ailleurs via smartphone + enceinte bluetooth. Le décalage importe peu.

      Je me suis lancé dans darkice + icecast mais c'est un peu une usine à gaz… Si qqu'un a déjà fait ça je suis preneur.

      En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

      • [^] # Re: Volumio

        Posté par  . Évalué à 2 (+2/-0).

        Regarde du coté de VLC, dans mes souvenirs il peut capturer un périphérique en entrée et diffuser en broadcast sur le réseau

      • [^] # Re: Volumio

        Posté par  . Évalué à 3 (+0/-0).

        ce ne serait pas plus simple d'utiliser pulseaudio ou pipewire pour ça et zapper l'étape "smartphone" ?

        • [^] # Re: Volumio

          Posté par  . Évalué à 2 (+0/-0). Dernière modification le 01/05/21 à 15:55.

          quand tu es sur ta terrasse, le smartphone reste une solution simple car complètement mobile. ou alors faudrait imaginer un système complet (rasp + ampli + enceintes) avec batterie intégrée.

          pourquoi pas, mais c'est un autre projet du coup :)

          En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

          • [^] # Re: Volumio

            Posté par  . Évalué à 3 (+0/-0). Dernière modification le 01/05/21 à 18:57.

            c'est à ça que je pensais en fait.

    • [^] # Re: Volumio

      Posté par  . Évalué à 3 (+0/-0).

      volumeio marche aussi sur un pi zero wireless et le dac hifiberry.

      • [^] # Re: Volumio

        Posté par  . Évalué à 1 (+1/-0).

        Oui pour du headless. Ne comptez pas utiliser un ecran branché sur le pi zero. J'avais fait le test avec mon vieux pi modele 1, ca ramait beaucoup trop.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.