用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
  • 阅读 ( 289 )
  • 分类:IT

你可能感兴趣的文章

5个万圣节安全小工具,用于安全的不给糖就捣蛋

... 不要让你的孩子出去玩不给糖就捣蛋的游戏而不给他们提供安全所需的工具!我们今天看到的这些小玩意帮助它们保持可见。最重要的是:提高可见度降低了他们增加可怕统计数据的可能性。 ...

  • 发布于 2021-03-17 04:13
  • 阅读 ( 198 )

孩子们一定要看万圣节的视频

...适合任何鬼屋类型的吸引力,但可以是一个伟大的方式来吓唬你的糖果展示以及。快疯了! ...

  • 发布于 2021-03-17 05:10
  • 阅读 ( 215 )

如何为你的智能家居设置一个恐怖的万圣节

...一年,所以要充分利用它。确保你已经相应地调整了你的动作敏感度,你一定不会错过任何不给糖就捣蛋的人。 额外提示:前往IFTT,将门铃连接到智能灯。当“不给糖就捣蛋”的人按门铃时,它会改变你灯光的颜色,或者在你...

  • 发布于 2021-04-04 07:04
  • 阅读 ( 308 )

万圣节不是没有风险的,但它可以降低风险

...配“糖果滑槽”,将Twix和银河系从安全距离送入等待的不给糖就捣蛋的桶中。从简单的幻灯片一直到精心**的木偶表演,它们都会在明天付诸行动。 拉什大学医学中心的儿科传染病专家科琳·纳什说:“人们确实...

  • 发布于 2021-04-17 17:53
  • 阅读 ( 134 )

去玩万圣节不给糖就捣蛋的食物和免费赠品吧

当然,我们现在都很紧张,但至少有免费的(或更便宜的)食物可以吃。除了下周选举日的优惠活动外,万圣节前夕还有很多餐馆在吸引人们来吃糖果前的饭菜。这是你能得到的和你能得到的。阿普比的购买价值30美元或以上的...

  • 发布于 2021-05-12 09:38
  • 阅读 ( 173 )

做一个糖果溜槽,以更安全的大流行不给糖就捣蛋

...使你不是那种为万圣节装饰房子外面的人,今年必备的“不给糖就捣蛋”的配饰也会让你的家呈现出后世界末日那种无可挑剔的样子,没有必要特意想出一个主题。当然,2020年比你在派对城市看到的任何东西都要冷得多。作为...

  • 发布于 2021-05-12 12:04
  • 阅读 ( 190 )

如何玩-并赢得谷歌的万圣节主题多人游戏

...二上线,它恰好是一款具有竞争力的多人游戏,被称为“不给糖就捣蛋:食尸鬼决斗”。我们花了一些时间在不给糖就捣蛋:伟大的食尸鬼决斗,并发现游戏是相当有趣的,好作为一个偶然的分心和竞争的时间下沉一样。鲜艳的...

  • 发布于 2021-05-14 12:34
  • 阅读 ( 135 )

自己做玉米糖

万圣节来奥尔顿布朗家玩“不给糖就捣蛋”的人会得到自制食物的奖励。据食品网报道,其中最好的是他的玉米糖。现在你也可以用一些原料来做了。即使你讨厌玉米糖,你也可能喜欢自制的。您将需要糖果的糖和砂糖,脱脂奶...

  • 发布于 2021-05-25 13:14
  • 阅读 ( 99 )

在万圣节驱赶讨厌的不给糖就捣蛋的人的三种方法

...睡的孩子,在这个万圣节你都有很多理由可以避免贪婪的不给糖就捣蛋的人。这里有一些方法可以阻止他们。方法一:把糖果放在门廊上最明显的方法就是把糖果放在门廊上。不管你的灯亮不亮,它们可能都不会打扰你,它们只...

  • 发布于 2021-05-27 17:02
  • 阅读 ( 202 )

用电池供电的led灯制作一个diy发光的“不给糖就捣蛋”袋子

...列几乎同样便宜的电池供电LED灯结合起来,提高生活中“不给糖就捣蛋”者的安全性和可见性。Instructables用户lhinstructables分享了一个非常简单和聪明的方法来点亮你想要保持安全的不给糖就捣蛋的人。他从一元店拿了1美元的糖...

  • 发布于 2021-07-26 03:47
  • 阅读 ( 269 )
uwbc38844
uwbc38844

0 篇文章

相关推荐