Talaan ng mga Nilalaman:

Recorder ng Playback Sa Raspberry Pi: 7 Hakbang (na may Mga Larawan)
Recorder ng Playback Sa Raspberry Pi: 7 Hakbang (na may Mga Larawan)

Video: Recorder ng Playback Sa Raspberry Pi: 7 Hakbang (na may Mga Larawan)

Video: Recorder ng Playback Sa Raspberry Pi: 7 Hakbang (na may Mga Larawan)
Video: НОЧЬ В СТРАШНОМ ДОМЕ С ДЕМОНОМ / НЕ СТОИЛО СЮДА ПРИХОДИТЬ 2024, Nobyembre
Anonim
Image
Image
Kailangan ng Materyal
Kailangan ng Materyal

Kumusta kayong lahat, Sa itinuturo na ito ipinapaliwanag ko kung paano ako gumawa ng isang recorder ng pag-playback gamit ang Raspberry Pi. Ang aparato ay isang modelo ng Raspberry Pi na B +, na may 7 mga pindutan ng push sa itaas, isang speaker na konektado sa isa sa mga USB port ng Pi, at isang mikropono na nakakonekta sa ibang mga USB port. Ang bawat pindutan ay nauugnay sa isang tunog, kaya maaari itong maglaro ng 7 magkakaibang mga tunog. Pinatugtog ang mga tunog pagkatapos ng isang maikling pindot ng pindutan. Upang magrekord ng isang bagong tunog, pindutin lamang ang pindutan ng higit sa 1 segundo, i-record pagkatapos ng beep, at bitawan ang pindutan sa dulo ng record. Hindi ito magiging mas simple kaysa doon!

Hakbang 1: Kailangan ng Materyal

Kailangan ng Materyal
Kailangan ng Materyal
Kailangan ng Materyal
Kailangan ng Materyal

Para sa proyektong ito kailangan ko:

  • Isang modelo ng Raspberry Pi B + at micro SD card - 29.95 $ + 9.95 $
  • Isang kaso ng plastik na Raspberry Pi - 7.95 $
  • USB speaker - 12.50 $
  • Isang USB mikropono - 5.95 $
  • Isang kalahating sukat na perma-proto board - 4.50 $
  • 7 pansamantalang mga pindutan ng itulak - 2.50 $

Kailangan ko rin:

  • Ang ilang mga wire ng kuryente
  • Mga header na babaeng may tamang anggulo
  • Ang ilang mga kahoy, itim na pintura at pandikit para sa case ng butones
  • Isang soldering iron at solder

Hakbang 2: Ang Mga Pindutan

Ang Mga Pindutan
Ang Mga Pindutan
Ang Mga Pindutan
Ang Mga Pindutan
Ang Mga Pindutan
Ang Mga Pindutan

Ang mga pindutang ginamit ay medyo matangkad (6mm) upang maaari silang dumaan sa kapal ng kaso.

Inilagay ko ang aking 7 mga pindutan sa isang perma-proto board, na tulad ng isang breadboard, maliban sa mga bahagi ay solder dito. Mas matatag ito kaysa sa isang breadboard, at mas mura kaysa sa pag-print ng isang pcb. Ang bawat pindutan ay nag-uugnay sa lupa sa isang GPIO sa Raspberry Pi. Wala akong resistors dito dahil ang Pi ay mayroon nang panloob na pull-up / down resistors na maitatakda sa programa. Sa kasong ito ay itinakda ko ang mga ito upang mag-pull-up (tingnan ang programa sa ibaba).

Ang mga pindutan ay inilalagay bawat 4 na mga hilera, o bawat 0.4 sa.

Hakbang 3: Ang Kaso ng Mga Butones

Ang Kaso ng Mga Butones
Ang Kaso ng Mga Butones
Ang Kaso ng Mga Butones
Ang Kaso ng Mga Butones
Ang Kaso ng Mga Butones
Ang Kaso ng Mga Butones

Gumawa ako ng isang napaka-simpleng kaso para sa mga pindutan, na may mga sheet ng playwud at kahoy na parisukat na dowel. Ang laki ng dowel ay dapat na sapat na malaki upang maglaman ng base ng pindutan at board, ngunit sapat na maliit upang ipaalam ang pindutan sa itaas ng kaso. Gumamit ako ng 1/4 sa x 1/4 sa dowel.

Matapos matiyak na ang board ay umaangkop sa kaso, ang mga dowel ay nakadikit sa base sheet. Pagkatapos ang mga butas ay drill sa tuktok na sheet (ang board ay maaaring magamit upang tiyak na gumawa ng mga marka bawat 0.4 pulgada). Ang lahat ng mga bahagi ng kahoy ay pininturahan, ang board ay nakalagay sa kaso, at ang tuktok na sheet ay nakadikit sa tuktok nito.

Hakbang 4: Ang Raspberry Pi

Ang Raspberry Pi
Ang Raspberry Pi
Ang Raspberry Pi
Ang Raspberry Pi
Ang Raspberry Pi
Ang Raspberry Pi

Hindi ko nais na solder ang mga wire nang direkta sa Pi, kung sakaling nais kong gamitin ang Pi para sa iba pa sa hinaharap. Samakatuwid ay hinihinang ko ang mga wires sa mga kanang-header na babaeng header, at isinaksak ang mga header sa Pi.

Ang mga ginamit na GPIO ay 21, 26, 20, 19, 13, 6 at 5. Ginagamit din ang ground pin.

Ang mikropono at speaker ay naka-plug lamang sa 2 sa 4 na mga USB port.

Ang Pi ay pinalakas sa pamamagitan ng micro-usb outlet

Hakbang 5: Programming

Upang mai-program ang Pi, ikinonekta ko ito sa internet gamit ang isang ethernet cable, at kinontrol ito mula sa isang remote computer gamit ang VNC viewer. Gayunpaman, hindi mo magagamit ang setup na ito sa unang pagkakataon na kumonekta ka sa Pi, dahil ang OS ay hindi pa nai-install at ang SSH ay hindi pinagana. Kaya kakailanganin mong ikonekta ang isang screen, keyboard at mouse, hindi bababa sa unang pagkakataon.

Ito ay medyo isang abala upang mahanap ang mga utos upang i-record at magpatugtog ng isang tunog sa tamang sound card. Ito ang mga utos na gumana para sa akin:

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

    Nagpe-play 0.wav

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

    Mga tala para sa maximum na 20 segundo sa file 0.wav, na may kalidad ng cd

Ang mga file ng tunog ay matatagpuan sa direktoryo ng default (/ home / pi). Ang isang file ng tunog para sa beep ay kinakailangan din, inilagay sa default na direktoryo at tinatawag na beep.wav.

Ang python code mismo ang sumusunod:

python code para sa isang recorder ng playback ng Raspberry Pi

i-import ang RPi. GPIO bilang GPIO
oras ng pag-import
import os
# iba-iba:
butPressed = [Tama, totoo, totoo, totoo, totoo, totoo, totoo]
pin = [26, 19, 13, 6, 5, 21, 20] #GPIO pin ng bawat pindutan
recordBool = Mali # Totoo kung ang isang rekord ay isinasagawa
GPIO.setmode (GPIO. BCM)
para sa saklaw ko (0, 7):
GPIO.setup (pin , GPIO. IN, pull_up_down = GPIO. PUD_UP) #sets panloob na resistors ni Pi upang mag-pull-up
habang Totoo:
para sa saklaw ko (0, 7):
butPressed = GPIO.input (pin ) # suriin kung ang isang pindutan ay pinindot
kung butPressed == Mali: #kung ang isang pindutan ay pinindot
nakaraangTime = oras.time ()
habang butPressed == Mali at recordBool == Mali:
butPressed = GPIO.input (pin )
kung time.time () - nakaraangTime> 1.0: #kung ang pindutan ay pinindot nang higit sa isang segundo, pagkatapos ang recordBool ay Totoo
recordBool = Tama
kung recordBool == Totoo: #kung Totoo ang recordBool, nagpe-play ito ng tunog ng beep at pagkatapos ay nagtatala
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 para sa maximum na 20 segundo sa file i.wav, na may kalidad ng cd
habang butPressed == Mali:
butPressed = GPIO.input (pin )
os.system ("pkill -9 arecord") # ang rekord ay tumigil kapag ang pindutan ay pinakawalan, o pagkatapos ng 20 segundo
recordBool = Mali
iba pa: # kung recordBool ay Mali, gumaganap ito ng tunog i.wav
os.system ("aplay -D plughw: CARD = Device_1, DEV = 0% d.wav"% i)
oras. tulog (0.1)

tingnan ang recorder ng rawPlayback na naka-host sa ❤ ng GitHub

Hakbang 6: Patakbuhin ang Python Script sa bawat Startup

Upang patakbuhin ang script ng python sa pagsisimula ng bawat Pi, ang mga sumusunod na linya ay inilalagay sa isang file na tinatawag na playback.desktop sa folder /home/pi/.config/autostart/

nagpapatakbo ng playback.py sa pagsisimula ng Raspberry Pi

[Entry sa Desktop]
Pag-encode = UTF-8
Type = Application
Pangalan = Pag-playback
Komento = Ito ay isang application ng pag-playback
Exec = python /home/pi/playback.py
StartupNotify = false
Terminal = totoo
Nakatago = hindi totoo

tingnan ang rawplayback.desktop na naka-host sa ❤ ng GitHub

Hakbang 7: Wakas na Tala

Mangyaring sabihin sa akin kung ano ang palagay mo sa proyektong ito sa seksyon ng komento, ipaalam sa akin ang iyong mga rekomendasyon, at iboto para sa akin sa paligsahan sa Raspberry Pi kung gusto mo ito.

Inaasahan na basahin ka!

Inirerekumendang: