Sadržaj:

Snimač reprodukcije s Raspberry Pi: 7 koraka (sa slikama)
Snimač reprodukcije s Raspberry Pi: 7 koraka (sa slikama)

Video: Snimač reprodukcije s Raspberry Pi: 7 koraka (sa slikama)

Video: Snimač reprodukcije s Raspberry Pi: 7 koraka (sa slikama)
Video: Equipment Corner- OctoPrint configuration 2024, Studeni
Anonim
Image
Image
Potreban materijal
Potreban materijal

Pozdrav svima, U ovom uputstvu objašnjavam kako sam napravio snimač reprodukcije koristeći Raspberry Pi. Uređaj je Raspberry Pi model B+, sa 7 tipki na vrhu, zvučnikom spojenim na jedan od Pi -ovih USB priključaka i mikrofonom spojenim na druge USB portove. Svaki gumb povezan je sa zvukom pa može reproducirati 7 različitih zvukova. Zvukovi se reproduciraju nakon kratkog pritiska tipke. Za snimanje novog zvuka, jednostavno pritisnite gumb dulje od 1 sekunde, snimite nakon zvučnog signala i pustite gumb na kraju snimanja. Ne postaje jednostavnije od toga!

Korak 1: Potreban materijal

Potreban materijal
Potreban materijal
Potreban materijal
Potreban materijal

Za ovaj projekt bilo mi je potrebno:

  • Raspberry Pi model B + i mikro SD kartica - 29,95 USD + 9,95 USD
  • Plastično kućište Raspberry Pi - 7,95 USD
  • USB zvučnici - 12,50 USD
  • USB mikrofon - 5,95 USD
  • Perma-proto ploča polovice veličine-4,50 USD
  • 7 kratkih tipki - 2,50 USD

Trebalo mi je i:

  • Malo električne žice
  • Ženska zaglavlja pod pravim kutom
  • Malo drveta, crne boje i ljepila za kućište gumba
  • Lemilica i lemljenje

Korak 2: Gumbi

Gumbi
Gumbi
Gumbi
Gumbi
Gumbi
Gumbi

Gumbi su prilično visoki (6 mm) tako da mogu proći kroz debljinu kućišta.

Postavio sam svojih 7 gumba na ploču perma-proto, koja je poput matične ploče, osim što su komponente lemljene na njoj. Ovo je robusnije od matične ploče i jeftinije od ispisivanja PCB -a. Svaki gumb povezuje tlo s GPIO -om na Raspberry Pi. Ovdje nemam otpornike jer Pi već ima unutarnje pull-up/down otpornike koji će biti postavljeni u programu. U ovom slučaju postavio sam ih na pull-up (vidi donji program).

Gumbi se postavljaju svaka 4 reda ili svakih 0,4 inča.

Korak 3: Slučaj gumba

Slučaj gumba
Slučaj gumba
Slučaj gumba
Slučaj gumba
Slučaj gumba
Slučaj gumba

Napravio sam vrlo jednostavnu futrolu za gumbe, s listovima šperploče i drvenim kvadratnim tiplom. Veličina tipli mora biti dovoljno velika da sadrži podnožje gumba i ploču, ali dovoljno mala da gumb izlazi iz kućišta. Koristio sam tiple 1/4 in x 1/4.

Nakon što provjerite da li ploča pristaje u kućište, tiple se lijepe na temeljnu ploču. Zatim se na gornjoj ploči izbuše rupe (ploča se može koristiti za precizno označavanje svakih 0,4 inča). Svi su drveni dijelovi obojeni, ploča je postavljena u kućište, a gornji lim zalijepljen na nju.

Korak 4: Raspberry Pi

Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi

Nisam želio lemiti žice izravno na Pi, u slučaju da u budućnosti želim koristiti Pi za nešto drugo. Stoga sam lemio žice na pravokutne ženske zaglavlje i priključio zaglavlja na Pi.

GPIO -i koji se koriste su 21, 26, 20, 19, 13, 6 i 5. Također se koristi pin za uzemljenje.

Mikrofon i zvučnik jednostavno su priključeni u 2 od 4 USB priključka.

Pi se napaja putem mikro-USB utičnice

Korak 5: Programiranje

Za programiranje Pi -a povezao sam ga s internetom pomoću Ethernet kabela i upravljao njime s udaljenog računala pomoću VNC preglednika. Međutim, ovu postavku ne možete koristiti pri prvom povezivanju s Pi jer OS još nije instaliran i SSH nije onemogućen. Zato ćete morati povezati zaslon, tipkovnicu i miša, barem prvi put.

Bilo je prilično mučno pronaći naredbe za snimanje i reprodukciju zvuka na desnoj zvučnoj kartici. Ovo su naredbe koje su mi uspjele:

  • aplay -D plughw: KARTICA = Uređaj_1, DEV = 0 0.wav

    Igra 0.wav

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

    Snima najviše 20 sekundi u datoteci 0.wav, s CD kvalitetom

Zvučne datoteke nalaze se u zadanom direktoriju (/home/pi). Zvučna datoteka za zvučni signal također je potrebna, smještena u zadani direktorij i nazvana beep.wav.

Python kôd je sljedeći:

python kod za snimač reprodukcije Raspberry Pi

uvezite RPi. GPIO kao GPIO
vrijeme uvoza
uvoz os
#varijable:
butPressed = [True, True, True, True, True, True, True] #ako je pritisnuta tipka i, tada je butPressed pogrešno
pin = [26, 19, 13, 6, 5, 21, 20] #GPIO pinovi svakog gumba
recordBool = False#True ako je zapis u tijeku
Način rada GPIO.set (GPIO. BCM)
za i u rasponu (0, 7):
GPIO.setup (pin , GPIO. IN, pull_up_down = GPIO. PUD_UP)#postavlja Pi-ove unutarnje otpornike na povlačenje
dok je istina:
za i u rasponu (0, 7):
butPressed = GPIO.input (pin )#provjerava je li pritisnuta tipka
if butPressed == False: #ako je pritisnuto dugme
previousTime = time.time ()
while butPressed == False i recordBool == False:
butPressed = GPIO.input (pin )
ako time.time () - previousTime> 1.0: #ako je gumb pritisnut dulje od sekunde, tada je recordBool True
recordBool = Istina
if recordBool == True: #if recordBool je True, reproducira zvučni signal, a zatim snima
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)#snima maksimalno 20 sekundi u datoteci i.wav, s kvalitetom cd -a
while butPressed == Netočno:
butPressed = GPIO.input (pin )
os.system ("pkill -9 arecord")#zapis se zaustavlja kad se gumb pusti ili nakon 20 sekundi
recordBool = Netačno
else: #ako je recordBool False, reproducira zvuk i.wav
os.system ("aplay -D plughw: CARD = Device_1, DEV = 0 %d.wav" %i)
vrijeme.spavanje (0,1)

pogledaj rawPlayback snimač hostiran s ❤ na GitHubu

Korak 6: Pokrenite Python skriptu pri svakom pokretanju

Za pokretanje python skripte pri svakom pokretanju Pi -a, sljedeći retci stavljaju se u datoteku pod nazivom playback.desktop u mapu /home/pi/.config/autostart/

pokreće playback.py pri pokretanju Raspberry Pi

[Unos sa radne površine]
Kodiranje = UTF-8
Vrsta = Aplikacija
Naziv = Reprodukcija
Komentar = Ovo je aplikacija za reprodukciju
Exec = python /home/pi/playback.py
StartupNotify = false
Terminal = istina
Skriveno = netočno

pogledajte rawplayback.desktop hostovan sa ❤ na GitHubu

Korak 7: Završite bilješku

Recite mi što mislite o ovom projektu u odjeljku za komentare, javite mi svoje preporuke i glasajte za mene na natječaju Raspberry Pi ako vam se svidio.

Veselim se čitanju!

Preporučeni: