Ràdio internet amb Raspberry Pi i LCD 16×2 amb 5 botons

raspberry internet radioUna placa Raspberry Pi amb una connexió a internet junt amb un kit de pantalla LCD de 2 línies de 16 caracters més 5 botons són ideals per fer-se una ràdio per escoltar les moltes i variades emisores que emeten per internet. Com un TuneIn en plan casolà, però connectat a la cadena música o a uns altaveus. Mentre no arribava el kit vaig preparar un programet en python per provar el sistema, i un cop ha arribat i acabats de soldar els components, l’he adaptat per funcionar amb el kit. Ho podeu baixar tot d’aquí.

Component del kit LCD 16x2 i 5 botons

Funcionament:

S’acopla el kit LCD + botons a sobre una raspberry, es connecta a una cadena de música o altaveus, i es controlen les ràdios des dels botons.

Les emisores estan agrupades en diferents llistes, per exemple per escoltar el futbol, per música kanyera, comercial, jazz, etc.

# up : carrega llista següent
# down : carrega llista anterior
# left : anterior emisora
# right : següent emisora
# select: alterna play/stop. Si es manté premut 2 segons alterna LCD on/off, si 5 segons apaga la RPi.

Demo:

http://www.youtube.com/watch?v=TVemm_1OPO4

Per provar-ho sense tenir el kit lcd+botons, es pot executar python prova.py

Preparatius:

*) Instal·lar MPD i MPC (Music Player Daemon i Client):
$ sudo apt-get install mpd mpc

*) Establir sortida àudio:
$ sudo amixer cset numid=3 1 (see the man pages for amixer)

*) Establir memòria GPU al mínim(16) ja que funcionarà headless [opcional]
$ sudo raspi-config

*) Instal·lar package configobj per python
$ sudo apt-get install python-configobj

*) Instal·lar el relatiu al LCD 16×2:
http://learn.adafruit.com/adafruit-16×2-character-lcd-plus-keypad-for-raspberry-pi/usage
$ sudo nano /etc/modules
I afegir 2 línies:
i2c-bcm2708
i2c-dev

$ sudo apt-get install python-smbus
$ sudo apt-get install i2c-tools

*) Copiar carpeta radio a /home/pi/ o on es vulgui i editar radio.py per establir la variable RUTA segons on s’hagi copiat.

*) Afegir sudo python /home/pi/radio/radio.py a /etc/rc.local per executar-se al arrencar la RPi.


http://www.youtube.com/watch?v=wwMLzdL0w7g

Detall de fitxers:

– radio.conf
LLISTES = per establir manualment els fitxers amb llistes d’emisores a utilitzar. Anomenar els fitxers llista_NomAmostrar.txt
llista = indica la última llista escoltada per carregar-la al iniciar. Aquest valor s’actualitza automàticament.
actuals = indica la última emisora escoltada per a cada llista, per posicionar-s’hi al carregar-la. Aquest valor s’actualitza automàticament, però si s’afegeixen més fitxers a LLISTES cal incrementar l’array.

– llista_*.txt
Contenen les diferents emisores que estaran disponibles a cada llista.
El format és simple: Una línia que comença amb # d’on s’agafarà el nom a mostrar i a la línia següent la url de l’emisora. Es poden deixar línies en blanc després de les urls.
Les llistes i emisores inicials són una petita mostra personal per provar, que caldrà anar completant. La de 40 emisores de Jazz és d’en Joan Quintana.

– radio.py
El programa per escoltar les emisores. És el meu primer contacte amb python i les coses es podrien millorar però més o menys fa el què havia de fer. Es pot modificar a voluntat … ;-)
Per fer proves, recomanat treure el os.system(“sudo halt”) del final del fitxer!

– prova.py
Prova inicial abans de tenir el kit lcd+botons, gestionada per teclat des de la consola.

Més info:

*) Links:
http://learn.adafruit.com/adafruit-16×2-character-lcd-plus-keypad-for-raspberry-pi/
http://wiki.joanillo.org/index.php/Raspberry_Pi:_Internet_R%C3%A0dio

http://www.listenlive.eu/index.html
http://www.listenlive.eu/spain.html
http://www.internet-radio.com/
http://www.shoutcast.com/
http://www.live365.com

Nota:
Algunes emisores ofereixen urls amb extensió .pls o .m3u i no es poden afegir directament amb mpc add … En aquests casos, editar el fitxer .pls o .m3u amb “bloc de notes”, copiar la url que contingui, i amb aquesta url fer el mpc add … o afegir-la a llista_*.txt

*) Material:
– Raspberry Pi model B
http://raspberrypi.org/

– Kit LCD 16×2 + 5 botons
http://www.adafruit.com/products/1110
http://shop.pimoroni.com/collections/kits/products/adafruit-rgb-16×2-lcd-keypad-kit-for-raspberry-pi

– USB WiFi
http://www.amazon.es/TP-Link-TL-WN725N-M%C3%B3dem/dp/B008B7PZU4

– SD 4gb classe 10
http://www.amazon.es/Platinum-Class-SDHC-Secure-Digital/dp/B00509CO3M

Descàrrega / Download:

Última actualització, 07/05/2013: v1.5, Afegits alguns paràmetres configurables a radio.conf. Emisores actuals: rock, alternative, jazz, chillout, classical, nostalgie, lliures, Catalunya, Ispain, news. Si en feu alguna més (o de podcasts) envieu-me-les per incorporar-les… ;-). Noves actualitzacions a pip.cat/radio

Raspberry PiPcat Internet Radio v1.5, script en llenguatge python per escoltar emisores de ràdio i podcasts per internet amb una Raspberry Pi i un kit Adafruit LCD 16×2 amb botons. Veure info_catala.txt per les notes d’instal·lació i actualitzacions (més actualitzat que aquesta entrada del bloc!).

Raspberry Pi Internet Radio v1.5, Python script to listen radios & podcasts through internet with a Raspberry Pi and an Adafruit LCD 16×2 with keypad kit. Read info_english.txt for more info and install instructions.

Versions anteriors amb proves: v06

Temporary case for Raspberry Pi Internet Radio

M´agrada
1
Aquesta entrada s'ha publicat a Tecnologia i etiquetat amb , , , , . Afegiu a les adreces d'interès l'enllaç permanent.

11 comentaris a l'entrada: Ràdio internet amb Raspberry Pi i LCD 16×2 amb 5 botons

  1. Kamencesc diu:

    Ostres, molt bé! Del codi hi ha alguna cosa que m’interessa molt, estic preparant un projecte que sols té 2 botons i el fet de controlar la polsació de 2 i 5 segons m’anirà super bé :) no sabia per ón començar a buscar!

    Per cert, el TP-Link no et va portar problemes? endollar i llestos?

  2. pipcat diu:

    El TP-Link WN725N es va detectar correctament sense haver d’instal·lar res addicional. A vegades el problema pot estar amb l’alimentació, que no és capaç de donar prou potència, i algun usb com el wifi deixa de funcionar.

  3. sadhuram diu:

    La pantalla LCD es connecta directament a la respberry pi? És que a molts llocs veig que la conecten amb una bread board i a mi m’interessaria fer-ho sense.

  4. pipcat diu:

    Sí, el kit d’Adafruit (LCD + botons) té la mateixa mida que la Raspberry i es connecta a sobre d’ella, sense necessitat de res més. Això sí, cal tenir un soldador pq el kit ve sense muntar, però és més fàcil i ràpid del què pugui semblar… ;-)

  5. calanor diu:

    Hola ja tinc tot el material i estic a punt de començar amb aquest projecte. Només volia fer unes preguntes.

    Que fas servir de base, el raspbian?
    Com el tens configurat?
    Quant tarda en arrancar des de cero, o deixes la raspberry sempre encesa.

  6. calanor diu:

    Un altra cosa, he comprat el LCD 16×2 B&W i sembla que tu fas servir el RGB.
    Saps si pot tenir algun problema de compatibilitat amb els teus scripts?

  7. calanor diu:

    El LCD 16×2 m’ha vingut amb unes taques sota el plàstic protector del LCD , sort que ho he vist abans de muntar-lo si no dirien que ha sigut cosa meva. Per fer-me el canvi volien que jo pagués les despeses d’enviament (dues direccions) però finalment han accedit a enviar-me un de nou sense cost addicional.

    De moment l’estic controlant des d’una senzilla web HTML5 adaptada pel mòbil. Només he tingut que instal·lar lighttpd i php i escriure quatre línies de codi.

    sudo apt-get -y install lighttpd
    sudo apt-get -y install php5-common php5-cgi php5
    sudo lighty-enable-mod fastcgi-php

    Si algú està interessat que m’ho digui que li passo el php.

    I per acabar, i ha una cosa que hem preocupa que es com mecanitzar els botons del LCD. He cercat per Internet però no he vist cap kit d’aquests amb els 5 botons completament acabat. Ho mes acabat que he vist es semblant a la foto d’aquest blog amb la caixa nespresso i els boton a l’àire.
    Teniu idea de com es podria fer?

  8. calanor diu:

    M’he he animat.
    Al principi vaig deixar el codi tal qual surt en aquest blog.
    Després li vaig afegir una web HTML5 adaptada per manegar-ho mes fàcilment des del mòbil o la tablet. (En un futur faré una app nativa per Android).
    Després li vaig afegir el ús del la biblioteca de música que tinc en un altra màquina muntada en nfs. Brutal com mpd manega les biblioteques de música.
    Després vaig convertir les llistes de radio en una bd sqlite i li he afegit prop de 5000 emissores més completament indexades.
    Finalment, com que lo de tenir importada la biblioteca en nfs implicava tenir el servidor on està la música sempre engegat, i aprofitant que tinc tota la biblioteca en google-music, li he donat suport de google-music i ara puc navegar per tota la meva biblioteca i llistes de reproducció del nuvol des de qualsevol lloc.

    Aniré informant.

    • pipcat diu:

      Fa molt bona pinta tot això que expliques… ;-) Si ho publiques a algun lloc passa’t el link o si vols que ho afegeixi en aquesta pàgina estaria de conya!

Deixa un comentari

L'adreça electrònica no es publicarà Els camps necessaris estan marcats amb *