Índice:
- Etapa 1: configurar seu servidor
- Etapa 2: configurar o Pi e instalar o Darkice
- Etapa 3: botão de transmissão e sinal no ar
- Etapa 4: botão de desligamento seguro e LED de atividade
- Etapa 5: faça com que os scripts Python sejam executados a partir da inicialização
- Etapa 6: construir a caixa
- Etapa 7: Instalação
Vídeo: Caixa de streaming de rádio de um botão: 7 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
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
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
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
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
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:
Microcontrolador AVR. Alterne os LEDs usando um botão de pressão. Botão Debouncing: 4 etapas
Microcontrolador AVR. Alterne os LEDs usando uma chave de botão. Push Button Debouncing: Nesta seção, aprenderemos como fazer o código do programa C para ATMega328PU para alternar o status dos três LEDs de acordo com a entrada de uma chave de botão. Além disso, exploramos uma solução para o problema de ‘Switch Bounce’. Como de costume, nós teremos
A Barbie Box: uma caixa camuflada / caixa de som para seu reprodutor de MP3: 4 etapas (com fotos)
A Barbie Box: uma caixa camuflada / caixa de som para seu reprodutor de mp3: esta é uma caixa de proteção acolchoada para seu reprodutor de mp3 que também converte o fone de ouvido em um quarto de polegada, pode funcionar como uma caixa de som com o toque de um botão e disfarça o seu mp3 player como um toca-fitas do início dos anos noventa ou roubo baixo semelhante
Caixa de som da caixa do reprodutor de mp3: 5 etapas
Caixa de som da caixa do MP3 Player: esta é a minha primeira caixa de som instrutível, então sry se você não entender. materiais: 1. estojo mp3 (o estojo que você ganha ao comprar o mp3 se não sabe o que quero dizer veja a figura 2) 2. faca de exacto 3. alto-falante já feito com conector de áudio veja o passo é tudo que você precisa
Construir uma caixa de bateria para caixa de charuto para rádios de tubo: 4 etapas
Construir uma caixa de bateria de charuto para rádios de tubo: Se você gosta de construir e brincar com rádios de tubo como eu, provavelmente você tem um problema semelhante ao que eu tenho para ligá-los. A maioria dos circuitos antigos foi projetada para funcionar com baterias de alta tensão que não estão mais disponíveis. Então
Caixa de alto-falante com caixa de cedro (charuto?): 8 etapas (com fotos)
Cedar (charuto?) Caixa de alto-falantes: inspirado nos alto-falantes Munny, mas não querendo gastar mais do que US $ 10, aqui está o meu instrutível usando alto-falantes de computador antigos, uma caixa de madeira de um brechó e muita cola quente