Índice:

Caixa de streaming de rádio de um botão: 7 etapas (com imagens)
Caixa de streaming de rádio de um botão: 7 etapas (com imagens)

Vídeo: Caixa de streaming de rádio de um botão: 7 etapas (com imagens)

Vídeo: Caixa de streaming de rádio de um botão: 7 etapas (com imagens)
Vídeo: RÁDIO WEB GRÁTIS CRIE A SUA EM 10 MINUTOS / FREE WEB RADIO CREATE YOURS IN 10 MINUTES 2024, Junho
Anonim
Caixa de transmissão de rádio de um botão
Caixa de transmissão de rádio de um botão

Eu construí uma caixa para o bar do meu amigo que tem um Raspberry Pi dentro e com o toque de um botão ele transmite áudio para um site usando Darkice e Icecast, enquanto simultaneamente acende um sinal 'On-Air'. Achei que isso fosse algo que as pessoas já estivessem fazendo, mas após uma extensa pesquisa, não encontrei nada e decidi descobrir por mim mesmo e tornar isso instrutível.

Eu usei um Raspberry Pi 3+ B, mas pelo que posso dizer, ele funcionaria em qualquer Pi (talvez os números dos pinos GPIO variem, mas não posso atestar isso). Usei o pacote NOOBS para o SO e comprei uma placa de som super simples para a entrada. Também adicionei um botão de desligamento seguro e LED de atividade à caixa para proteger o Pi.

Você vai precisar de:

Raspberry Pi

Pacote NOOBS em um cartão SD

Botão liga / desliga (usei um grande botão vermelho de parada de emergência como este, mas pode ser qualquer tipo de botão de 'clique')

Botão de apertar

1 LED

Um sinal 'On-Air', eu fiz o meu próprio com um conjunto de LED

Ferro de soldar e um pequeno conector (acabei de cortar uma tira de um desses que eu tinha por perto)

Placa de som (usei uma super simples como esta)

Etapa 1: configurar seu servidor

Para a estação de rádio que estamos usando, não fiz esta parte porque não tinha acesso ao servidor e meu amigo fez, mas há um guia de configuração básica no site do Icecast e consegui trabalhando a partir do Pi no início, apenas para ver como vai. Alternativamente, você pode obter uma conta em internet-radio.com e funciona com Darkice.

Etapa 2: configurar o Pi e instalar o Darkice

Obtenha um cartão SD com o pacote NOOBS. Depois de abrir o Raspbian e instalar todas as atualizações, abra uma janela do Terminal e digite:

sudo apt-get update

sudo apt-get install darkice

Darkice é parte do Debian, por isso ele é instalado automaticamente, leva alguns minutos.

Assim que terminar, digite o prompt:

Darkice

Ele vai dar uma mensagem de erro e não funcionar, mas tudo bem. Na mensagem, ele dirá algo como:

Usando o arquivo de configuração: /etc/darkice.cfg

Você precisa editar esse arquivo, portanto, no prompt, digite:

sudo nano /etc/darkice.cfg

Edite o arquivo que abre usando as informações nesta página wiki. Radioreference, quando terminar pressione CTRL-X para fechar, Y para salvar e você deve retornar ao prompt do Terminal. É sempre bom reiniciar depois de instalar um novo programa, então digite:

reinício

e quando o Pi for reiniciado, reabra uma janela do Terminal. Agora, quando você digitar 'Darkice', ele deverá ser executado sem nenhuma mensagem de erro. Se você for para https:// YOURSERVERADDRESS: 8000 / (8000 ou qualquer porta à qual o seu servidor do icecast está atribuído), deverá obter uma página de estatísticas informando que está conectado. Caso contrário, ajuste o arquivo de configuração (a linha de entrada de áudio me deu alguns problemas, mas tentei todas as opções e finalmente encontrei minha placa de som). Assim que o Darkice estiver funcionando corretamente, vá para a próxima etapa.

Etapa 3: botão de transmissão e sinal no ar

Botão de transmissão e sinal no ar
Botão de transmissão e sinal no ar

Fiz vários tutoriais diferentes para isso, pois não havia nenhum específico para atribuir uma ação a um botão em Python. O maior problema que enfrentei foi fazer o Darkice rodar em segundo plano (e, portanto, não congelar o script Python quando ele começou a rodar), mas pedi a um amigo programador para vir e ajudar e ele descobriu uma maneira de fazer isso escrevendo planilhas, algo que eu não entendo. Aparentemente, também poderia ser possível usar um '&' em algum lugar do código, mas não sou um programador e o que tenho funciona, então optei por não mexer com isso. Depois que tudo estava funcionando, comecei a cortar todos os cabos da placa de ensaio até ficar com a seguinte configuração:

GPIO16 para um conector externo de 3 pontos.

GPIO7 para o terminal positivo da matriz de LED para o sinal ON-Air.

GPIO25 para o botão de clique.

O outro lado da chave click-switch é conectado ao conector de 3 pontos.

O terminal negativo da matriz de LEDs também se conecta ao conector de 3 pontos.

(Os outros componentes do diagrama são explicados na próxima etapa).

O script Python que terminamos é o seguinte (observe que este é um Instructable para todo o projeto, eu realmente não sei o suficiente para explicar o código. Eu o reuni de vários outros tutoriais para funções diferentes):

import timeimport os import RPi. GPIO as 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 ('chamando subprocesso') #result = subprocess.call ('sh tela -S darkice -d -m darkice') os.system ('screen -S darkice -d -m darkice') print ('resumindo') def stop_darkice (): os.system ('screen -X -S darkice quit')

enquanto verdadeiro:

buttonState = GPIO.input (buttonPin) if buttonState == True: se não toggle: toggle = True print ('rodando darkice') start_darkice () #print ('BUTTON STATE TRUE') GPIO.output (ledPin, GPIO. HIGH)

outro:

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

O arquivo py está anexado a este Instructible, você pode apenas baixá-lo e seguir a Etapa 5 se desejar.

Etapa 4: botão de desligamento seguro e LED de atividade

Botão de desligamento seguro e LED de atividade
Botão de desligamento seguro e LED de atividade

Apenas por segurança e para prolongar a vida útil do Pi, adicionei um botão de desligamento seguro e um LED de atividade externa para que as pessoas saibam quando é seguro desconectar a caixa. Encontrei facilmente tutoriais para ambos, mas notei que o Raspberry Pi 3 B + tem um pino GPIO atribuído ao LED ACT, enquanto os modelos anteriores não têm, e isso pode ser problemático se você tiver um Pi mais antigo.

Conecte o terminal positivo do LED ao GPIO13 e o negativo ao GPIO26. Para que o ACT LED funcione, você precisa editar o arquivo config.txt no diretório BOOT. Você pode encontrar isso no navegador Raspbian ou com:

sudo nano /usr/boot/config.txt

Ao editar o arquivo, basta adicionar as seguintes linhas:

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

Agora o LED externo piscará com a atividade do cartão SD.

Conecte os terminais da chave de pressão ao GPIO3 e GPIO8. Encontrei o seguinte código em um tutorial e funciona bem:

import timefrom gpiozero import Botão do subprocesso importar check_call da pausa de importação de sinal

def shutdown ():

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

shutdown_btn = Botão (2, hold_time = 1)

shutdown_btn.when_held = shutdown

pausa()

tempo.sono (1)

Este arquivo py também está anexado para download, se desejar. Meu botão deve ser mantido pressionado por 1 segundo, se você quiser alterar isso, altere o valor 'hold-time ='.

Etapa 5: faça com que os scripts Python sejam executados a partir da inicialização

Novamente, há muitos tutoriais sobre esse assunto, usei este da Dexter Industries e segui a etapa um editando o arquivo rc.local.

sudo nano /etc/rc.local

Aqui você precisa adicionar o caminho completo do arquivo ao final do documento, com um '&' no final de cada linha. Você deve adicionar uma linha para cada um dos arquivos:

sudo python / home / pi / SEUFILENAME, py &

sudo python /home/pi/YOURFILENAME2.py &

um pouco antes da linha

saída 0

O '&' no final de cada linha é importante para garantir que os loops do programa.

Etapa 6: construir a caixa

Construir a Caixa
Construir a Caixa
Construir a Caixa
Construir a Caixa
Construir a Caixa
Construir a Caixa

Isso é inteiramente com você. Na verdade, só precisa ser do tamanho do Pi, mas coloquei um compressor em minha configuração para manter o fluxo de rádio em um nível bastante consistente para que a caixa fique um pouco maior. O meu tem um orifício na frente para o sinal On-Air e outro para o Big Red Button, além disso, fiz um pequeno cartão de instruções para os DJs e marquei-o abaixo do botão. Na lateral da caixa há um orifício para o botão, o LED ACT e a entrada de áudio, além de instruções embutidas para o pessoal do bar sobre como desligar a caixa com segurança.

Etapa 7: Instalação

Instalação
Instalação
Instalação
Instalação
Instalação
Instalação
Instalação
Instalação

Fixe todos os componentes separados em sua caixa, tendo em mente que é sempre bom permitir a circulação de ar ao redor do Pi para evitar superaquecimento. Conecte os cabos de áudio do seu mixer, aperte o botão e divirta-se transmitindo!

Recomendado: