domingo, 26 de agosto de 2012

Radio Wifi con Raspberry Pi y Arduino

Hace tiempo que me llegó el mini ordenador Raspberry Pi. Llevaba bastantes meses siguiendo el proyecto y me pareció muy interesante, por lo que en cuanto salió a la venta compré uno para cacharrear con él cuando tuviese más tiempo.

Aunque para un uso normal como PC, Raspberry Pi (de ahora en adelante RPi) queda algo corto de potencia para tareas comunes como navegar por Internet (Su CPU es un ARM a 700MHz), su pequeño tamaño, bajo consumo y bajo precio lo hacen ideal para un montón de proyectos: Servidor de archivos, NAS, PC para dejar compartiendo torrents 24 horas (su consumo ronda 1W, incluso algo menos) y muchísimas cosas más.

Mi proyecto es construirme una radio que permita reproducir emisoras online. Mi idea es utilizar el Raspberry Pi con su distribución Linux oficial e instalarle algún reproductor que permita reproducir streams de audio (emisoras) de manera sencilla. Dado que el RPi tiene una salida de audio analógica (mini-jack), la idea es que sea él el que se encargue de reproducir y conectarle unos altavoces antiguos para amplificar la señal y poder oírla.

RPi también tiene un puerto de red para poderlo conectar a Internet con un cable estándar. Sin embargo, dado que no queremos limitar nuestra radio a estar cerca de un router, la conexión a internet será mediante Wifi. Concretamente con un adaptador USB 2.0 Ovislink EVO-W541USB que tenía por casa.

¿Y qué pinta el Arduino en esta radio? Pues debido a su facilidad para conectarlo a Pantallas LCD, botones y otras interfaces nos servirá de puente para conectar un display LCD que nos muestre la información de lo que esté sonando, las emisoras, etc. También nos servirá para controlar la radio, ya sea a través de botones o a través de un mando a distancia y un receptor de infrarrojos (lo he usado en un proyecto anterior y responde a la perfección). En cuanto a los displays, la mayoría de ellas son de caracteres, y utilizan en chip HD44780 para su control. Arduino tiene librerías que nos facilitan trabajar con este tipo de pantallas, por lo que no será difícil utilizarlas.

En mi casa tengo varias de estas pantallas de diferentes tamaños y colores. En cuanto a tamaños tengo unas de 16 caracteres y 2 líneas, y otras de 20 caracteres y 4 líneas. Aún no he decidido cuál de ellas voy a usar, aunque me inclino por la grande, ya que me permitiría incluir más información y algún icono adicional para indicar por ejemplo la cobertura del Wifi, el bitrate de la transmisión, etc.

Por último queda saber cómo se conectarán el Arduino y el RPi. En este caso la conexión la haremos emulando un puerto serie a través de USB. Haremos un programa en Python que se encargue de enviar los datos a representar en la pantalla desde el RPi al Arduino y que reciba de éste las pulsaciones de los botones o del mando a distancia y procese las órdenes.

1 comentario:

  1. Hola. Buscando proyectos para hacer con mi Raspberry Pi y Arduino encontré tu blog.
    Me parece muy interesante, voy a comenzar el proceso. Intentaré conseguirlo!

    ResponderEliminar