Faire de son Raspberry Pi une Web Radio

Pour faire une web Radio j’ai utilisé les capacités du lecteur « mpd » (je ne détaille pas l’explication de l’installation de mpd, « apt-get install mpd mpc »).

Pour commencer j’ai ajouté une web radio :
mpc add http://streaming.radio.rtl2.fr:80/rtl2-1-44-128

Ensuite j’ai réalisé un petit montage pour ajouter un écran LCD et quelques boutons.

Maestro

Câblage d’un écran LCD et de 4 boutons sur un Raspberry Pi

J’ai trouvé un bout de code Python permettant de gérer un écran LCD de type « HD44780 » (disponible sur ebay pour quelques euros) sur zem.fr . J’ai juste mis le code dans un module Python indépendant (LCD.py).

Les codes sources sont disponible dans mon nouveau repository dédié au Raspberry Pi (vu que je développe directement dessus, j’ai préféré le séparer du repository Arduino). Le Programme s’appelle Maestro et utilise pour le moment quatre boutons, l’un pour faire Pause/Play le second pour Next (changement de station) et les deux derniers pour la gestion du volume.

Il est tout à fait possible d’ajouter ou d’enlever des boutons dans le code, chaque bouton est un objet qui est défini par le port GPIO à utiliser pour le câblage et une fonction de callback.
Dans l’init du GUI, je défini un bouton. Ce bouton restera en attente de ce qui se passe sur un port GPIO. Il a son propre Thread pour la surveillance. A voir si augmenter le nombre de bouton dégrade les performances.

self.bouton4 = Button( 22, self.Button4Pressed )
self.bouton4.start()

Et la fonction de callback qui va augmenter le volume

 def Button4Pressed(self):
  os.system("mpc volume +10")

Le code est volontairement simpliste et ne fait appel qu’a mpc pour le contrôle. Je pars du principe qu’on ne va pas « spammer » les boutons et que le raspberry sera peu ou prou dédié à cette tache.

Je ne sais pas encore si j’utiliserais ce « mini projet », mais s’il s’avère que c’est le cas j’ai dans l’idée d’ajouter un bouton qui ferait passer du mode radio à un mode playlist. Cela permettrait de « meubler » quand la radio diffuse une pub ou une chanson qui ne me plait pas.

Edit : Dans les faits j’utilise effectivement un raspberry Pi pour lire de la musique au salon mais en utilisant un autre système que je décris ici

Publicités

Publié le 29 mai 2013, dans Raspberry Pi. Bookmarquez ce permalien. 9 Commentaires.

  1. Bonjour,
    belle réalisation !!
    Les valeurs des résistances sont bien : 4.7kOhm, 150Ohm et 10kOhm ?
    Auriez-vous faire un shéma de circuit imprimé ?
    Merci d’avance

    • Oui les valeurs de résistances sont bien exactes.
      10k pour les boutons poussoirs, 4.7k pour V0 du LCD et 150 pour A du LCD (empirique pour cette dernière valeur).
      Par contre comme je ne suis pas allé plus loin dans la réalisation donc pas de schéma de PCB.

      • Merci pour cette réponse rapide.
        Désolé pour la faute de français, j’ai glissé
        Bonne continuation

  2. Est-il possible de gérer le fait de rester enfoncé sur un bouton ?
    Comme ils font ici http://www.instructables.com/id/Pandoras-Box-An-Internet-Radio-player-made-with/?ALLSTEPS pour faire un shutdown
    J’aimerais faire un mode radio analogique en plus mais je ne sais pas si le raspberry aura assez de GPIO.

    @+

    • A priori je dirais oui pour l’appui long, mais le code que j’ai écrit ne le gère pas, il faudra l’adapter.
      Par contre pour la radio analogique je n’en suis pas sûr, il me semble que les GPIO sont uniquement numérique et pas analogique. Ou alors il faut rajouter un montage pour transformer de l’analogique en numérique, mais là ça dépasse mes compétences actuelles 😉

  3. Ok j’adapterai
    Pour la radio, j’avais vu ce montage http://3.bp.blogspot.com/-wesHIJoxYNI/URdfn0n-KhI/AAAAAAAAEF8/vXRiyztbxa0/s1600/pinout_TEA5767module.png mais la sortie audio se trouve indépendante c’est pas top 😉
    Sinon sur votre montage le pin 3 du LCD ne devrait pas être sur le + ? Ou sans résistance comme sur zem.fr ?

  4. Bonjour,
    Des news du projet, ou est-il à l’abandon ? car j’essaie d’avoir accès au repository sans succès 😦

    • Le projet n’a pas avancé et devrai même en rester au même point, à savoir quelques briques récupérables par qui voudra.
      J’étudie actuellement une solution à base de squeezebox, les premiers tests sont encourageant. Mais j’attends un DAC en provenance de l’autre bout de la planète pour décider si la sortie son est utilisable ou pas, donc pour le moment … en stand bye.

      Quand au code source, google code est toujours accessible je viens de tester.

  5. Bonjour,

    J’ai exactement le même projet que vous. Je voudrais intégrer cette webradio dans un vieil ampli tuner que j’aurais préalablement vidé. Y intégrer un écran LCD et me servir des boutons existants.

    Bon, je n’en suis pas encore là mais en m’aidant de votre article j’ai fais un schéma PCB.
    Je me suis permis de rajouter une LED d’activité.
    (http://ballow.free.fr/raspberry_tuner_pcb.jpg)

    J’aimerais aussi faire sortir le son en numérique (HDMI et/ou en TosLink par un convertisseur).

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :