Jeffrey Cross
Jeffrey Cross

Spoušť zvuku Halloween s Raspberry Pi a Arduino

[vimeo: https: //vimeo.com/51950656]

Lidé se mě ptali na zajímavé aplikace pro Raspberry Pi a zda Raspberry Pi je nějakým Arduinským vrahem. Odpověď na druhou otázku je ne; ve skutečnosti je to Arduino augmenter. Tento blog post odpoví na první otázku s jinou otázkou: jak se o strašidelný dům zvukové efekty stroj?

V pátek minulý pátek vyšla nová revize předčasného vydání programu Začínáme s Raspberry Pi. Četl jsem kapitolu Matta Richardsona o používání Pygame s piny GPIO na Pi, který obsahoval jednoduchý přehrávač zvuku. Přizpůsobil jsem jeho příklad práci s Arduinem, který mluví s Pi přes sériové spojení; tento skeletální (ahem) spoj by mohl být snadno začleněn do nějaké instalace Halloweenu. Rozhodl jsem se použít Arduino pro čtení vstupů, protože z krabice je robustnější a zvládne širší škálu vstupů. Také existuje mnoho existujících strašidelných domů spouštějící dema ve volné přírodě, které používají Arduino.

Nejdříve budete muset připravit spouštěcí obvod. Následující příklad používá tři přepínače, ale můžete nahradit ty, které mají jakýkoliv druh vstupů zapnuto / vypnuto. V strašidelném domě (nebo na verandě založené instalaci triků nebo šlapadel) by byl PIR senzor vhodný pro spouštění na základě blízkosti.

Zde je základní schéma:

10k odpory mohou být nahrazeny vlastními odporovými odpory Arduino, pokud víte, jak to udělat.

Připojil jsem Arduino k Raspberry Pi pomocí USB kabelu. I když jsem měl Pi připojený k monitoru, zjistil jsem, že jsem mohl zapojit Arduino přes USB konektor Mac klávesnice a z toho mám dost síly. Pokud máte starší Raspberry Pi s polyfusy omezujícími napájení na USB portu (zkontrolujte, zda máte 2 malé zelené pojistky označené „1104“ vedle portů USB), můžete potřebovat externí rozbočovač nebo spustit bezhlavý Pi uvolnění portu USB.

Poté nahrajte následující náčrt na Arduino:

// PiTalk.ino // Čte tři digitální vstupy. Mohlo by to být jakýkoliv druh přepínače nebo (pro Halloween) PIR senzorů. byte onState [3] = {0, 0, 0}; // uloží stav každého pin void setup () {Serial.begin (9600); // Otevřít sériové připojení pinMode (2, INPUT); // Nastavte tyto tři piny pro čtení pinMode (3, INPUT); // Každý má 10k pullup externě pinMode (4, INPUT); // tak je spoušť LOW} void loop () {for (int i = 0; i <3; i ++) {// Iterace přes piny, pokud (digitalRead (i + 2) == LOW) {// Zkontrolujte, zda bylo spuštěno if (onState [i] == 0) {// Právě spuštěno? Serial.write (i + 2); // Poslat číslo pin onState [i] = 1; // ale jen jednou}} else {onState [i] = 0; // Nespusteno}} zpoždění (20); }

Můžete použít svůj počítač k nahrání programu, nebo si můžete stáhnout a nainstalovat Arduino IDE přímo na Raspberry Pi (jak je popsáno v další verzi Začínáme s Raspberry Pi).

Jakmile je Arduino naprogramováno, otevřete textový editor Leafpad na Raspberry Pi a vstupte do tohoto programu Python, upraveného z Mattova zvukového ukázkového přehrávače:

# playSounds.py import pygame.mixer od času import spánek ze sys import exit import sériový pygame.mixer.init (44000, -16, 1, 1024) soundA = pygame.mixer.Sound ("Scream.wav") soundB = pygame .mixer.Sound ("WilhelmScream.wav") soundC = pygame.mixer.Sound ("CastleThunder.wav") soundChannelA = pygame.mixer.Channel (1) soundChannelB = pygame.mixer.Channel (2) soundChannelC = pygame.mixer .Kanál (3) tisknout "Sampler Ready". serialFromArduino = serial.Serial ("/ dev / ttyACM0", 9600) serialFromArduino.flush (), zatímco True: try: val = ord (serialFromArduino.read ()) print (val) if (val == 2): soundChannelA.play (soundA) if (val == 3): soundChannelB.play (soundB) pokud (val == 4): soundChannelC.play (soundC) val = 0 sleep (.01) kromě KeyboardInterrupt: exit ()

Uložit jako playSounds.py. Před spuštěním skriptu budete pravděpodobně muset nainstalovat sériový modul Python. Chcete-li to provést, zadejte:

sudo apt-get install python-serial

Pokud používáte nejnovější Raspbian, pravděpodobně máte vše, co potřebujete k tomu, abyste tento běh dostali. Otevřete LXTerminal a zadejte:

python playSounds.py

Pokud se zobrazí chyba, že Pygame není nainstalován, zadejte:

sudo apt-get update sudo apt-get install python-pygame

Budete také potřebovat některé zvukové soubory k přehrávání. Vybral jsem si tři z internetového archivu: generický výkřik, Wilhelm Scream a klasický vzorek Castle Thunder.

Když stisknete tlačítka, každý zvuk se přehraje jednou; Směšovač Pygame bude dokonce hrát všechny tři ve stejnou dobu, pokud budete mít na verandě více útoků.

Podíl

Zanechat Komentář