Tabla de contenido:

Caja de transmisión de radio con un solo botón: 7 pasos (con imágenes)
Caja de transmisión de radio con un solo botón: 7 pasos (con imágenes)

Video: Caja de transmisión de radio con un solo botón: 7 pasos (con imágenes)

Video: Caja de transmisión de radio con un solo botón: 7 pasos (con imágenes)
Video: ¿CÓMO ACTIVAR LA CÁMARA DE REVERSA DESDE CONFIGURACIÓN? 2024, Noviembre
Anonim
Caja de transmisión de radio de un botón
Caja de transmisión de radio de un botón

Construí una caja para la barra de mi amigo que tiene una Raspberry Pi en el interior y con solo presionar un botón transmite audio a un sitio web usando Darkice e Icecast, mientras enciende simultáneamente un letrero de 'On-Air'. Pensé que esto era algo que la gente ya estaba haciendo, pero después de una búsqueda exhaustiva no encontré nada y decidí resolverlo por mí mismo y hacer este Instructable.

Usé una Raspberry Pi 3+ B pero, por lo que puedo decir, funcionaría en cualquier Pi (quizás los números de pines GPIO variarían, aunque no puedo dar fe de eso). Usé el paquete NOOBS para el sistema operativo y compré una tarjeta de sonido súper simple para la entrada. También agregué un botón de apagado seguro y un LED de actividad a la caja para proteger el Pi.

Necesitará:

Frambuesa pi

Paquete NOOBS en una tarjeta SD

Interruptor de encendido / apagado (utilicé un gran botón rojo de parada de emergencia como este, pero puede ser cualquier tipo de interruptor de 'clic')

Presionar el botón

1 LED

Un letrero de 'On-Air', hice el mío con una matriz de LED

Soldador y placa de conexión pequeña (acabo de cortar una tira de uno de estos que tenía alrededor)

Tarjeta de sonido (usé una súper simple como esta)

Paso 1: configura tu servidor

Para la estación de radio real que estamos usando, no hice esta parte porque no tenía acceso al servidor y mi amigo lo hizo, pero hay una guía de configuración básica en el sitio web de Icecast y logré obtener funciona desde el Pi al principio solo para ver cómo va. Alternativamente, puede obtener una cuenta en internet-radio.com y funciona con Darkice.

Paso 2: configura el Pi e instala Darkice

Obtenga una tarjeta SD con el paquete NOOBS. Una vez que haya abierto Raspbian e instalado todas las actualizaciones, abra una ventana de Terminal y escriba:

sudo apt-get update

sudo apt-get install darkice

Darkice es parte de Debian, por lo que se instalará automáticamente, tardará unos minutos.

Una vez que haya terminado en el indicador, escriba:

hielo oscuro

Dará un mensaje de error y no se ejecutará, pero está bien. En el mensaje dirá algo como:

Usando el archivo de configuración: /etc/darkice.cfg

Necesita editar ese archivo, así que cuando se le solicite escriba:

sudo nano /etc/darkice.cfg

Edite el archivo que se abre usando la información en esta página wiki. Radioreference, cuando haya terminado presione CTRL-X para cerrar, Y para guardar y debe regresar al indicador de Terminal. Siempre es bueno reiniciar después de instalar un nuevo programa, así que escriba:

reiniciar

y cuando el Pi se haya reiniciado, vuelva a abrir una ventana de Terminal. Ahora, cuando escriba 'Darkice', debería ejecutarse sin ningún mensaje de error. Si va a https:// YOURSERVERADDRESS: 8000 / (8000 o cualquier puerto al que esté asignado su servidor icecast), debería obtener una página de estadísticas que diga que está conectado. De lo contrario, modifique el archivo de configuración (la línea de entrada de audio me dio algunos problemas, pero probé todas las opciones y finalmente encontré mi tarjeta de sonido). Una vez que Darkice se esté ejecutando correctamente, continúe con el siguiente paso.

Paso 3: Botón de transmisión y señal al aire

Botón de transmisión y señal al aire
Botón de transmisión y señal al aire

Hice un montón de tutoriales diferentes para esto, ya que no había uno específico para asignar una acción a un botón en Python. El mayor problema al que me enfrenté fue hacer que Darkice se ejecutara en segundo plano (y, por lo tanto, no congelar el script de Python cuando comenzó a ejecutarse), pero le pedí a un amigo codificador que viniera y me ayudara y descubrió una manera de hacerlo escribiendo hojas, algo que yo no entiendo. Aparentemente, también podría ser posible usar un '&' en algún lugar del código, pero no soy un codificador y lo que tengo funciona, así que elegí no meterme con él. Una vez que tuve todo funcionando, comencé a cortar todos los cables de la placa de pruebas hasta que me quedé con la siguiente configuración:

GPIO16 a un conector externo de 3 puntos.

GPIO7 al terminal positivo de la matriz de LED para el signo ON-Air.

GPIO25 al interruptor de clic.

El otro lado del interruptor de clic se conecta al conector de 3 puntos.

El terminal negativo de la matriz de LED también se conecta al conector de 3 puntos.

(Los otros componentes del diagrama se explican en el siguiente paso).

El script de Python con el que terminamos es el siguiente (tenga en cuenta que este es un Instructable para todo el proyecto, realmente no sé lo suficiente para explicar el código. Lo junté de varios otros tutoriales para diferentes funciones):

import timeimport os import RPi. GPIO como GPIO GPIO.setwarnings (False) GPIO.setmode (GPIO. BOARD) ledPin = 12 buttonPin = 16 GPIO.setup (ledPin, GPIO. OUT) GPIO.setup (buttonPin, GPIO. IN, pull_up_down = GPIO. PUD_UP)

toggle = False

def start_darkice ():

print ('llamando al subproceso') #result = subprocess.call ('sh screen -S darkice -d -m darkice') os.system ('screen -S darkice -d -m darkice') print ('reanudando') def stop_darkice (): os.system ('pantalla -X -S darkice quit')

mientras que es cierto:

buttonState = GPIO.input (buttonPin) if buttonState == True: si no cambia: toggle = True print ('activando darkice') start_darkice () #print ('BUTTON STATE TRUE') GPIO.output (ledPin, GPIO. HIGH)

demás:

if toggle: toggle = False print ('deteniendo darkice') stop_darkice () #print ('BUTTON STATE FALSE') GPIO.output (ledPin, GPIO. LOW) time.sleep (1)

El archivo py está adjunto a este instructible, puede descargarlo y seguir el paso 5 si lo desea.

Paso 4: Botón de apagado seguro y LED de actividad

Botón de apagado seguro y LED de actividad
Botón de apagado seguro y LED de actividad

Solo por seguridad y para prolongar la vida útil del Pi, agregué un botón de apagado seguro y un LED de actividad externa para que la gente sepa cuándo es seguro desconectar la caja. Encontré fácilmente tutoriales para ambos, pero noté que la Raspberry Pi 3 B + tiene un pin GPIO asignado de ACT LED, mientras que los modelos anteriores no lo tienen y eso podría ser problemático si tiene una Pi más antigua.

Conecte el terminal positivo del LED a GPIO13 y el negativo a GPIO26. Para que el LED ACT funcione, debe editar el archivo config.txt en el directorio BOOT. Puede encontrar esto en el navegador Raspbian o con:

sudo nano /usr/boot/config.txt

Cuando esté editando el archivo, simplemente agregue las siguientes líneas:

# Utilice LED externo como LED SD ACT dtoverlay = pi3-act-led, gpio = 19

Ahora el LED externo parpadeará con la actividad de la tarjeta SD.

Conecte los terminales del interruptor de empuje a GPIO3 y GPIO8. Encontré el siguiente código de un tutorial y funciona bien:

import timefrom gpiozero import Button from subprocess import check_call from signal import pause

def shutdown ():

check_call (['sudo', 'poweroff'])

shutdown_btn = Botón (2, hold_time = 1)

shutdown_btn.when_held = apagar

pausa()

hora de dormir (1)

Este archivo py también se adjunta para que lo descargue si lo desea. Mi botón debe mantenerse presionado durante 1 segundo, si desea cambiarlo, cambie el valor de 'tiempo de espera ='.

Paso 5: hacer que los scripts de Python se ejecuten desde el inicio

Nuevamente, hay muchos tutoriales sobre este tema, utilicé este de Dexter Industries y seguí el paso uno editando el archivo rc.local.

sudo nano /etc/rc.local

Aquí debe agregar la ruta completa del archivo al final del documento, con un '&' al final de cada línea. Debe agregar una línea para cada uno de los archivos:

sudo python / home / pi / YOURFILENAME, py &

sudo python /home/pi/YOURFILENAME2.py &

justo antes de la línea

salir 0

El '&' al final de cada línea es importante para asegurar que el programa se repita.

Paso 6: construye la caja

Construye la caja
Construye la caja
Construye la caja
Construye la caja
Construye la caja
Construye la caja

Esto depende totalmente de ti. Realmente solo necesita ser del tamaño del Pi, pero puse un compresor en mi configuración para mantener la transmisión de radio a un nivel bastante consistente para que la caja sea un poco más grande. El mío tiene un agujero en la parte delantera para el letrero On-Air y otro para el Big Red Button, además hice una pequeña tarjeta de instrucciones para los DJ y la incrusté debajo del botón. En el costado de la caja hay un orificio para el botón pulsador, el LED ACT y la entrada de audio, además de instrucciones incrustadas para el personal del bar sobre cómo apagar la caja de forma segura.

Paso 7: instalación

Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación
Instalación

Fije todos los componentes separados en su caja, teniendo en cuenta que siempre es bueno dejar algo de circulación de aire alrededor del Pi para evitar el sobrecalentamiento. Conecte los cables de audio de su mezclador, presione el botón y disfrute de la transmisión.

Recomendado: