Zastrašite trikove ili tretmane pomoću DIY zvučnika koji se aktivira pokretom

  • Harry James
  • 0
  • 2428
  • 4
Oglas

Opet je to doba godine kada se smatra da je društveno prihvatljivo prestraviti malu djecu i dati im slatkiše. Oh radost. Ovdje sam da vam olakšam posao pokazujući vam kako napraviti jednostavan zvučni okvir Raspberry Pi Halloween koji osjeti gibanje. Evo demonstracije:

Evo što će vam trebati

Vjerojatno jedini dio koji već nemate je senzor pokreta, mali i jeftin dio koji biste trebali naći u vašem lokalnom Microcentru ili Maplinu.

  • Raspberry Pi (bilo koji model će učiniti).
  • Senzor pokreta (~ 3 USD).
  • Žice za spajanje.
  • Ožičeni zvučnik (većina Bluetooth zvučnika imat će mogućnost korištenja line-in-a).
  • 3,5 mm stereo kabel, muško-muški.

Nakon što završite, možda biste željeli dodati neke sinkronizirane svjetlosne efekte Kako sinkronizirati svjetla u kući i glazbu za Noć vještica Kako sinkronizirati kućna svjetla i glazbu za Noć vještica Bilo da organizirate domjenak za Halloween ili želite najslađu kuću s ukletom u susjedstvo, kako bi vaša svjetla vremenom bljesnula od glazbe i zvučnih efekata. također, ali u ovom ćemo udžbeniku biti samo dio zastrašujućeg zvuka!

Postavljanje

Koristimo Raspbian Jessie Lite i Python 2.7, ali svaki Linux distrogram koji radi na vašem Pi-u trebao bi biti u redu. Ostavio sam ga na standardnom imenu domaćina “raspberrypi.local”, pa započnite daljinskom prijavom pomoću SSH-a (otvorite prozor terminala ako ste na Mac-u. Evo kako to učiniti u Windows-u 4 Jednostavni načini upotrebe SSH-a U sustavu Windows 4 Jednostavni načini korištenja SSH-a U Windows-u SSH je de facto rješenje za siguran pristup udaljenim terminalima na Linuxu i ostalim sustavima sličnim UNIX-u. Ako imate udaljeni SSH poslužitelj kojemu želite pristupiti, morat ćete preuzeti SSH klijent ...) - ili ako ste se odlučili koristiti puni Raspbian s radne površine GUI, slobodno pređite na ažuriranje.

ssh [email protected] (unesite malinu kao lozinku) sudo apt-get update sudo apt-get install python-pip sudo pip install gpiozero 

Ovo instalira jednostavnu biblioteku za rad s GPIO pinovima na Python-u s mnogim vrstama ugrađenih senzora i tipki. Uključite svoj senzor signalnim pinom na GPIO4, VCC povezan s 5V, a GND spojen na GND. To se može razlikovati ovisno o vašem modelu, pa potvrdite dijagramom "pinout".

Kreditna slika: raspberrypi.org

Od pomoći je što moj slučaj Pi 2 iz Pimoronija ima laserski urezani dijagram na kojem je izravno urezan dijagram.

Sada napravimo našu skriptu za otkrivanje pokreta.

nano motion.py 

Lijepljenje:

from gpiozero import MotionSensor pir = MotionSensor (4), dok je True: ako je pir.motion_detected: print ("Motion detected!") else: print ("Nema pokreta") 

Pritisnite CTRL-X pa Y za spremanje i izlaz, a zatim pokrenite s:

python motion.py 

Trebali biste vidjeti “nema pokreta” poruka se ponavlja na ekranu dok ne mahnete rukom ispred senzora, kada će se zadržati na “Otkriveno kretanje!”

Ako se poruka uopće ne mijenja, pogrešno ste je povezali.

Ako vas zanima što više možete saznati o ovoj jednostavnoj biblioteci GPIOZero, pogledajte ovaj fantastični obrazac.

Sviranje zvuka

Spojite svoj prijenosni zvučnik i osigurajte da je napajan ako treba. Koristit ćemo se pygame knjižnica za reprodukciju zvukova, pa nastavite i instalirajte je:

sudo apt-get install python-pygame 

Prvo nam treba zvučna datoteka za reprodukciju. Ako to radite iz radnog okruženja, idite naprijed i preuzmite WAV ili OGG datoteku odnekud (ovdje sam našao dobar izbor besplatnih zvukova za Noć vještica) i stavite je u svoj kućni imenik. Prvo bih predložio downsampling i pretvaranje u mali OGG format.

Ako se povezujete daljinski i koristite samo naredbeni redak, imamo nekoliko više poteškoća s nekim web lokacijama od wget naredba možda neće zgrabiti stvarnu datoteku. Umjesto toga, možemo ga preuzeti lokalno na radnu površinu i koristiti ga sCP (sigurna kopija) naredba za kopiranje preko naredbenog retka. Ovdje možete saznati više o scp-u, ali za sada otvorite novu karticu Terminala i utipkajte:

scp thunder.ogg [email protected]: 

Preimenujte thunder.ogg po potrebi, ali nemojte zaboraviti taj konačni : (naredba će se izvršiti bez nje, ali neće činiti ono što mi želimo). Ovo će datoteke prema zadanom prenijeti u kućni direktorij Pi korisnika.

Sada modificiramo skriptu da reproducira zvuk. Započnite s uvozom nekih novih modula:

uvoz pygame.mixer s pygame.mixer uvoz zvuka 

Zatim odmah nakon postojećih izjava o uvozu, mi ćemo ponavljati isti zvuk za potrebe ispitivanja. Ostavite ostatak koda za otkrivanje pokreta kao i do sad - on se jednostavno neće pokrenuti, jer će zauvijek ostati u ovoj petlji za reprodukciju zvuka.

pygame.init () pygame.mixer.init () # učitajte zvučnu datoteku u početnom direktoriju korisnika Pi korisnika (nema mp3-a) thunder = pygame.mixer.Sound ("/ home / pi / thunder.ogg") dok je True : thunder.play () sleep (10) thunder.stop () 

Imajte na umu da sam, kada sam izvorno isprobao ovaj postupak, zvuk odbio svirati i umjesto toga jednostavno kliknuo. Veličina datoteke ili brzina prijenosa bila je krivac: bila je 24-bitna i preko 5 MB za isječak od 15 sekundi. Smanjivanje skaliranja do 16-bitnog pretvarača s kojim sam bio povezan gore je sve lijepo funkcioniralo, a veličina je smanjena na samo 260 KB!

Ako primijetite gadno šištanje iz svojih zvučnika kada se aplikacija Python pokreće, ali ne drugačije, upišite:

sudo nano /boot/config.txt 

I dodajte ovaj redak na kraju:

disable_audio_dither = 1 

Ponovno pokrenite kako bi promjene stupile na snagu. Ili ne smetajte, jer mi je nekako zvučalo kao kiša.

Na kraju, modificiramo glavnu petlju za provjeru kretanja kako bi reproducirao zvuk kada je detektirano kretanje. Koristit ćemo kašnjenje od 15 sekundi da bismo mogli reproducirati čitavu petlju i djelovati kao spremnik neželjene pošte kada postoji puno non-stop pokreta.

dok je True: ako je pir.motion_detected: print ("Motion detected!") thunder.play () # osigurajte da je reprodukcija potpuno dovršena prije nastavka otkrivanja pokreta, sprječava "spam" zvučni san (15) thunder.stop () else: ispis ("Nema pokreta") 

Pokreni se automatski

Vjerojatno to želimo postaviti negdje s baterijom i bez internetske veze, tako da se skripta mora pokrenuti pri ponovnom pokretanju bez otvaranja naredbenog retka. Da bismo to učinili, upotrijebit ćemo najjednostavniju moguću metodu: crontab Kako planirati zadatke u Linuxu s Cron i Crontab Kako planirati zadatke u Linuxu s Cron i Crontab Sposobnost automatizacije zadataka jedna je od onih futurističkih tehnologija koja je već ovdje , Svaki korisnik Linuxa može imati koristi od zakazivanja sustava i zadataka korisnika, zahvaljujući cron-u, pozadinskoj usluzi jednostavnoj upotrebi. , Tip:

sudo crontab -e 

Ako se prvi put pokreće ova naredba, započet će vas pitati koji editor trebate koristiti. Odabrao sam opciju 2, za nano. Uključit će se u vaš odabrani uređivač, pa dodajte sljedeći redak:

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

To znači da će se vaše script.py skripta pokrenuti pri svakom pokretanju, i to učinite tiho (tako da će svaki izlaz iz skripte biti zanemaren). Ponovno se pokrenite da biste ga isprobali.

Ako se ništa ne reproducira unatoč pokretu ili čujete samo mali klik, možda niste koristili potpunu datoteku ili će datoteka možda trebati pretvaranje u nižu brzinu prijenosa i manju veličinu datoteke.

Dodajte još zvukova

Igranje istog efekta iznova i iznova pomalo je dosadno, pa dodajmo malo slučajnosti tome. Preuzmite još nekoliko zvukova za Noć vještica, sjećajući se da ih smanjite na razumnu veličinu i brzinu prijenosa, a zatim ih pošaljite na svoj Pi koristeći sCP kao prije. Dodao sam tri različite vrste vriska.

Izmijenite kôd tako da umjesto definiranja jednog pygame.mixer.Sound varijabla, mi zapravo stvaramo red zvukova. Ovo je jednostavno s Pythonom, samo zaokružite njihov popis razdvojenim zarezima uglatim zagradama:

zvukovi = [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 ")] 

Zatim uvezite slučajnu biblioteku u svoju datoteku sa:

uvoz slučajnim 

Sada izmijenite glavnu petlju osjetljivosti kretanja na sljedeći način:

dok je istina: ako je pir.motion_detected: ispis ("Motion detected!") playSound = random.choice (zvukovi) playSound.play () # osigurajte da je reprodukcija u potpunosti dovršena prije nastavka otkrivanja pokreta, sprečava "neželjenu poštu" zvučnog spavanja (15 ) playSound.stop () else: print ("Nema pokreta") 

Imajte na umu manju promjenu: umjesto da reproduciramo jednu varijablu Sound, koristimo random.choice funkcija za odabir nasumičnog zvuka iz našeg zvučnog niza, a zatim reprodukciju toga.

Evo punog koda u slučaju da imate problema:

import pygame from pygame.mixer import Zvuk iz gpiozero import MotionSensor od vremena uvoz sleep sleep slučajni pygame.init () pygame.mixer.init () #load zvučna datoteka, isti direktorij kao i skripta (nema mp3-ova) zvuči = [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), dok je True: ako je pir.motion_detected: print ("Motion detected!") playSound = random.choice (zvukovi) playSound .play () # osigurajte da je reprodukcija dovršena prije nastavka otkrivanja pokreta, sprečava "neželjenu poštu" zvučnog spavanja (15) playSound.stop () ostalo: ispis ("Nema pokreta") 

Sa samo četiri uzorka, svaka je vjerojatnost ponavljanja, ali možete dodati još uzoraka ako je to neugodno.

To je to! Sakrij ga u grmlje s nekim zastrašujućim očima LED čudovišta Kako napraviti sablasne svijetleće oči za Noć vještica za manje od 5 dolara. Kako napraviti sablasne svijetleće oči za Noć vještica za manje od 5 dolara. Želite li ove godine začiniti Halloween ukrase? Saznajte kako napraviti LED oči za manje od 5 USD u ovom početničkom elektroničkom projektu. , i trebali biste biti u mogućnosti spasiti se od slatkiša dok sva djeca bježe vrišteći prije nego što uopće stignu do vrata. Ili se sakrij u ormar jer ljuta mama nema krvi nakon što si natjerao malog Johnnyja da plače.

Izjava o odricanju odgovornosti: MakeUseOf nije odgovoran za bilo kakve osobne ozljede koje mogu nastati vašim korištenjem ovog projekta!

Hoćete li napraviti ovu zvučnu kutiju koja se aktivira pokretom kako biste uplašili lokalne trikove ili trezore? Jeste li postavili bilo kakve zastrašujuće efekte s Raspberry Pi ovim Halloweenom? Javite nam o tome u komentarima u nastavku!




Još ne komentari

O modernoj tehnologiji, jednostavnoj i pristupačnoj.
Vaš vodič u svijetu moderne tehnologije. Naučite kako koristiti tehnologije i uređaje koji nas okružuju svaki dan i naučite kako otkriti zanimljivosti na Internetu.