Tabla de contenido:

Senior Radio - Raspberry Pi: 8 pasos
Senior Radio - Raspberry Pi: 8 pasos

Video: Senior Radio - Raspberry Pi: 8 pasos

Video: Senior Radio - Raspberry Pi: 8 pasos
Video: Ham Radio and Linux - Building SDR++ on the Raspberry Pi from source code. 2024, Noviembre
Anonim
Senior Radio - Raspberry Pi
Senior Radio - Raspberry Pi

El proyecto Senior Radio es un dispositivo de radio por Internet diseñado y accesible de código abierto con componentes de hardware y software. Está destinado a usuarios familiarizados con el control de una radio de bolsillo donde los diales controlan el volumen y la estación de radio seleccionada. El proyecto se realiza con un diseño centrado en el usuario, enfocado en un usuario que desea un tamaño y controles similares a los de una radio de mano estándar.

Fue construido para satisfacer las necesidades de permitir que las personas con discapacidad puedan escuchar los miles de diferentes contenidos de transmisión de Internet que normalmente solo están disponibles a través de un navegador de Internet. Muchas personas no tienen la capacidad de usar un dispositivo de este tipo fácilmente, por lo que este diseño tiene como objetivo crear una interfaz familiar para una tecnología moderna.

La funcionalidad principal está en Github, almacenada en un programa de Python 3.7.3 llamado seniorRadio.py. Lee y escribe un archivo json para almacenar el estado de la radio, por lo que cuando lo apague recordará el nivel de audio actual y la estación seleccionada. Además, lee un archivo json alojado en línea que puede cambiar. Esto le permite actualizar las estaciones de radio de forma remota si se lo está dando a otra persona.

Actualmente está creado para conectarse a un altavoz bluetooth, pero también se podría hacer que se reproduzca con un altavoz integrado.

Es probable que el creador de este dispositivo no sea el usuario, y necesita al menos algo de experiencia en electrónica y conocimientos básicos de programación. La experiencia con Linux también es muy útil.

Para el usuario, la funcionalidad es simple:

Al encenderlo, reproducirá la última estación seleccionada en el dispositivo de audio predeterminado. El dial izquierdo controla la estación, donde unos pocos clics del dial cambian a una nueva URL. Se desplazará después de la última o la primera entrada. El dial derecho controla el nivel de audio. El LED indica que el programa está encendido. Y el botón hace una pausa o "apaga" la radio. Entonces, una vez encendido, el usuario puede simplemente presionar el botón para pausar / reproducir, o "apagar / encender", la radio y los dos diales para controlarla.

Suministros

Vinculado a cada elemento está el específico que utilicé. ¡Me costó alrededor de $ 60 en total con muchos suministros sobrantes!

Conocimientos básicos de electrónica y linux: para ensamblar y depurar

Raspberry Pi Zero W (Zero WH tiene encabezados presoldados y probablemente útiles)

Tarjeta MicroSD-8 GB + y capacidad o

Adaptador de corriente MicroUSB 5V - Link también incluye un adaptador microHDMI y un adaptador microUSB OTG a USB A para configurarlos si los necesita

bocina Bluetooth

Cables de puente M / F y M / M

2 codificador rotatorio - mismo enlace que el anterior

Placa de pruebas pequeña

Presionar el botón

LED (opcional) - LED comprado + pulsador arriba

Caja para embalaje

Paso 1: Configurar (sin cabeza) Raspberry Pi W

Configuración (sin cabeza) Raspberry Pi W
Configuración (sin cabeza) Raspberry Pi W

Necesitamos configurar el sistema operativo en la raspberry pi que ejecutará el software. Nada de esto es exclusivo de este proyecto. Para la depuración, recomiendo configurarlo para que también pueda acceder a él en modo sin cabeza. Esto significa que accede al pi a través de su red WiFi a través de GUI o un terminal SSH y no necesita un teclado, mouse y monitor para usarlo todo el tiempo. Puede hacer esto sin necesidad de conectarse a un monitor / mouse / teclado si es más experto en tecnología. Algunas instrucciones de ejemplo aquí. Sin embargo, es menos sencillo y a continuación se muestra otra forma de configurarlo.

Esta primera vez probablemente necesitará:

  • Frambuesa Pi W
  • Adaptador de tarjeta MicroSD a SD [para escribir SO en la tarjeta SD]
  • Tarjeta microSD (~ 8 GB +) [para almacenar el sistema operativo y nuestro programa]
  • Potencia microUSB (5V)
  • MicroUSB a USB A [para mouse / teclado]
  • Adaptador Mini HDMI a HDMI [para salida de pantalla]
  • Teclado
  • Ratón
  • Monitor

Primero, deberá actualizar el sistema operativo en la tarjeta micro SD rPi.

Usé raspian buster, descarga esto en una computadora con una tarjeta SD de lectura / escritura y luego flashea el sistema operativo raspian en la tarjeta SD. BalenaEtcher es un software sencillo para hacer esto

A continuación, coloque la tarjeta SD en la ranura pi, conecte el monitor, el teclado y la alimentación. Continúe con los pasos de configuración que le indica raspian, incluida la conexión a su red WiFi y el emparejamiento de su altavoz bluetooth a través de la GUI. Una buena práctica sería actualizarlo usando los siguientes comandos

sudo apt-get update

sudo apt-get upgrade

Si desea incluir marcar su pi sin cabeza, primero necesitaremos obtener la dirección IP del pi. A través de un terminal puedes encontrarlo a través del

ifconfig

mando. Luego debe habilitar SSH y VNC a través de las opciones de interfaz en

sudo raspi-config

Después de un reinicio, ahora puede probar el acceso a pi a través de SSH o VNC. SSH es solo una interfaz de terminal, y puede que le resulte más fácil usar la GUI para emparejar un altavoz bluetooth. Puede usar un programa como VNC connect para acceder fácilmente a su pi en una computadora separada en su red. Puede usar un programa como putty para SSH en él.

Además, puede configurar una cuenta en la nube VNC para que pueda acceder al dispositivo fuera de la red si es necesario

Paso 2: Instale el software de radio para personas mayores

Instalar software de radio para personas mayores
Instalar software de radio para personas mayores

Esto se puede hacer desde una ventana de terminal de la raspberry pi. Primero asegúrate de tener git instalado

sudo apt-get install git

Dependiendo del sistema operativo que haya instalado, estos pasos pueden ser diferentes, ya que es posible que necesite instalar paquetes adicionales, el sistema le dirá si es así. Primero necesitamos descargar el código de radio senior de github. https://github.com/Bunborn/seniorRadio Idealmente, está creando nuestro propio repositorio para que pueda realizar cambios y cambiar fácilmente las estaciones de radio de la misma manera que yo. Bifurcar el repositorio si es así

Sin embargo, puede usar el mismo que el mío sin problema si desea alojar su archivo json de radio en otro lugar

Luego, clone el repositorio en la ubicación que desee. El directorio predeterminado está bien. Obtenga la URL para el repositorio de github que desea presionando el botón verde de clonación o descarga.

De vuelta en la ventana de la terminal, clon de git

Ahora debería ver un directorio adicional llamado seniorRadio al mirar usando ls. ¡Fantástico!

El código está destinado a ser autodocumentado, sería útil echarle un vistazo. Especialmente para fines de depuración y si está cambiando el sistema.

Paso 3: instale software adicional

Instalar software adicional
Instalar software adicional

Antes de pasar al circuito y probarlo, también necesitamos descargar VLC y la API de Python para ello. Es posible que ya tenga VLC instalado. Los dos primeros comandos actualizarán la pi, y los dos últimos comandos a continuación instalarán VLC y luego la api de python

sudo apt-get update

sudo apt-get upgrade

sudo snap instalar VLC

sudo apt-get install vlc-python

Además, también instale gpiozero, que usaremos para interactuar con los pines GPIO de pi. Es posible que ya lo tenga instalado dependiendo de su sistema operativo.

sudo apt-get install gpiozero

Paso 4: Encuentra transmisiones de estaciones de radio

Buscar transmisiones de estaciones de radio
Buscar transmisiones de estaciones de radio

A continuación, ¡una de las partes más divertidas! Es hora de seleccionar las transmisiones que desee.

En mi archivo internetStations.json puede ver mis enlaces de transmisión, principalmente para noticias y música. Pero hay un montón de contenido alojado por ahí. La clave aquí es encontrar la dirección URL de transmisión directa. Por ejemplo, las estaciones de música y noticias de la BBC se pueden encontrar aquí en este blog. Estas transmisiones directas no tendrán ninguna interfaz gráfica y reproducirán automáticamente la transmisión a través del reproductor multimedia de su navegador. Estas son las URL que necesitamos para que VLC pueda leerlas. Puede probar cualquier enlace rápidamente en su navegador web, oa través de VLC en su computadora normal para asegurarse de que funcionará en el pi.

Para encontrar estas estaciones, puede buscar la transmisión directa en línea si el servicio la aloja. Una forma rápida también podría ser reproducir la transmisión, hacer clic derecho en el navegador y presionar "inspeccionar elemento". Navegue a la pestaña de red y debe indicar la URL 'directa' de la transmisión. Este video de youtube demuestra esto. Actualizar la página con la pestaña abierta debería ayudar.

Una vez que tenga sus estaciones, querrá ponerlas en línea para que su programa python seniorRadio pueda capturarlas. Hay muchas opciones para hacer esto, puede usar sitios como Github, bitbucket o incluso sourceforge. El objetivo principal de alojar esta lista en línea es que el usuario que la configura pueda cambiar la lista de transmisiones en línea de forma remota.

Al comienzo del programa python hay una variable llamada url, simplemente cámbiela para que sea la URL de su archivo json con los enlaces de la URL de la estación

Puede seguir el mismo formato que mi archivo internetStation.json. Si también quisiera usar github, simplemente podría bifurcar mi repositorio seniorRadio, editar su propio archivo internetStation.json y apuntarlo a esa URL "sin procesar". Puede encontrar eso a continuación en la GUI de Github una vez que haya hecho clic en el archivo.

Paso 5: crear circuitos

Crear circuitos
Crear circuitos

Ahora necesitamos configurar el circuito. Esto cambiará según su equipo, pero a continuación se muestra cómo configuro el mío.

pinout.xyz/ para referencia sobre qué pines son cuáles. Dado que estamos usando la biblioteca gpiozero, nos preocupamos únicamente por la numeración de pines de BCM. Tenga en cuenta que compré algunos codificadores rotativos KY040 adicionales, los diales, para probarlos, ya que no todos tienen la misma precisión. Cada uno tendría algunos "rebotes", o simplemente una salida incorrecta, así que elegí el mejor de los dos que tenía. En el código, observará que también hay algunos pasos para limitar este rebote.

Conecté mi pulsador al pin 17 de BCM y a tierra

Mi LED a una resistencia de 1k ohmios luego BCM pin 27 y tierra

Mis codificadores rotativos KY040 tenían el cable + a 5V, el GND a tierra y el SW desconectado. Estos estaban conectados a través de una mini placa de pruebas.

Pin dt del codificador rotatorio de la estación conectado al pin 21 del BCM

El pin clk del codificador rotatorio de la estación está conectado al pin 20 del BCM

Pin dt del codificador rotatorio de nivel de audio conectado al pin 19 de BCM

Pin clk del codificador rotatorio de nivel de audio conectado al pin 16 de BCM

Si cambia estos pines, simplemente actualice el número en el programa Python también donde configura los controladores

Usé una mini placa para hacer esto más fácil. También utilicé cables de puente M / M y M / F para facilitar la interfaz. Soldé algunos cables de puente en los pines del botón / LED que compré anteriormente. Para no soldar, puede obtener botones pulsadores y LED que ya tengan cables de puente o que se conecten fácilmente a uno.

Paso 6: ¡Pruébelo

¡Ahora debería tener un sistema en funcionamiento! Probémoslo. Navegue a la carpeta con el programa Python, probablemente:

cd seniorRadio

python3 seniorRadio.py

Actualmente, hay un retraso de 45 segundos al inicio del programa para que tenga tiempo de encontrar el altavoz bluetooth al encenderse. Puede comentar esta línea si no la necesita durante la prueba. El programa puede decirle que necesita instalar paquetes adicionales, continúe si es así. También es posible que deba instalar una versión más reciente de Python.

sudo apt-get install python3.7

Algunos posibles problemas incluso si el programa se ejecuta:

No escucho ningún sonido

Asegúrate de que el altavoz esté encendido y seleccionado en tu raspberry pi. A través de la GUI, debería poder emparejarlo y luego seleccionarlo como su dispositivo de salida de audio. Además, verifique sus controladores de audio. Un problema común es que deba reinstalar el paquete pulseaudio

Audio entrecortado o interrumpido

Intente acercar el dispositivo a su enrutador WiFi. Además, asegúrese de que el altavoz bluetooth esté cerca. También podría ser un problema con el controlador de audio

Paso 7: poner en un recinto permanente

Poner en un recinto permanente
Poner en un recinto permanente

A continuación, ponerlo en una caja o dispositivo similar para que viva de forma permanente. Recomiendo tener uno al que pueda acceder más tarde para depurarlo. Compré esta pequeña caja de madera en una tienda de manualidades por $ 2 y la vinculé en la página de suministros. Uno de mis amigos me recomendó una caja de puros.

Luego corté agujeros en la parte delantera para el botón pulsador y los interruptores giratorios, y perforé un agujero en la parte posterior de la caja para el cable de alimentación microUSB.

Probé la montura y me aseguré de que funcionara, ¡y listo!

Finalmente, utilicé superpegamento para sujetar el botón. Mi tablero tenía un adhesivo en la parte inferior que conecté a parte de la caja. Usé una pequeña tira de cinta adhesiva para asegurar la parte posterior del pi a la caja, de modo que pudiera moverse más tarde si fuera necesario.

Paso 8: Configurar el programa para que se ejecute al iniciar

Finalmente, es probable que desee que este programa de Python se ejecute al iniciar la Raspberry Pi, por lo que no es necesario que lo haga manualmente. Hay muchas formas de hacer esto que puede encontrar en línea.

Personalmente, lo configuré usando la segunda forma en este tutorial de SparkFun:

Aquí, espera a que el sistema ingrese al escritorio gráfico antes de ejecutar el programa. Luego, el programa Python lo retrasa durante 45 segundos para que el sistema tenga tiempo de volver a conectarse al altavoz bluetooth. Si está utilizando un altavoz integrado, puede eliminar este retraso. ¡Tenga en cuenta que el altavoz bluetooth debe estar encendido primero! (para la solución bluetooth)

¡Ahora puedes intentar apagar y volver a encender tu pi! Después de aproximadamente 90 segundos, su pi debería comenzar a reproducir las transmisiones de radio una vez más. Al presionar el botón, se pausará / reproducirá. Tenga en cuenta que en estos reinicios vuelve a leer el archivo json de InternetStations, por lo que si cambia sus estaciones, debe reiniciar el dispositivo para que funcionen. ¡Felicidades!

Si hiciste esto o modificaste el proyecto, ¡házmelo saber!

Página de Github:

Recomendado: