Índice:
- Etapa 1: Material necessário
- Etapa 2: os botões
- Etapa 3: o estojo de botões
- Etapa 4: The Raspberry Pi
- Etapa 5: Programação
- Etapa 6: execute o script Python em cada inicialização
- Etapa 7: nota final
Vídeo: Gravador de reprodução com Raspberry Pi: 7 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:39
Olá a todos, Neste instrutível, explico como fiz um gravador de playback usando Raspberry Pi. O dispositivo é um Raspberry Pi modelo B +, com 7 botões na parte superior, um alto-falante conectado a uma das portas usb do Pi e um microfone conectado a outras portas usb. Cada botão está associado a um som, podendo tocar 7 sons diferentes. Os sons são reproduzidos após um breve pressionamento do botão. Para gravar um novo som, basta apertar o botão por mais de 1 segundo, gravar após o bipe e soltar o botão ao final da gravação. Não existe nada mais simples do que isso!
Etapa 1: Material necessário
Para este projeto eu precisava:
- Um Raspberry Pi modelo B + e cartão micro SD - 29,95 $ + 9,95 $
- Uma caixa de plástico Raspberry Pi - 7,95 $
- Alto-falantes USB - 12,50 $
- Um microfone USB - 5,95 $
- Uma placa perma-proto de meio tamanho - 4,50 $
- 7 botões momentâneos - 2,50 $
Eu também precisava de:
- Algum fio elétrico
- Cabeçalhos femininos de ângulo reto
- Um pouco de madeira, tinta preta e cola para a caixa do botão
- Um ferro de solda e solda
Etapa 2: os botões
Os botões usados são bastante altos (6 mm) para que possam atravessar a espessura da caixa.
Coloquei meus 7 botões em uma placa perma-proto, que é como uma placa de ensaio, exceto que os componentes são soldados nela. Isso é mais robusto do que uma placa de ensaio e mais barato do que imprimir um pcb. Cada botão se conecta a um GPIO no Raspberry Pi. Não tenho resistores aqui, pois o Pi já tem resistores pull-up / down internos que serão configurados no programa. Neste caso, configurei-os para pull-up (consulte o programa abaixo).
Os botões são colocados a cada 4 linhas ou a cada 0,4 pol.
Etapa 3: o estojo de botões
Fiz um case bem simples para os botões, com placas de compensado e tarugo quadrado de madeira. O tamanho do pino tem que ser grande o suficiente para conter a base do botão e a placa, mas pequeno o suficiente para deixar a parte superior do botão fora do case. Usei um pino de 1/4 x 1/4 de polegada.
Depois de verificar se a placa se encaixa na caixa, os pinos-guia são colados na folha de base. Em seguida, furos são feitos na folha superior (a placa pode ser usada para fazer marcas com precisão a cada 0,4 polegadas). Todas as partes de madeira são pintadas, o tabuleiro colocado na caixa e a folha de cima colada por cima.
Etapa 4: The Raspberry Pi
Eu não queria soldar os fios diretamente no Pi, caso eu queira usar o Pi para outra coisa no futuro. Portanto, soldei os fios em conectores fêmeas de ângulo reto e conectei os conectores no Pi.
Os GPIOs usados são 21, 26, 20, 19, 13, 6 e 5. O pino de aterramento também é usado.
O microfone e o alto-falante são simplesmente plugados em 2 das 4 portas usb.
O Pi é alimentado através da saída micro-usb
Etapa 5: Programação
Para programar o Pi, eu o conectei à internet usando um cabo ethernet e o controlei de um computador remoto usando o visualizador VNC. No entanto, você não pode usar essa configuração na primeira vez que se conectar ao Pi, porque o sistema operacional ainda não está instalado e o SSH não está desabilitado. Portanto, você precisará conectar uma tela, teclado e mouse, pelo menos na primeira vez.
Foi bastante complicado encontrar os comandos para gravar e reproduzir um som na placa de som certa. Estes são os comandos que funcionaram para mim:
-
aplay -D plughw: CARD = Device_1, DEV = 0 0.wav
Joga 0.wav
-
arecord 0.wav -D sysdefault: CARD = 1 -f cd -d 20
Grava por no máximo 20 segundos no arquivo 0.wav, com qualidade de cd
Os arquivos de som estão localizados no diretório padrão (/ home / pi). Também é necessário um arquivo de som para o bipe, colocado no diretório padrão e chamado beep.wav.
O próprio código python é o seguinte:
código python para um gravador de reprodução Raspberry Pi
importar RPi. GPIO como GPIO |
tempo de importação |
importar os |
#variables: |
butPressed = [True, True, True, True, True, True, True] #se o botão i for pressionado, então butPressed é False |
pino = [26, 19, 13, 6, 5, 21, 20] # pinos GPIO de cada botão |
recordBool = False # True se um registro estiver em andamento |
GPIO.setmode (GPIO. BCM) |
para i no intervalo (0, 7): |
GPIO.setup (pin , GPIO. IN, pull_up_down = GPIO. PUD_UP) # define os resistores internos de Pi para pull-up |
enquanto verdadeiro: |
para i no intervalo (0, 7): |
butPressed = GPIO.input (pin ) # verifica se um botão foi pressionado |
if butPressed == False: #se um botão for pressionado |
previousTime = time.time () |
while butPressed == False and recordBool == False: |
butPressed = GPIO.input (pin ) |
if time.time () - previousTime> 1.0: #se o botão for pressionado por mais de um segundo, então recordBool é True |
recordBool = True |
if recordBool == True: #if recordBool for True, ele reproduz um som de bipe e, em seguida, grava |
os.system ("aplay -D plughw: CARD = Device_1, DEV = 0 beep.wav") |
os.system ("arecord% d.wav -D sysdefault: CARD = 1 -f cd -d 20 &"% i) #records por no máximo 20 segundos no arquivo i.wav, com qualidade de cd |
enquanto butPressed == False: |
butPressed = GPIO.input (pin ) |
os.system ("pkill -9 arecord") # o registro é interrompido quando o botão é solto ou após 20 segundos |
recordBool = False |
else: #if recordBool for False, ele reproduz som i.wav |
os.system ("aplay -D plughw: CARD = Device_1, DEV = 0% d.wav"% i) |
tempo.sono (0,1) |
ver gravador rawPlayback hospedado com ❤ por GitHub
Etapa 6: execute o script Python em cada inicialização
Para executar o script python na inicialização de cada Pi, as seguintes linhas são colocadas em um arquivo chamado playback.desktop na pasta /home/pi/.config/autostart/
executa o playback.py na inicialização do Raspberry Pi
[Desktop Entry] |
Codificação = UTF-8 |
Type = Application |
Nome = Reprodução |
Comment = Este é um aplicativo de reprodução |
Exec = python /home/pi/playback.py |
StartupNotify = false |
Terminal = verdadeiro |
Oculto = falso |
visualizar rawplayback.desktop hospedado com ❤ por GitHub
Etapa 7: nota final
Por favor, diga-me o que você acha deste projeto na seção de comentários, deixe-me saber de suas recomendações e vote em mim no concurso Raspberry Pi se você gostou.
Estou ansioso para ler você!
Recomendado:
Leitor / gravador ScanUp NFC e gravador de áudio para cegos, deficientes visuais e todos os demais: 4 etapas (com imagens)
Leitor / gravador ScanUp NFC e Gravador de Áudio para Cegos, Deficientes Visuais e Todos: Eu estudo desenho industrial e o projeto é o trabalho do meu semestre. O objetivo é apoiar os deficientes visuais e cegos com um dispositivo que permite gravar áudio no formato.WAV num cartão SD e chamar essa informação através de uma etiqueta NFC. Então, em
Relógio regulador de reprodução: 7 etapas (com imagens)
Relógio do regulador de reprodução: Este instructableThis instructable mostra como fazer um relógio regulador de reprodução usando uma caixa de relógio antiga e três movimentos de quartzo. Eu usei um antigo 12 " (300 mm) Caixa do relógio de discagem do Ebay, mas qualquer caixa pode ser usada contanto que
Reprodução de MP3 em parede de efeitos sonoros: 12 etapas (com imagens)
Reproduzindo MP3 Sound FX Wall: Crie uma parede sonora divertida e interativa que reproduz MP3s com um simples toque! O que você faz com uma parede vazia? Você poderia adicionar algumas fotos legais a ele? Ou cubra-o com uma planta de casa colorida. Nós até vimos algumas pessoas esconderem paredes nuas atrás de um livro
Temporizador de reprodução do iPad: 5 etapas (com imagens)
IPad Play Timer: Eu acho que este é um tópico com o qual todo pai está lutando. Quanto as crianças podem brincar com seus iPads (ou qualquer outro tablet). Nós tentamos várias abordagens, como horários fixos, mas isso realmente não funcionou porque nosso filho sempre quis ir para casa de manhã
Reprodução rápida e suja de PCB no Fusion 360: 6 etapas (com imagens)
Reprodução rápida e suja de PCB no Fusion 360: Este é um método rápido e sujo que pode reproduzir rapidamente placas PCB existentes se um modelo 3D ainda não estiver disponível. É especialmente útil para reproduzir rapidamente placas de quebra para fazer verificações de encaixe de componentes ou para renderizações agradáveis de última hora