目录
简介
一个小型紧凑的户外运动恐怖万圣节吓人盒子,带有声音和可选的灯光。
步骤一 材料准备
硬件准备:
- arduino uno
- MP3
- 四通道继电器模块
- PIR运动传感器检测器HC SR501
- 3xAA电池卡口支架
- 2针插座连接器
- 防水食品盒
- 黑色喷漆
- 32mm 钻头
- 16mm钻头
- usb 驱动
软件准备:
- arduino IDE
步骤二 原理说明
我想制作几个隐藏的小型音频盒放在前花园中,以在万圣节临近前门时吓people人们。该示例描述了我想要构建的最复杂的示例,也是我的第一个测试案例,它具有令人恐惧的音轨和2种不同的视觉照明效果来吸引人们的注意力。
在开始之前,我想使用继电器控制MP3放大器模块的原始概念。
该构建背后的概念是使自含电池(或外部提供的12v)运动激活的扬声器具有两个输出,以提供12v LED效果(如果需要)。它需要便宜(总成本低于20英镑/ 25美元),可自定义并且能够在万圣节期间适应一天的天气。
在这里,我选择了12v外部电源,因为我有一个附近的室外插头,并希望使用一些相当明亮的耗电的LED灯,耗电量为2A。通过AA电池座或小型5000mah USB供电的电话充电器,它几乎可以在5v / 12v电池供电的设备上工作,并且可以快速修改以通过相同的电源为5v外部灯供电,只需交换12v传入电源即可为您的5v电源供电。
(注意:长时间使用后,我注意到Arduino难以为更大容量的mp3模块提供足够的汁液,并导致Arduino在播放过程中复位,因此我切断了专用的5v电池电源)
第1部分-构建
该构建背后的原理是使用Arduino UNO控制MP3播放器和照明。为此,我们将使用4路继电器模块,其中两个将通过模拟按钮上的PRESS来控制播放和上一个曲目按钮,其余两个通过打开和关闭电路为LED供电。 。
我对所有100mm长的控制接线使用30AWG绞线,对12v电路使用18AWG绞线,也留在了盒子里。看起来很乱,但是盒子内部有足够的空间,它很容易卸下盖子和组件,而无需拉出任何东西,因为我想将它们焊接在一起以提高可靠性。但是,为了让我能取下盖子,我使用了用于PIR传感器连接的凹型插头,并将插入MP3模块的扬声器电缆拧紧到位,这样就可以将来断开盖子的连接并取下盖子。
我按照接线图所示对电路进行了接线,其中12v电源进入了防水连接器。为了切换外部LED,我将输入电源的-v侧连接至输出连接器的另一-v侧,并通过继电器将+ v侧布线以实现切换。
为了制作外壳,我在扬声器的中央钻了一个32毫米的孔,在顶部到一侧为PIR传感器钻了一个16毫米的孔。然后,我将整个物体喷涂成黑色,以防止电路板上的LED散开并掩盖扬声器。
(未显示,为使扬声器防水,我使用了自行车内胎和维修套件,在外部粘贴了一个正方形的贴片,以使声音散发出来,但防止水进入。然后用螺栓将其穿过。)
然后将扬声器拧紧到位,并用胶枪将PIR传感器胶合到位(后来的更改意味着我最终用环氧树脂将PIR固定在位,因为胶枪胶水渗入了)。
所有组件均按照片排列,这允许访问MP3模块和Arduino上的USB端口。
(如果您想通过5v为本机供电,则可以使用Arduino上的USB接口或MP3播放器上的micro USB接口。)
构建完成并上传代码后,我对单元进行了测试以确保其正常工作,然后确保焊接连接得到了额外的支持,我在一些易受攻击的关键区域使用了一些胶水胶水,例如扬声器的连接,
请注意,所用的MP3模块需要USB / SD卡格式化为FAT32,其他格式对我不起作用。
第2部分-声音
声音文件已使用Audacity 编辑,
- 尖叫声
- 令人毛骨悚然的笑声
- 我看见你
- 石头走路的声音
第3部分-设置
音频文件和Arduino程序在继电器上的开关是定时的。如果您选择使用其他音频文件,然后在进行测试时操纵时序,则我注意到需要更改的代码。
第4部分-真实世界测试
步骤三 电路搭建
讲话和PIR下载
PIR粘在适当的位置,扬声器用塑料螺钉固定
内
后
步骤四 编写程序
//Assign pins
int pirSENSOR = 2; //SENSOR to detect motion, set to maximum sensitivity and range
int previousBUTTON = 3; //button on MP3 module
int playBUTTON = 4; //button on MP3 module
int whiteLED = 5; //Whiteflashing light
int redLED = 6; //Blood sequnce light during screem
int statusLED = 10;
void setup() {
pinMode(pirSENSOR,INPUT);
pinMode(previousBUTTON,OUTPUT);
pinMode(playBUTTON,OUTPUT);
pinMode(whiteLED,OUTPUT);
pinMode(redLED,OUTPUT);
pinMode(statusLED,OUTPUT);
digitalWrite(previousBUTTON,HIGH); //set initial state, in my case Relay HIGH is OFF/OPEN
digitalWrite(playBUTTON,HIGH); //set initial state, in my case Relay HIGH is OFF/OPEN
digitalWrite(whiteLED,HIGH); //set initial state, in my case Relay HIGH is OFF/OPEN
digitalWrite(redLED,HIGH); //set initial state, in my case Relay HIGH is OFF/OPEN
}
void loop() {
//Play Sound
if (digitalRead(pirSENSOR) == HIGH) { //HIGH on my PIR sensor mean positive detection of movement
digitalWrite(previousBUTTON,LOW); //PRESS previous button which plays sound from begining
delay(100);
digitalWrite(previousBUTTON,HIGH); //release previous button
delay(100);
//LED Flash sequence
//grab attention
digitalWrite(whiteLED,LOW);
delay(1000);
digitalWrite(whiteLED,HIGH);
delay(500);
digitalWrite(whiteLED,LOW);
delay(500);
digitalWrite(whiteLED,HIGH);
delay(9000);
//I See you
digitalWrite(whiteLED,LOW);
delay(500);
digitalWrite(whiteLED,HIGH);
delay(100);
digitalWrite(whiteLED,LOW);
delay(500);
digitalWrite(whiteLED,HIGH);
delay(300);
digitalWrite(whiteLED,LOW);
delay(500);
digitalWrite(whiteLED,HIGH);
delay(300);
digitalWrite(whiteLED,LOW);
delay(300);
digitalWrite(whiteLED,HIGH);
delay(300);
digitalWrite(whiteLED,LOW);
delay(300);
digitalWrite(whiteLED,HIGH);
delay(300);
digitalWrite(whiteLED,LOW);
delay(300);
digitalWrite(whiteLED,HIGH);
delay(300);
digitalWrite(whiteLED,LOW);
delay(300);
digitalWrite(whiteLED,HIGH);
delay(6000);
//children sounds
digitalWrite(whiteLED,LOW);
delay(300);
digitalWrite(whiteLED,HIGH);
delay(1000);
digitalWrite(whiteLED,LOW);
delay(100);
digitalWrite(whiteLED,HIGH);
delay(300);
digitalWrite(whiteLED,LOW);
delay(100);
digitalWrite(whiteLED,HIGH);
delay(300);
digitalWrite(whiteLED,LOW);
delay(100);
digitalWrite(whiteLED,HIGH);
delay(300);
digitalWrite(whiteLED,LOW);
delay(100);
digitalWrite(whiteLED,HIGH);
delay(1000);
digitalWrite(whiteLED,LOW);
delay(600);
digitalWrite(whiteLED,HIGH);
delay(1400);
digitalWrite(whiteLED,LOW);
delay(100);
digitalWrite(whiteLED,HIGH);
delay(7000);
//scream/blood sequence
digitalWrite(redLED,LOW);
delay(3000);
digitalWrite(redLED,HIGH);
delay(100);
//Stop Sound
digitalWrite(playBUTTON,LOW); //pause/stop the sound playback
delay(100);
digitalWrite(playBUTTON,HIGH); //release play button
delay(60000); //wait 1minute before allowing to reactive
}
else {
digitalWrite(statusLED,HIGH); //If PIR detects nothing, maintain status light on to draw small amount of power as some USB batteries will deactivate
}
}
步骤五 验证结果
下载附件中的音乐存储进设备,然后让设备工作,开始享受我们的成果吧。
鬼叫音乐