Vydělejte triky s triky s DIY Motion-Activated Soundbox

  • Brian Curtis
  • 0
  • 4920
  • 469
reklama

Je to znovu to roční období, kdy je považováno za společensky přijatelné vyděsit malé děti a dát jim bonbóny. Oh, radost. Jsem tu, abych vám usnadnil vaši práci tím, že vám ukážu, jak vytvořit jednoduchý zvukový box Raspberry Pi Halloween pro snímání pohybu. Zde je ukázka:

Zde je to, co budete potřebovat

Pravděpodobně jedinou částí, kterou ještě nemáte, je pohybový senzor, malou a levnou část, kterou byste měli najít v místním Microcentru nebo Maplinu.

  • Raspberry Pi (jakýkoli model udělá).
  • Pohybový senzor (~ 3 $).
  • Zapojovací dráty.
  • Kabelový reproduktor (většina reproduktorů Bluetooth bude mít možnost použít line-in).
  • 3,5 mm stereo kabel, samec-samec.

Až budete hotovi, možná budete chtít přidat nějaké synchronizované světelné efekty Jak synchronizovat domácí světla a hudbu na Halloween Jak synchronizovat domácí světla a hudbu na Halloween Ať už pořádáte halloweenskou párty nebo chcete nejúžasnější strašidelný dům v okolí, aby vaše světla blikaly včas na hudbu a zvukové efekty, je zásadní. také, ale v tomto tutoriálu budeme pokrývat jen strašidelné zvuky bit!

Nastavení

Používáme Raspbian Jessie Lite a Python 2.7, ale jakékoli Linuxové distro, které běží na vašem Pi, by mělo být v pořádku. Nechal jsem to na standardním názvu hostitele “raspberrypi.local”, začněte tím, že se budete vzdáleně přihlašovat pomocí SSH (pokud jste v systému Mac, otevřete terminálové okno) Postupujte stejným způsobem v systému Windows 4 Snadné způsoby použití SSH V systému Windows 4 Snadné způsoby použití SSH V systému Windows SSH je de facto řešení pro bezpečný přístup ke vzdáleným terminálům v Linuxu a dalších systémech podobných systému UNIX. Pokud máte vzdálený server SSH, ke kterému chcete přistupovat, musíte si stáhnout klienta SSH…) - nebo pokud jste se rozhodli používat plnou Raspbian s počítačem GUI, klidně přeskočte na aktualizaci.

ssh [email protected] (zadejte jako heslo malinu) sudo apt-get update sudo apt-get install python-pip sudo pip install gpiozero 

To nainstaluje jednoduchou knihovnu pro práci s kolíky GPIO v Pythonu s mnoha typy vestavěných senzorů a tlačítek. Zapojte senzor pomocí signálního kolíku na GPIO4, VCC připojeného k 5V a GND připojeného k GND. To se může lišit v závislosti na vašem přesném modelu, takže to potvrďte pomocí diagramu pinout.

Obrázek Kredit: raspberrypi.org

Naštěstí má můj případ Pi 2 od Pimoroni přímo na něj vyleptaný laserový diagram.

Nyní vytvořme skript pro detekci pohybu.

nano motion.py 

Vložit do:

z gpiozero importu MotionSensor pir = MotionSensor (4), zatímco True: if pir.motion_detected: print ("Motion zjištěno!") jinde: print ("No motion") 

Stiskněte CTRL-X a poté Y pro uložení a ukončení, poté spusťte:

python motion.py 

Měli byste vidět “žádný pohyb” zpráva se opakuje na obrazovce, dokud nebudete mávat rukou před senzorem, když to bude trvat na “Detekován pohyb!”

Pokud se zpráva vůbec nezmění, zapojili jste ji špatně.

Pokud se chcete dozvědět více o této jednoduché knihovně GPIOZero, podívejte se na tento fantastický podvodný list.

Přehrávání zvuku

Připojte svůj přenosný reproduktor a ujistěte se, že je napájen, pokud je potřeba. Použijeme pygame knihovna pro přehrávání zvuků, tak jděte do toho a nainstalujte:

sudo apt-get install python-pygame 

Nejprve potřebujeme zvukový soubor pro přehrání. Pokud to děláte z prostředí stolního počítače, pokračujte a stáhněte si WAV nebo OGG soubor odkudkoli (našel jsem dobrý výběr bezplatných zvuků Halloween zde) a vložil je do vašeho domovského adresáře. Navrhoval bych nejprve převzorkování a převod na malý formát OGG.

Pokud se připojujete vzdáleně a používáte pouze příkazový řádek, máme s některými weby o něco větší potíže, protože wget příkaz nemusí chytit skutečný soubor. Místo toho ji můžeme stáhnout místně na naši plochu a použít scp (zabezpečená kopie) příkaz pro kopírování přes příkazový řádek. Další informace o scp se dozvíte zde, ale prozatím otevřete novou kartu Terminal a napište:

scp thunder.ogg [email protected]: 

Přejmenujte thunder.ogg podle potřeby, ale nezapomeňte na to finále : (příkaz bude dokončen bez něj, ale neudělá to, co chceme, aby udělal). Ve výchozím nastavení bude soubor přenesen do domovského adresáře uživatele Pi.

Nyní upravme skript pro přehrávání zvuku. Začněte importováním některých nových modulů:

import pygame.mixer from pygame.mixer import Sound 

Potom těsně po existujících příkazech pro import budeme znovu a znovu opakovat stejný zvuk pro účely testování. Nechte zbytek kódu pro snímání pohybu tak, jak je tomu dosud - prostě to nebude fungovat, protože bude navždy zaseknutý v této zvukové smyčce.

pygame.init () pygame.mixer.init () # načte zvukový soubor do domovského adresáře uživatele Pi (bez mp3) thunder = pygame.mixer.Sound ("/ home / pi / thunder.ogg"), zatímco True : thunder.play () sleep (10) thunder.stop () 

Všimněte si, že když jsem původně vyzkoušel tento proces, zvuk se odmítl přehrát a místo toho jen klikl. Velikost souboru nebo bit-rate byla viníkem: to bylo 24-bit a přes 5 MB pro 15 sekundový klip. Díky škálování na 16 bitů pomocí převaděče, ke kterému jsem se připojil výše, všechno fungovalo dobře a velikost byla snížena na pouhých 260 kB!

Pokud si všimnete nepříjemného syčení z reproduktorů, když je spuštěna aplikace Python, ale jinak, zadejte:

sudo nano /boot/config.txt 

A na konec přidejte tento řádek:

disable_audio_dither = 1 

Změny se projeví až po restartování. Nebo se neobtěžujte, protože mi to stejně znělo jako déšť.

Nakonec upravme hlavní smyčku pro kontrolu pohybu tak, aby při detekci pohybu přehrávala zvuk. Použijeme 15sekundové zpoždění, aby bylo možné přehrát celou smyčku, a chovat se jako vyrovnávací paměť spamu, když existuje mnoho nepřetržitých pohybů.

while True: if pir.motion_detected: print ("Motion zjištěno!") thunder.play () # zajistit, že přehrávání bylo plně dokončeno před obnovením detekce pohybu, zabraňuje "spamování" zvukového spánku (15) thunder.stop () jinde: tisk ("Bez pohybu") 

Spusťte automaticky

Pravděpodobně to chceme někde nastavit s baterií a bez připojení k internetu, takže skript musí být spuštěn při restartu, aniž by bylo nutné otevírat příkazový řádek. K tomu použijeme nejjednodušší možnou metodu: crontab Jak naplánovat úlohy v Linuxu s Cronem a Crontab Jak naplánovat úkoly v Linuxu s Cronem a Crontabem Schopnost automatizovat úkoly je jednou z těch futuristických technologií, které jsou již zde . Každý uživatel Linuxu může těžit z plánování systému a uživatelských úkolů, díky cronu, snadno použitelné službě na pozadí. . Typ:

sudo crontab -e 

Pokud je tento příkaz spuštěn poprvé, začne se zeptat, jaký editor použít. Pro nano jsem zvolil možnost 2. Spustí se do vybraného editoru, takže přidejte následující řádek:

@reboot python /home/pi/motion.py & 

To znamená, že váš skript motion.py bude spuštěn při každém spuštění, a to tiše (takže jakýkoli výstup ze skriptu bude ignorován). Vyzkoušejte to restartováním.

Pokud se nic nehraje, i když došlo k pohybu, nebo uslyšíte jen malé kliknutí, možná jste nepoužili úplnou cestu k souboru, nebo může být nutné převést váš soubor na nižší datový tok a menší velikost souboru.

Přidat další zvuky

Hrát stejný efekt znovu a znovu je trochu nudné, takže k tomu přidáme nějakou náhodnost. Stáhněte si další zvuky Halloween, nezapomeňte je zmenšit na rozumnou velikost a datový tok a poté je poslat na Pi pomocí scp jako dříve. Přidal jsem tři různé typy výkřiku.

Upravte kód tak, aby místo definování jednoho pygame.mixer.Sound proměnná, vlastně vytváříme pole zvuků. To je u Pythonu jednoduché, stačí je obklopit čárkami oddělenými seznamy s hranatými závorkami, jako například:

zvuky = [pygame.mixer.Sound ("/ home / pi / thunder.ogg"), pygame.mixer.Sound ("/ home / pi / scary_scream.ogg"), pygame.mixer.Sound ("/ home / pi /girl_scream.ogg "), pygame.mixer.Sound (" / home / pi / psycho_scream.ogg ")] 

Poté importujte náhodnou knihovnu do svého souboru pomocí:

importovat náhodně 

Nyní upravte hlavní smyčku snímání pohybu následujícím způsobem:

while True: if pir.motion_detected: print ("Motion zjištěno!") playSound = random.choice (zvuky) playSound.play () # zajistit, že přehrávání bylo dokončeno před obnovením detekce pohybu, zabraňuje "spamování" zvukového spánku (15) ) playSound.stop () else: print ("No motion") 

Všimněte si drobné změny: místo hraní jediné zvukové proměnné používáme random.choice funkce vybrat náhodný zvuk z našeho zvukového pole, pak hrát to.

Zde je plný kód pro případ, že máte problémy:

import pygame z pygame.mixer import zvuk z gpiozero import MotionSensor z času import spánek import náhodný pygame.init () pygame.mixer.init () #load zvukový soubor, stejný adresář jako skript (bez mp3) zvuky = [pygame.mixer .Sound ("/ home / pi / thunder.ogg"), pygame.mixer.Sound ("/ home / pi / scary_scream.ogg"), pygame.mixer.Sound ("/ home / pi / girl_scream.ogg") , pygame.mixer.Sound ("/ home / pi / psycho_scream.ogg")] pir = MotionSensor (4), zatímco True: if pir.motion_detected: print ("Motion zjištěno!") playSound = random.choice (zvuky) playSound .play () # zajistit, že přehrávání bylo plně dokončeno před obnovením detekce pohybu, zabraňuje „spamování“ zvukového spánku (15) playSound.stop () jinde: tisk („Žádný pohyb“) 

U pouhých čtyř vzorků je vysoká pravděpodobnost opakování pokaždé, ale pokud je to nepříjemné, můžete přidat další vzorky.

A je to! Skrýt to v křoví s některými strašidelnými LED monster očima Jak si vyrobit strašidelné Halloween zářící oči za méně než 5 dolarů Jak si vyrobit strašidelné Halloween zářící oči za méně než 5 dolarů Chcete okořenit vaše Halloween dekorace letos? Naučte se, jak vytvořit LED oči za méně než 5 $ v tomto elektronickém projektu pro začátečníky. a měli byste být schopni zachránit si nějaké bonbóny, protože všechny děti utíkají křičet, než se dostanou ke dveřím. Nebo se skryjte ve skříni, protože rozzlobená maminka je po krvi, když jste Johnnyho plačeli.

Zřeknutí se odpovědnosti: MakeUseOf nezodpovídá za žádné zranění, které by mohlo vyplynout z použití tohoto projektu!

Vyrobíte tento zvukem aktivovaný zvukový box, abyste vyděsili místní triky nebo treatry? Nastavili jste nějaké strašidelné efekty s Raspberry Pi tento Halloween? Prosím, dejte nám vědět o tom v komentářích níže!




Bisher hat noch niemand einen Kommentar zu diesem Artikel abgegeben.

O moderní technologii, jednoduché a cenově dostupné.
Váš průvodce ve světě moderních technologií. Naučte se, jak používat technologie a pomůcky, které nás každý den obklopují, a naučte se, jak objevovat na internetu zajímavé věci.