用diy動作啟用的音箱嚇唬不給糖就搗蛋的人

又到了一年中的那個時候,人們認為恐嚇小孩子給他們糖果是社會上可以接受的。哦,快樂。...

又到了一年中的那個時候,人們認為恐嚇小孩子給他們糖果是社會上可以接受的。哦,快樂。我在這裡讓你的工作更容易,通過向你展示如何**一個簡單的運動感應樹莓皮萬聖節音箱。下面是一個演示:

motion-activated-soundbox

這是你需要的

也許你唯一沒有的部分是運動傳感器,一個小而便宜的部分,你應該可以在當地的微型中心或Maplin找到。

  • 樹莓皮(任何型號都可以)。
  • 運動傳感器(約3美元)。
  • 連接電線。
  • 有線揚聲器(大多數藍牙揚聲器都可以選擇使用線路輸入)。
  • 3.5毫米立體聲電纜,插頭對插頭。

一旦你完成了,你可能想添加一些同步照明效果太,但在本教程中,我們將只涵蓋可怕的聲音位!

設置

我們使用的是Raspbian Jessie Lite和Python2.7,但是任何在Pi上運行的Linux發行版都可以。我把它放在標準主機名上了”本地樹莓,所以首先使用SSH遠程登錄(如果您在Mac上,請打開一個終端窗口)。下面是如何在Windows中執行相同的操作)或者如果您選擇使用帶有桌面GUI的完整Raspbian,請跳到更新。

ssh [email protected](enter raspberry as the password)sudo apt-get updatesudo apt-get install python-pipsudo pip install gpiozero

這將安裝一個簡單的庫,用於在Python中使用GPIO管腳和許多類型的內置傳感器和按鈕。用GPIO4上的信號引腳連接傳感器,VCC連接到5V,GND連接到GND。這可能會有所不同,根據您的確切型號,所以確認與引腳圖。

Raspberry Pi GPIO Diagram

有用的是,我的皮莫羅尼皮2案件有一個引腳圖激光蝕刻直接到它。

Labelled Raspberry Pi Case

現在讓我們來**我們的運動檢測腳本。

nano motion.py

粘貼到:

from gpiozero import MotionSensorpir = MotionSensor(4)while True: if pir.motion_detected: print("Motion detected!") else: print ("No motion")

按CTRL-X,然後按Y保存並退出,然後使用以下命令運行:

python motion.py

您應該看到屏幕上重複出現“無動作”消息,直到您在傳感器前揮手,這時它將停留在“檢測到動作!”

Motion detected in terminal

如果這條信息一點也沒變,那說明你把它接錯了。

如果您有興趣瞭解這個簡單的GPIOZero庫的更多信息,請看一下這個奇妙的備忘單。

播放聲音

連接你的便攜式揚聲器,並確保它的電源,如果需要的話。我們將使用pygame庫播放聲音,請繼續安裝:

sudo apt-get install python-pygame

首先,我們需要一個聲音文件來播放。如果你是在桌面環境下做這件事,那就從某處下載一個WAV或OGG文件(我在這裡找到了一個很好的萬聖節免費聲音選擇),並把它放在你的主目錄中。我建議先進行下采樣,然後轉換成一個小的OGG格式。

如果您遠程連接並且只使用命令行,我們在某些站點上會遇到一些困難,因為wget命令可能無法獲取實際的文件。相反,我們可以將其本地下載到桌面,並使用scp(secure copy)命令通過命令行進行復制。您可以在此處瞭解有關scp的更多信息,但現在,請打開一個新的終端選項卡並鍵入:

scp thunder.ogg [email protected]:

重命名雷霆.ogg如果合適的話,但不要忘記final:(命令將在沒有它的情況下完成,但它不會執行我們希望它執行的操作)。默認情況下,這會將文件傳輸到Pi用戶的主目錄。

現在讓我們修改腳本來播放聲音。首先導入一些新模塊:

import pygame.mixerfrom pygame.mixer import Sound

然後就在現有的import語句之後,我們將一遍又一遍地循環相同的聲音以進行測試。剩下的動作感應代碼暫時保持原樣——它不會運行,因為它將永遠卡在這個聲音播放循環中。

pygame.init()pygame.mixer.init()#load a sound file, in the home directory of Pi user (no mp3s)thunder = pygame.mixer.Sound("/home/pi/thunder.ogg")while True: thunder.play() sleep(10) thunder.stop()

請注意,當我最初嘗試此過程時,聲音拒絕播放,而是單擊。文件的大小或比特率是罪魁禍首:它是24位和超過5 MB的15秒剪輯。使用我上面鏈接的轉換器將其縮小到16位,使得一切都很好地工作,並且大小被縮小到只有260KB!

如果在運行Python應用程序時注意到揚聲器發出刺耳的嘶嘶聲,請鍵入:

sudo nano /boot/config.txt

最後加上這一行:

disable_audio_dither=1

重新啟動以使更改生效。或者不用麻煩了,反正對我來說好像下雨了。

最後,讓我們修改主運動檢查循環,以便在檢測到運動時播放聲音。我們將使用15秒的延遲,這樣整個循環可以播放,並作為垃圾郵件緩衝時,有很多不停的議案。

while True: if pir.motion_detected: print("Motion detected!") thunder.play() # ensure playback has been fully completed before resuming motion detection, prevents "spamming" of sound sleep(15) thunder.stop() else: print ("No motion")

自動啟動

我們可能想在一個電池和沒有互聯網連接的地方設置它,所以腳本需要在重啟時運行,而不需要打開命令行。為此,我們將使用最簡單的方法:crontab。類型:

sudo crontab -e

如果這是第一次運行此命令,它將首先詢問您要使用哪個編輯器。我為nano選擇了選項2。它將引導到您選擇的編輯器中,因此添加以下行:

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

這意味著你的運動.py腳本將在每次啟動時運行,並以靜默方式運行(因此腳本的任何輸出都將被忽略)。重新啟動以進行嘗試。

如果在有運動的情況下沒有播放,或者只聽到一點咔嗒聲,則可能沒有使用完整的文件路徑,或者您的文件可能需要轉換為較低的比特率和較小的文件大小。

添加更多聲音

反覆播放同樣的效果有點無聊,所以讓我們添加一些隨機性。下載更多萬聖節的聲音,記得把它們縮小到一個合理的大小和比特率,然後像以前一樣用scp把它們發送給你的Pi。我加了三種不同類型的尖叫。

修改代碼以便pygame.mixer.Sound文件變量,我們實際上在創建一個聲音數組。Python很簡單,只要用方括號將逗號分隔的列表括起來,如下所示:

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

接下來,使用以下命令將隨機庫導入文件:

import random

現在修改主運動感應迴路如下:

while True: if pir.motion_detected: print("Motion detected!") playSound = random.choice(sounds) playSound.play() # ensure playback has been fully completed before resuming motion detection, prevents "spamming" of sound sleep(15) playSound.stop() else: print ("No motion")

注意小的變化:我們使用隨機選擇函數從聲音數組中隨機選取一個聲音,然後播放。

以下是完整的代碼,以防出現問題:

import pygamefrom pygame.mixer import Soundfrom gpiozero import MotionSensorfrom time import sleepimport randompygame.init()pygame.mixer.init()#load a sound file, same directory as script (no mp3s)sounds = [ 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)while True: if pir.motion_detected: print("Motion detected!") playSound = random.choice(sounds) playSound.play() # ensure playback has been fully completed before resuming motion detection, prevents "spamming" of sound sleep(15) playSound.stop() else: print ("No motion")

由於只有四個樣本,每次重複的概率很高,但是如果這很煩人的話,可以添加更多的樣本。

就這樣!把它藏在灌木叢裡,用一些可怕的LED怪物眼睛,你應該可以給自己留點糖果,因為所有的孩子都在他們還沒到門口就尖叫著跑開了。或者躲在壁櫥裡,因為你讓小約翰尼哭了之後,一個憤怒的媽媽想要流血。

免責聲明:MakeUseOf對您使用本項目可能造成的任何人身傷害概不負責!

為了嚇唬當地的“不給糖就搗蛋”的人,你會**這個動作激活的音箱嗎?你在萬聖節用樹莓皮做過什麼恐怖的效果嗎?請在下面的評論中告訴我們!

  • 發表於 2021-03-17 05:08
  • 閱讀 ( 52 )
  • 分類:DIY

你可能感興趣的文章

5種詭異的方式來建立你的萬聖節智慧家園

...些易於使用的智慧家居裝置,你就可以把任何一個普通的不給糖就搗蛋的季節變成一個可怕的好時光。 ...

  • 發佈於 2021-03-12 16:03
  • 閲讀 ( 51 )

你需要這13款安卓應用為萬聖節做好準備

... 不給糖就搗蛋是萬聖節最令人愉快的習俗之一。可悲的是,在現代,這也是最危險的。當然,你永遠無法完全消除讓你的孩子流落街頭的風險或擔憂,但是你可以透過知道...

  • 發佈於 2021-03-12 16:55
  • 閲讀 ( 61 )

13種詭異的alexa技巧非常適合萬聖節

... 如何啟用技能 ...

  • 發佈於 2021-03-12 18:37
  • 閲讀 ( 54 )

8個令人毛骨悚然的萬聖節照明專案,每個不到5美元

...Y技術的人都可以為“不給糖就搗蛋”的人**完全可定製的動作啟用驚喜。 ...

  • 發佈於 2021-03-12 18:48
  • 閲讀 ( 45 )

10個神奇的萬聖節道具,你可以用樹莓皮

... 現在這是相當可怕的:創造一個運動啟用,尖叫鬼嚇唬遊客到您的財產。使用投影儀,一個PIR運動探測器,強制性的樹莓Pi,和一塊有機玻璃與一層薄薄的反光塗料噴塗,這個建設勾所有正確的框。 ...

  • 發佈於 2021-03-13 01:17
  • 閲讀 ( 53 )

5個萬聖節安全小工具,用於安全的不給糖就搗蛋

... 不要讓你的孩子出去玩不給糖就搗蛋的遊戲而不給他們提供安全所需的工具!我們今天看到的這些小玩意幫助它們保持可見。最重要的是:提高可見度降低了他們增加可怕統計資料的可能性。 ...

  • 發佈於 2021-03-17 04:13
  • 閲讀 ( 65 )

孩子們一定要看萬聖節的影片

...適合任何鬼屋型別的吸引力,但可以是一個偉大的方式來嚇唬你的糖果展示以及。快瘋了! ...

  • 發佈於 2021-03-17 05:10
  • 閲讀 ( 75 )

6種讓你的電腦為萬聖節做好準備的方法

...中最恐怖的時候,我們在那裡盛裝打扮,雕刻南瓜,互相嚇唬。不要把你的電腦丟在樂趣之外——有很多方法可以讓你在萬聖節定製你的Windows10電腦。 ...

  • 發佈於 2021-03-23 15:48
  • 閲讀 ( 48 )

如何為你的智慧家居設定一個恐怖的萬聖節

...一年,所以要充分利用它。確保你已經相應地調整了你的動作敏感度,你一定不會錯過任何不給糖就搗蛋的人。 額外提示:前往IFTT,將門鈴連線到智慧燈。當“不給糖就搗蛋”的人按門鈴時,它會改變你燈光的顏色,或者在你...

  • 發佈於 2021-04-04 07:04
  • 閲讀 ( 53 )

萬聖節不是沒有風險的,但它可以降低風險

...配“糖果滑槽”,將Twix和銀河系從安全距離送入等待的不給糖就搗蛋的桶中。從簡單的幻燈片一直到精心**的木偶表演,它們都會在明天付諸行動。 拉什大學醫學中心的兒科傳染病專家科琳·納什說:“人們確實...

  • 發佈於 2021-04-17 17:53
  • 閲讀 ( 55 )
uwbc38844
uwbc38844

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦