Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Ahoj všichni, V tomto pokynu vysvětluji, jak jsem vytvořil záznamník přehrávání pomocí Raspberry Pi. Zařízení je Raspberry Pi model B+, se 7 tlačítky nahoře, reproduktorem připojeným k jednomu z USB portů Pi a mikrofonem připojeným k jiným USB portům. Každé tlačítko je spojeno se zvukem, takže může přehrávat 7 různých zvuků. Zvuky se přehrají po krátkém stisknutí tlačítka. Chcete -li nahrát nový zvuk, jednoduše stiskněte tlačítko na více než 1 sekundu, nahrajte po pípnutí a uvolněte tlačítko na konci záznamu. Jednodušší to už nebude!
Krok 1: Potřebný materiál
Pro tento projekt jsem potřeboval:
- Karta Raspberry Pi model B + a micro SD - 29,95 $ + 9,95 $
- Plastové pouzdro Raspberry Pi - 7,95 $
- USB reproduktory - 12,50 $
- USB mikrofon - 5,95 $
- Poloviční deska perma-proto-4,50 $
- 7 momentálních tlačítek - 2,50 $
Také jsem potřeboval:
- Nějaký elektrický drát
- Pravoúhlé hlavičky
- Nějaké dřevo, černá barva a lepidlo na pouzdro na knoflíky
- Páječka a pájka
Krok 2: Tlačítka
Použitá tlačítka jsou poměrně vysoká (6 mm), takže mohou procházet tloušťkou pouzdra.
Umístil jsem svých 7 tlačítek na desku perma-proto, která je jako prkénko, kromě toho, že jsou na ni připájeny součásti. To je robustnější než prkénko a levnější než tisk desek plošných spojů. Každé tlačítko spojuje uzemnění s GPIO na Raspberry Pi. Tady nemám odpory, protože Pi již má vnitřní odpínače, které budou nastaveny v programu. V tomto případě jsem je nastavil na pull-up (viz program níže).
Tlačítka jsou umístěna každé 4 řádky nebo každých 0,4 palce.
Krok 3: Pouzdro na tlačítka
Vyrobil jsem velmi jednoduché pouzdro na knoflíky s překližkovými listy a dřevěnou čtvercovou hmoždinou. Velikost hmoždinky musí být dostatečně velká, aby obsahovala knoflíkovou základnu a desku, ale dostatečně malá, aby tlačítko vyčnívalo ven z pouzdra. Použil jsem hmoždinku 1/4 x 1/4.
Poté, co se ujistíte, že se deska vejde do pouzdra, jsou hmoždinky přilepeny k základnímu listu. Poté jsou do horního listu vyvrtány otvory (desku lze použít k přesnému vytváření značek každých 0,4 palce). Všechny dřevěné části jsou natřeny barvou, deska je umístěna v pouzdře a na ni je nalepena horní vrstva.
Krok 4: Raspberry Pi
Nechtěl jsem pájet vodiče přímo k Pi, pro případ, že bych chtěl v budoucnu použít Pi na něco jiného. Proto jsem připájel vodiče k pravoúhlým zásuvkám a zapojil je na Pi.
Použitá GPIO jsou 21, 26, 20, 19, 13, 6 a 5. Používá se také zemnící kolík.
Mikrofon a reproduktor jsou jednoduše zapojeny do 2 ze 4 portů USB.
Pi je napájen z mikro USB zásuvky
Krok 5: Programování
Pro programování Pi jsem jej připojil k internetu pomocí ethernetového kabelu a ovládal jej ze vzdáleného počítače pomocí prohlížeče VNC. Toto nastavení však nemůžete použít při prvním připojení k Pi, protože OS ještě není nainstalován a SSH není zakázán. Alespoň poprvé tedy budete muset připojit obrazovku, klávesnici a myš.
Hledání příkazů k nahrávání a přehrávání zvuku na správné zvukové kartě bylo docela oříšek. Toto jsou příkazy, které pro mě fungovaly:
-
aplay -D plughw: CARD = Device_1, DEV = 0 0.wav
Hraje 0. vl
-
arecord 0.wav -D sysdefault: CARD = 1 -f cd -d 20
Nahrává maximálně 20 sekund do souboru 0.wav, s kvalitou cd
Zvukové soubory jsou umístěny ve výchozím adresáři (/home/pi). Nezbytný je také zvukový soubor pro pípnutí, umístěný ve výchozím adresáři a nazvaný beep.wav.
Samotný kód pythonu je následující:
kód pythonu pro rekordér přehrávání Raspberry Pi
importujte RPi. GPIO jako GPIO |
čas importu |
import os |
#proměnné: |
butPressed = [True, True, True, True, True, True, True, True]#Pokud je stisknuto tlačítko i, pak butPressed je False |
pin = [26, 19, 13, 6, 5, 21, 20] #GPIO piny každého tlačítka |
recordBool = False#True, pokud probíhá záznam |
GPIO.setmode (GPIO. BCM) |
pro i v rozsahu (0, 7): |
GPIO.setup (pin , GPIO. IN, pull_up_down = GPIO. PUD_UP)#nastaví interní odpory Pi na vytažení |
zatímco pravda: |
pro i v rozsahu (0, 7): |
butPressed = GPIO.input (pin )#zkontroluje, zda není stisknuto tlačítko |
if butPressed == False:#pokud je stisknuto tlačítko |
previousTime = time.time () |
while butPressed == False and recordBool == False: |
butPressed = GPIO.input (pin ) |
if time.time () - previousTime> 1.0: #if the button is printed for more than a second, then recordBool is True |
recordBool = Pravda |
pokud recordBool == True: #if recordBool je True, přehraje pípnutí a poté nahraje |
os.system ("aplay -D plughw: CARD = Device_1, DEV = 0 píp.wav") |
os.system ("arecord %d.wav -D sysdefault: CARD = 1 -f cd -d 20 &" %i) #records for maximum 20 seconds in file i.wav, with cd quality |
while butPressed == False: |
butPressed = GPIO.input (pin ) |
os.system ("pkill -9 arecord")#záznam se zastaví po uvolnění tlačítka nebo po 20 sekundách |
recordBool = False |
else: #if recordBool je False, přehrává zvuk i.wav |
os.system ("aplay -D plughw: CARD = Device_1, DEV = 0 %d.wav" %i) |
time.sleep (0,1) |
zobrazit rekordér rawPlayback hostovaný ❤ od GitHub
Krok 6: Při každém spuštění spusťte skript Python
Chcete -li spustit skript pythonu při každém spuštění Pi, vloží se následující řádky do souboru s názvem playback.desktop ve složce /home/pi/.config/autostart/
spustí playback.py při spuštění Raspberry Pi
[Záznam na plochu] |
Kódování = UTF-8 |
Typ = aplikace |
Název = Přehrávání |
Komentář = Toto je aplikace pro přehrávání |
Exec = python /home/pi/playback.py |
StartupNotify = false |
Terminál = pravda |
Skrytý = nepravdivý |
zobrazit rawplayback.desktop hostovaný s ❤ od GitHub
Krok 7: Konec poznámky
Sdělte mi prosím, co si o tomto projektu myslíte, v sekci komentářů, dejte mi vědět o vašich doporučeních a pokud se vám líbil, dejte mi hlas v soutěži Raspberry Pi.
Těším se na vás!