Autor Tema: [Tutorial] Receptor de radio Wi-Fi con OpenWrt  (Leído 175077 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 1948
Re: [Tutorial] Receptor de radio Wi-Fi con OpenWrt
« Respuesta #320 en: 13-01-2016, 18:06 (Miércoles) »
@danitool
¡¡¡BRAVO!!!  >:( >:( >:(


No habrás entendido algo, hasta que seas capaz de explicárselo a tu abuela...
Hacemos pantallas con píxeles casi invisibles, para luego ampliar la letra porque no la vemos... Bonita paradoja...
Creamos analfabetos tecnológicos con una velocidad pasmosa. Todo el mundo "maneja" tecnología, casi nadie sabe lo que tiene entre las manos, pero todo el mundo opina.
El analfabetismo, antes, pasaba desapercibido. Ahora, se transmite por Internet y las redes sociales.
Solo a un mandril epiléptico se le podría haber ocurrido diseñar la cinta de menú de M$.

Ficht

  • Visitante
Re: [Tutorial] Receptor de radio Wi-Fi con OpenWrt
« Respuesta #321 en: 14-01-2016, 10:27 (Jueves) »
Buenas, voy a poner algunas cosillas útiles para la radio wifi, fundamentalmente relacionado con el receptor de infrarrojos.

Resulta que en la Raspberry Pi tienen un driver mediante el cual pueden conectar un módulo de infrarrojos a un GPIO y con él usar LIRC. El driver es específico para la rpi. Siempre pensé en adaptarlo pero existía el problema de que bcm63xx no tiene implementados los IRQ en el driver  GPIO así que resultaba imposible.

Pero no hace mucho me di cuenta que los bcm63xx disponen de lo que llaman external IRQs accesibles desde ciertos GPIOs. Todas las placas bcm63xx tienen entre 4 y 6 external IRQs. Y casi siempre podemos encontrar que alguno de ellos está en algún botón del router sobre todo en los bcm6328 donde los GPIO23 GPIO24 van compartidos con dos ext IRQ.

Bien, basándome en el driver de la rpi hice algunas modificaciones, para que de en estos particulares GPIOs tome sus IRQs y los maneje.

El resultado fue totalmente exitoso, el driver me funcionó a la primera. Solo necesité de compilarlo en un firmware con soporte para LIRC.

Usé un TSOP4838 como receptor de infrarrojos (cuesta alrededor de 50 céntimos), y no requiere de ninguna circuitería extra, va directamente conectado al GPIO.
Código: [Seleccionar]
+-----------------------+ 3
|               data -> +---------------------o GPIO34 (BCM6368)
|                         |
|      _____________|
|     /                   |
|    (                    | 2  
|     \____________ + +---------------------o +3.3V
|                         |
|                         | 1
|                         - +---------------------o GND
+-----------------------+

El driver también tiene soporte para el emisor, con lo cual podríamos controlar un ampli externo. Necesitaría de una circuitería adicional detallado en:
https://wiki.openwrt.org/doc/howto/lirc-gpioblaster


El paquete para compilarlo en el kernel aquí:
https://github.com/danitool/openwrt-pkgs/tree/bb/lirc-bcm63xx

Me funcionó tanto en Attitude Adjustment como en Barrier Breaker. Pero a partir de Chaos Calmer parece que se han cargado el controlador de IRQs externos en el kernel debido a que metieron un nuevo driver, que no funciona.

Insisto en que solo unos pocos GPIOs son válidos para el receptor (para el emisor vale cualquiera). Estos GPIOs concretos están en la tabla
https://wiki.openwrt.org/doc/hardware/soc/soc.broadcom.bcm63xx#external_irqs

Algunos GPIOs de esta tabla no fueron comprobados, por ejemplo el 25 y 26 de los bcm6328. Ya que esto no está documentado, o no tenemos acceso a documentación de Broadcom Corp.


También hice alguna modificación en el demonio LIRC irexec, para que cada vez que pulsamos un botón configurado del mando a distancia parpadee un LED del router (a elección)
https://github.com/danitool/openwrt-pkgs/blob/bb/lirc/patches/01-add-irexec_led_blink-option.patch
para que funcione necesita del módulo de kernel kmod-ledtrig-oneshot

Y por último para que además de tener un aviso luminoso tengamos un aviso acústico, hice un howto en la wiki de como añadir un buzzer (zumbador) de corriente contínua al router.

https://wiki.openwrt.org/doc/howto/buzzer-mod


Saludos

Genial!!
esto me viene de perlas.  ;D

raphik

  • Visitante
Re: [Tutorial] Receptor de radio Wi-Fi con OpenWrt
« Respuesta #322 en: 17-01-2016, 14:29 (Domingo) »
@danitool
¡Impresionante! >:(  >:(  >:(

Ficht

  • Visitante
Re: [Tutorial] Receptor de radio Wi-Fi con OpenWrt
« Respuesta #323 en: 25-01-2016, 11:06 (Lunes) »
Hola!!

Le he agregado al router una unidad de CD/DVD... los sistemas de archivos iso, udf , etc... se montan perfectamente.

El problema.

Montar un disco de audio "cdda"
¿como se le puede dar soporte al kernel para poder leer y montar un cd de música?

raphik

  • Visitante
Re: [Tutorial] Receptor de radio Wi-Fi con OpenWrt
« Respuesta #324 en: 25-01-2016, 13:35 (Lunes) »
Los discos compactos utilizan el sistema de archivos CDFS. No está incluido en el kernel de Linux. No obstante, su código se distribuye bajo licencia GPL. Esto significa que su código fuente está publicado y es libre (http://users.elis.ugent.be/~mronsse/cdfs/download/). Sólo hace falta que alguien lo porte a OpenWrt... Una vez montado, el contenido del CD aparecería como ficheros wav.

Fuente: https://en.wikipedia.org/wiki/CDfs

Saludos.


Ficht

  • Visitante
Re: [Tutorial] Receptor de radio Wi-Fi con OpenWrt
« Respuesta #325 en: 25-01-2016, 14:15 (Lunes) »
Los discos compactos utilizan el sistema de archivos CDFS. No está incluido en el kernel de Linux. No obstante, su código se distribuye bajo licencia GPL. Esto significa que su código fuente está publicado y es libre (http://users.elis.ugent.be/~mronsse/cdfs/download/). Sólo hace falta que alguien lo porte a OpenWrt... Una vez montado, el contenido del CD aparecería como ficheros wav.

Fuente: https://en.wikipedia.org/wiki/CDfs

Saludos.



Muchas gracias por la respuesta.  ;)
la verdad que algo así esperaba, porque he estado mirando por toda la configuración de kernel_menuconfig y no hay nada al respecto.
A ver hasta donde llego...

Saludos!

raphik

  • Visitante
Re: [Tutorial] Receptor de radio Wi-Fi con OpenWrt
« Respuesta #326 en: 31-10-2017, 16:59 (Martes) »
Por fin le he puesto una pantalla al router, un LCD 1602 tipo Hitachi 44780 enchufado al puerto serie (el interno o el USB).


¡La velocidad de cada línea es independiente!

Para enviarle texto:
Código: [Seleccionar]
echo "w,0,Texto que sale por pantalla haciendo scrolling   " > /dev/ttyUSB0
Para ajustar la velocidad de avance del texto:
Código: [Seleccionar]
echo "m,1,300" > /dev/ttyUSB0
Saludos.
« Última modificación: 17-04-2018, 20:37 (Martes) por raphik »

Desconectado raphik

  • ****
  • Mensajes: 52
Re: [Tutorial] Receptor de radio Wi-Fi con OpenWrt
« Respuesta #327 en: 22-03-2019, 20:58 (Viernes) »
Ecualizador de audio para OpenWrt

Se podrá equalizar el audio? o al menos escoger equalizaciones preestablecidas
¿Finalmente alguien se ha liado a compilar AlsaEqual para usar con la radio?

Por lo que parece, nadie lo ha conseguido. Lo que sí tenemos es mpg123, una aplicación que incorpora un ecualizador estéreo de 32 bandas.  No sé exactamente desde cuando está disponible para OpenWRT, lo cierto es que para mí constituye un nuevo hallazgo.

mpg123 permite reproducir ficheros, listas de reproducción y streaming de audio en formato mpeg.
https://www.mpg123.de/index.shtml

Instalación.
Código: [Seleccionar]
opkg update
opkg install mpg123

Ejecución en "modo básico".
Código: [Seleccionar]
mpg123 http://bluford.torontocast.com:8539/
Ejecución en "modo interactivo", con teclas de control activadas.
Código: [Seleccionar]
mpg123 -C http://bluford.torontocast.com:8539/
Las teclas de control en "modo interactivo" son:
Citar
s   or space interrupt/restart playback (i.e. '(un)pause')
f   next track
d   previous track
b   back to beginning of track
p   loop around current position (like a damaged audio CD;-)
.   forward
,   rewind
:   fast forward
;   fast rewind
>   fine forward
<   fine rewind
+   volume up
-   volume down
r   RVA switch
v   verbose switch
l   list current playlist, indicating current track there
t   display tag info (again)
m   print MPEG header info (again)
h   this help
q   quit
c   or C pitch up (small step, big step)
x   or X pitch down (small step, big step)
w   reset pitch to zero

Ejecución en "modo control remoto". Para mí, el más interesante.
Primero, creamos por una única vez un fichero especial "FIFO".
Código: [Seleccionar]
mkfifo controlpipeY lanzamos el binario.
Código: [Seleccionar]
mpg123 -R --fifo controlpipe
Los comandos en "modo control remoto" se envían desde un nuevo terminal.
Cargamos la URL.
Código: [Seleccionar]
echo "load http://bluford.torontocast.com:8539" > controlpipe
Ajuste de volumen.
Código: [Seleccionar]
echo "volume 25" > controlpipeLa lista de comandos remotos puede verse aquí: https://github.com/georgi/mpg123/blob/master/doc/README.remote

La sintaxis del comando para controlar la ecualización es "EQ <Canal> <Banda> <Valor>".
Canal: 1 = izquierdo; 2 = derecho; 3 = ambos.
Banda: de la 0 (32 Hz) a la 31 (20 KHz).
Valor: de 0 a 3, siendo 1 el valor por defecto para todas las bandas.

El siguiente ejemplo ajusta ambos canales (3), de la banda de 25 Hz (0) a un valor de 2.
Código: [Seleccionar]
echo "EQ 3 0 2" > controlpipe
Otro ejemplo, canal izquierdo (1) de la banda de 1 (31 Hz) a un valor de 1.2.
Código: [Seleccionar]
echo "EQ 1 1 1.2" > controlpipe
Para visualizar los valores actuales de todos los controles de ecualización.
Código: [Seleccionar]
echo "SHOWEQ" > controlpipe
Eso es todo por hoy.
« Última modificación: 23-03-2019, 09:28 (Sábado) por raphik »

Desconectado raphik

  • ****
  • Mensajes: 52
Re:[Tutorial] Receptor de radio Wi-Fi con OpenWrt
« Respuesta #328 en: 23-03-2019, 09:02 (Sábado) »
El consumo de CPU en "modo control remoto" es del 20% en un HG556a core 0.
Código: [Seleccionar]
mpg123 -R --fifo controlpipe

Aplicando la propuesta publicada en https://www.mpg123.de/faq.shtml, el consumo de CPU baja a un austero 13%.
Código: [Seleccionar]
mpg123 -a plughw:0,0 -R --fifo controlpipe
« Última modificación: 23-03-2019, 09:38 (Sábado) por raphik »