Índice:

Gravador de reprodução com Raspberry Pi: 7 etapas (com imagens)
Gravador de reprodução com Raspberry Pi: 7 etapas (com imagens)

Vídeo: Gravador de reprodução com Raspberry Pi: 7 etapas (com imagens)

Vídeo: Gravador de reprodução com Raspberry Pi: 7 etapas (com imagens)
Vídeo: Automação com Raspberry Pi e display touch 7’’ 2024, Julho
Anonim
Image
Image
Material Necessário
Material Necessário

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

Material Necessário
Material Necessário
Material Necessário
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
Os botões
Os botões
Os botões
Os botões
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

A caixa de botões
A caixa de botões
A caixa de botões
A caixa de botões
A caixa de botões
A caixa 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

The Raspberry Pi
The Raspberry Pi
The Raspberry Pi
The Raspberry Pi
The Raspberry Pi
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: