Taula de continguts:

Gravador de reproducció amb Raspberry Pi: 7 passos (amb imatges)
Gravador de reproducció amb Raspberry Pi: 7 passos (amb imatges)

Vídeo: Gravador de reproducció amb Raspberry Pi: 7 passos (amb imatges)

Vídeo: Gravador de reproducció amb Raspberry Pi: 7 passos (amb imatges)
Vídeo: Топ 5 скрытых полезных программ Windows 10 2024, Desembre
Anonim
Image
Image
Material necessari
Material necessari

Hola a tothom, En aquest instructiu explico com vaig fer una gravadora de reproducció amb Raspberry Pi. El dispositiu és un model Raspberry Pi B +, amb 7 polsadors a la part superior, un altaveu connectat a un dels ports USB del Pi i un micròfon connectat a un altre port USB. Cada botó està associat a un so, de manera que pot reproduir 7 sons diferents. Els sons es reprodueixen després de prémer breument el botó. Per gravar un so nou, només cal prémer el botó durant més d'un segon, gravar després del pit i deixar anar el botó al final del registre. No és més senzill que això.

Pas 1: Material necessari

Material necessari
Material necessari
Material necessari
Material necessari

Per a aquest projecte necessitava:

  • Una Raspberry Pi model B + i targeta micro SD: 29,95 $ + 9,95 $
  • Una caixa de plàstic Raspberry Pi: 7,95 $
  • Altaveus USB: 12,50 $
  • Un micròfon USB: 5,95 $
  • Una placa perma-proto de mida mitjana: 4,50 $
  • 7 botons momentanis: 2,50 $

També necessitava:

  • Alguns cables elèctrics
  • Capçaleres femenines d'angle recte
  • Una mica de fusta, pintura negra i cola per a la funda del botó
  • Un soldador i soldador

Pas 2: els botons

Els botons
Els botons
Els botons
Els botons
Els botons
Els botons

Els botons utilitzats són bastant alts (6 mm) perquè puguin passar pel gruix de la caixa.

Vaig col·locar els meus 7 botons en una placa perma-proto, que és com una taula de tall, excepte que hi ha soldats components. Això és més robust que un tauler de revisió i és més barat que imprimir un PCB. Cada botó enllaça terra amb un GPIO al Raspberry Pi. No tinc resistències aquí, ja que el Pi ja té resistències internes de pujada / baixada que es configuraran al programa. En aquest cas, els he configurat per fer-los arribar (vegeu el programa més avall).

Els botons es col·loquen cada 4 files o cada 0,4 polzades.

Pas 3: el cas dels botons

El cas dels botons
El cas dels botons
El cas dels botons
El cas dels botons
El cas dels botons
El cas dels botons

Vaig fer una funda molt senzilla per als botons, amb fulls de fusta contraxapada i tac de fusta quadrat. La mida de la clavilla ha de ser prou gran per contenir la base del botó i el tauler, però prou petita per deixar que la part superior del botó surt de la caixa. He utilitzat una espiga de 1/4 de x 1/4 de polzada.

Després d’assegurar-se que el tauler s’adapta a la caixa, els tacs s’enganxen al full base. A continuació, es perforen forats al full superior (el tauler es pot utilitzar per fer marques amb precisió cada 0,4 polzades). Totes les parts de fusta estan pintades, el tauler col·locat a la caixa i la làmina superior enganxada a sobre.

Pas 4: el Raspberry Pi

El Raspberry Pi
El Raspberry Pi
El Raspberry Pi
El Raspberry Pi
El Raspberry Pi
El Raspberry Pi

No volia soldar els cables directament al Pi, per si volia utilitzar el Pi per a una altra cosa en el futur. Per tant, he soldat els cables a capçaleres femenines d’angle recte i he connectat les capçaleres al Pi.

Els GPIO que s’utilitzen són 21, 26, 20, 19, 13, 6 i 5. També s’utilitza el pin de terra.

El micròfon i l’altaveu es connecten simplement a 2 dels 4 ports USB.

El Pi s’alimenta a través de la presa micro-usb

Pas 5: programació

Per programar el Pi, el vaig connectar a Internet mitjançant un cable ethernet i el vaig controlar des d’un ordinador remot mitjançant el visor VNC. Tot i això, no podeu utilitzar aquesta configuració la primera vegada que us connecteu al Pi, perquè el sistema operatiu encara no està instal·lat i SSH no està desactivat. Per tant, haureu de connectar una pantalla, un teclat i un ratolí, almenys la primera vegada.

Va ser bastant complicat trobar les ordres per gravar i reproduir un so a la targeta de so adequada. Aquestes són les ordres que han funcionat per a mi:

  • aplay -D plughw: CARD = Device_1, DEV = 0 0.wav

    Reprodueix 0.wav

  • arecord 0.wav -D sysdefault: CARD = 1 -f cd -d 20

    Registra un màxim de 20 segons al fitxer 0.wav, amb qualitat de CD

Els fitxers de so es troben al directori per defecte (/ home / pi). També és necessari un fitxer de so per al so, situat al directori per defecte i anomenat beep.wav.

El codi python en si és el següent:

codi python per a una gravadora de reproducció Raspberry Pi

importar RPi. GPIO com a GPIO
temps d'importació
import os
#les variables:
butPressed = [True, True, True, True, True, True, True] #if Se prem el botó i, llavors butPressed és False
pin = [26, 19, 13, 6, 5, 21, 20] #GPIO pins de cada botó
recordBool = False # True si un registre està en curs
GPIO.setmode (GPIO. BCM)
per a l’interval (0, 7):
GPIO.
mentre que és cert:
per a l’interval (0, 7):
butPressed = GPIO.input (pin ) # comprova si es prem un botó
si peròPremeu == Fals: #si es prem un botó
previousTime = time.time ()
mentre butPressed == False i recordBool == False:
butPressed = GPIO.input (pin )
si time.time () - anteriorTime> 1.0: #si es prem el botó durant més d'un segon, recordBool és True
recordBool = Cert
si recordBool == True: #if recordBool és True, reprodueix un so i després 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 durant un màxim de 20 segons al fitxer i.wav, amb qualitat de cd
mentre butPressed == Fals:
butPressed = GPIO.input (pin )
os.system ("pkill -9 arecord") # el registre s'atura quan es deixa anar el botó o després de 20 segons
recordBool = Fals
else: #if recordBool és fals, reprodueix el so i.wav
os.system ("aplay -D plughw: CARD = Device_1, DEV = 0% d.wav"% i)
time.sleep (0,1)

visualitza la gravadora rawPlayback allotjada amb ❤ per GitHub

Pas 6: executeu el script Python a cada inici

Per executar l'script python a l'inici de cada Pi, les línies següents es col·loquen en un fitxer anomenat playback.desktop a la carpeta /home/pi/.config/autostart/

executa playback.py a l'inici de Raspberry Pi

[Entrada d'escriptori]
Codificació = UTF-8
Tipus = Aplicació
Nom = Reproducció
Comentari = Aquesta és una aplicació de reproducció
Exec = python /home/pi/playback.py
StartupNotify = fals
Terminal = cert
Amagat = fals

veure rawplayback.desktop allotjat amb ❤ per GitHub

Pas 7: finalitzar la nota

Si us plau, digueu-me què opineu d’aquest projecte a la secció de comentaris, feu-me saber les vostres recomanacions i voteu-me al concurs Raspberry Pi si us ha agradat.

Amb ganes de llegir-vos!

Recomanat: