Sadržaj:

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

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

Video: Snimač reprodukcije sa Raspberry Pi: 7 koraka (sa slikama)
Video: Автомобильный генератор для генератора с самовозбуждением с использованием ДИОДА 2024, Juli
Anonim
Image
Image
Potreban materijal
Potreban materijal

Zdravo svima, U ovom uputstvu objašnjavam kako sam napravio snimač reprodukcije koristeći Raspberry Pi. Uređaj je Raspberry Pi model B+, sa 7 tastera na vrhu, zvučnikom povezanim na jedan od Pi -ovih USB portova i mikrofonom povezanim sa drugim USB portovima. Svako dugme je povezano sa zvukom, pa može reprodukovati 7 različitih zvukova. Zvukovi se puštaju nakon kratkog pritiska na dugme. Za snimanje novog zvuka, jednostavno pritisnite dugme duže od 1 sekunde, snimite nakon zvučnog signala i pustite dugme na kraju snimanja. Ne postaje jednostavnije od toga!

Korak 1: Potreban materijal

Potreban materijal
Potreban materijal
Potreban materijal
Potreban materijal

Za ovaj projekat mi je bilo 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

Takođe mi je bilo potrebno:

  • Neka električna žica
  • Ženska zaglavlja pod pravim uglom
  • Malo drveta, crne boje i ljepila za kućište dugmeta
  • Lemilica i lemljenje

Korak 2: Dugmad

The Buttons
The Buttons
The Buttons
The Buttons
The Buttons
The Buttons

Dugmad koja se koriste su prilično visoka (6 mm) tako da mogu proći kroz debljinu kućišta.

Stavio sam svojih 7 tipki na perma-proto ploču, koja je poput matične ploče, osim što su komponente lemljene na njoj. Ovo je robusnije od matične ploče i jeftinije je od štampanja PCB -a. Svako dugme povezuje zemlju sa GPIO -om na Raspberry Pi -u. Ovdje nemam otpornike jer Pi već ima unutrašnje pull-up/down otpornike koji će biti postavljeni u programu. U ovom slučaju postavio sam ih na pull-up (pogledajte program ispod).

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

Korak 3: Slučaj dugmadi

Futrola za dugmad
Futrola za dugmad
Futrola za dugmad
Futrola za dugmad
Futrola za dugmad
Futrola za dugmad

Napravio sam vrlo jednostavnu futrolu za dugmad, sa listovima šperploče i drvenim kvadratnim tiplom. Veličina tipli mora biti dovoljno velika da sadrži podnožje dugmeta 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 podlogu. 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 drveni dijelovi su 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 direktno na Pi, u slučaju da u budućnosti želim koristiti Pi za nešto drugo. Stoga sam lemio žice na ženskim zaglavljima pod pravim uglom i priključio zaglavlja na Pi.

GPIO -i koji se koriste su 21, 26, 20, 19, 13, 6 i 5. Koristi se i pin za uzemljenje.

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

Pi se napaja preko mikro-USB utičnice

Korak 5: Programiranje

Da bih programirao Pi, povezao sam ga s internetom pomoću Ethernet kabela i kontrolirao ga s udaljenog računara pomoću VNC preglednika. Međutim, ne možete koristiti ovu postavku pri prvom povezivanju na Pi jer OS još nije instaliran i SSH nije onemogućen. Zato ćete morati povezati ekran, tastaturu i miša, barem prvi put.

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

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

    Igra 0.wav

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

    Snima maksimalno 20 sekundi u datoteci 0.wav, sa CD kvalitetom

Zvučne datoteke se nalaze u zadanom direktoriju (/home/pi). Zvučna datoteka za zvučni signal je takođe neophodna, smeštena u podrazumevani direktorijum i nazvana beep.wav.

Python kôd je sljedeći:

python kod za snimač reprodukcije Raspberry Pi

uvezite RPi. GPIO kao GPIO
vreme uvoza
import os
#varijable:
butPressed = [True, True, True, True, True, True, True] #ako je dugme i pritisnuto, onda je butPressed netačno
pin = [26, 19, 13, 6, 5, 21, 20] #GPIO pinovi svakog dugmeta
recordBool = False#Tačno ako je zapis u toku
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 unutrašnje otpornike na povlačenje
dok je True:
za i u rasponu (0, 7):
butPressed = GPIO.input (pin )#provjerava je li pritisnuto dugme
if butPressed == False: #ako je pritisnuto dugme
previousTime = time.time ()
while butPressed == Netačno i recordBool == Netačno:
butPressed = GPIO.input (pin )
ako je time.time () - previousTime> 1.0:#ako je dugme pritisnuto duže od sekunde, tada je recordBool True
recordBool = Tačno
if recordBool == True: #if recordBool je True, pušta 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, sa kvalitetom cd -a
while butPressed == Netačno:
butPressed = GPIO.input (pin )
os.system ("pkill -9 arecord")#zapis se zaustavlja kada se dugme 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)
time.sleep (0,1)

pogledajte rawPlayback snimač hostiran sa ❤ na GitHub -u

Korak 6: Pokrenite Python skriptu pri svakom pokretanju

Da biste pokrenuli python skriptu pri pokretanju svakog Pi -a, sljedeći redovi se stavljaju u datoteku pod nazivom playback.desktop u folder /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 = netačno

pogledajte rawplayback.desktop hostovan sa ❤ na GitHub -u

Korak 7: Završite napomenu

Recite mi šta mislite o ovom projektu u odjeljku za komentare, javite mi svoje preporuke i glasajte za mene na takmičenju Raspberry Pi ako vam se svidjelo.

Radujem se čitanju!

Preporučuje se: