V této relaci použijeme Raspberry Pi a funkce PYGAME k vytvoření zvukové desky. Jednoduše řečeno, připojíme několik tlačítek k pinům GPIO Raspberry Pi a po stisknutí těchto tlačítek Raspberry Pi přehrává zvukové soubory uložené v jeho paměti. Tyto zvukové soubory lze přehrávat jeden po druhém nebo je lze přehrávat všechny společně. Jinými slovy, můžete stisknout jedno nebo více tlačítek současně, Raspberry Pi přehraje současně jeden nebo více zvukových souborů. Podívejte se na ukázkové video na konci tohoto článku. Podívejte se také na naši sérii kurzů Raspberry Pi spolu s některými dobrými projekty IoT.
Máme 26 GPIO pinů v Raspberry Pi, které lze naprogramovat, z nichž některé se používají k provádění některých speciálních funkcí a pak nám zbývá 17 GPIO. Každý pin GPIO může dodávat nebo odebírat maximálně 15 mA. A součet proudů ze všech GPIO nemůže překročit 50mA. Z každého z těchto pinů GPIO tedy můžeme v průměru čerpat maximálně 3 mA. K omezení toku proudu použijeme rezistory. Další informace o pinech GPIO a tlačítku rozhraní s Raspberry Pi najdete zde.
Požadované komponenty:
Zde používáme Raspberry Pi 2 Model B s Raspbian Jessie OS. Všechny základní hardwarové a softwarové požadavky jsou již dříve diskutovány, můžete si je vyhledat v Raspberry Pi Introduction a Raspberry PI LED Blinking pro začátek, kromě toho, co potřebujeme:
- Raspberry Pi s předinstalovaným operačním systémem
- Zdroj napájení
- mluvčí
- 1KΩ rezistor (6 kusů)
- Tlačítka (6 kusů)
- 1000uF kondenzátor
Pracovní vysvětlení:
Zde přehráváme zvuk pomocí tlačítek s Raspberry Pi. K přehrávání 6 zvukových souborů jsme použili 6 tlačítek. Můžeme přidat další tlačítka a zvukové soubory, abychom rozšířili tuto desku a vytvořili krásnější vzor stisknutím těchto tlačítek. Před dalším vysvětlením proveďte následující kroky.
1. Nejprve si stáhněte 6 zvukových souborů z níže uvedeného odkazu, nebo můžete zvukové soubory použít, ale pak musíte změnit názvy souborů v kódu.
Stáhněte si zvukové soubory odtud
2. Vytvořte novou složku na ploše obrazovky Raspberry Pi a pojmenujte ji jako „PI SOUND BOARD“.
3. Stažené zvukové soubory rozbalte do složky, kterou jsme vytvořili na DESKTOPU v předchozím kroku.
4. Otevřete okno terminálu v Raspberry Pi a zadejte následující příkaz:
sudo amixer cset numid = 3 1
Tento příkaz řekne PI, aby poskytoval zvukový výstup přes 3,5 mm zvukový konektor na desce.
Pokud chcete zvukový výstup z portu HDMI, můžete použít následující příkaz:
$ sudo amixer cset numid = 3 2
5. Připojte reproduktory k 3,5mm audio výstupnímu konektoru na desce Raspberry Pi.
6. Vytvořte soubor PYTHON (přípona *.py) a uložte jej do stejné složky. Podívejte se na tento návod pro vytváření a spouštění programu Python v Raspberry Pi.
7. Směšovač Pygame bude ve výchozím nastavení nainstalován v operačním systému. Pokud program po spuštění PYMIXER nevyvolá, aktualizujte operační systém Raspberry Pi zadáním následujícího příkazu v okně terminálu. Zkontrolujte, zda je Pi připojeno k internetu.
sudo apt-get aktualizace
Počkejte několik minut, než se OS aktualizuje.
Nyní připojte všechny komponenty podle níže uvedeného schématu zapojení, zkopírujte program PYHTON do souboru PYHTON vytvořeného na ploše a nakonec stisknutím tlačítka spusťte přehrávání zvukových souborů pomocí tlačítek. Program Python je uveden na konci s ukázkovým videem.
Kruhový diagram:
Vysvětlení programování:
Zde jsme vytvořili program Python pro přehrávání zvukových souborů podle stisknutí tlačítka. Zde musíme pochopit několik příkazů, které jsme v programu použili.
importovat RPi.GPIO jako IO
Chystáme se importovat soubor GPIO z knihovny, výše uvedený příkaz nám umožňuje programovat GPIO piny PI. Přejmenováváme také „GPIO“ na „IO“, takže v programu, kdykoli budeme chtít odkazovat na piny GPIO, použijeme slovo „IO“.
IO.setwarnings (False)
Někdy, když piny GPIO, které se snažíme použít, mohou dělat některé další funkce. Poté obdržíte varování při každém spuštění programu. Tento příkaz říká Raspberry Pi, aby ignoroval varování a pokračoval v programu.
IO.setmode (IO.BCM)
Zde budeme odkazovat na I / O piny PI podle jejich názvu funkce. Takže programujeme GPIO na čísla pinů BCM, což nám umožňuje volat PIN pomocí jejich PIN GPIO č. Stejně jako můžeme v programu zavolat PIN39 jako GPIO19.
importovat pygame.mixer
Voláme pygame mixer pro přehrávání zvukových souborů.
audio1 = pygame.mixer.Sound ("buzzer.wav")
Voláme pro zvukový soubor „buzzer.wav“ uložený ve složce na ploše. Pokud chcete přehrát jakýkoli jiný soubor, stačí změnit název zvukového souboru ve výše uvedené funkci. Můžete pojmenovat všechny soubory přítomné ve složce na ploše.
channel1 = pygame.mixer.Channel (1)
Zde nastavujeme kanál pro každé tlačítko, abychom mohli přehrávat všechny zvukové soubory současně.
if (IO.input (21) == 0): channel1.play (audio1)
V případě, že podmínka v příkazu if je pravdivá, příkaz pod ním bude proveden jednou. Pokud tedy pin 21 GPIO klesne nebo je uzemněn, přehraje zvukový soubor přiřazený proměnné audio1 . Podle obvodového diagramu vidíme, že pin 21 GPIO klesá, když stiskneme první tlačítko. Můžeme tedy přehrát jakýkoli zvukový soubor stisknutím příslušného tlačítka.
zatímco 1: se používá jako smyčka navždy, s tímto příkazem budou příkazy uvnitř této smyčky prováděny nepřetržitě.
Můžete provést změny v programu python, abyste vytvořili nejuspokojivější zvukovou desku s Raspberry Pi. Můžete dokonce přidat další tlačítka, aby byly věci zajímavější a přehrávat více zvukových souborů.