*【标题|名称】危险的盒子 *【实现功能】四处乱甩 没错它只是四处乱甩2333 *【展示】
*【项目介绍+新路历程】
- 由于感觉我所在的实验室缺少一种欢迎有人进来的东西,一直想做一个作死的东西,一有人进来就开始折腾,以表示对人们“友好”的欢迎。在本着有趣第一,比赛第二的精神下,我做了一个名叫危险的盒子的盒子。没错他只是个盒子,只不过盒子上长上了奇奇怪怪的东西。
*【制作过程】
- 说了这么多一本正经的胡说八道的话,下面,让我们一起来看看这个东西是怎么实现的吧~
- 为什么要称之它为危险的盒子呢?大家看到一开始的动图了吧,这个东西一上电,热释电检测到附近有人经过就开始舞动起来,把靠近他的附近所有的空间全部挥舞一个遍,直到附近没有人他才会停下来。
- 最后有我剪辑的一段视频。(待补充)
附代码
-
- #include <Stepper.h>
- #include <TimerOne.h>
- #include<stdlib.h>
- #define pin_input 2
- #define pin_led 13
- #define pin_interrupt 0
- #define pin_output 12
- #define pin_vcc 3
- int state = 0;
- int count = 0;
- int beepflag = 0;
- #define STEPS 800
-
-
- #include <Stepper.h>
-
- const int stepsPerRevolution = 800;
- Stepper myStepper(STEPS, 8, 9);
- void scan()
- {
- int raw = digitalRead(pin_input);
- if (raw == 1&& state==0)
- {
- beepflag = 1;
- state = 1;
- count = 0;
- }
- else if (raw == 0)
- {
- count++;
- }
- if (count == 1)
- {
- state = 0;
- }
-
- }
- void setup() {
-
- pinMode(pin_vcc, OUTPUT);
- digitalWrite(pin_vcc, HIGH);
- pinMode(pin_input, INPUT);
- digitalWrite(pin_input, LOW);
- pinMode(pin_led, OUTPUT);
- digitalWrite(pin_led, LOW);
- pinMode(pin_output, OUTPUT);
- digitalWrite(pin_output, HIGH);
- Timer1.initialize(1000000);
- Timer1.attachInterrupt(scan);
- digitalWrite(pin_led, HIGH);
- digitalWrite(pin_output, LOW);
- myStepper.setSpeed(1000);
- myStepper.step(2 * stepsPerRevolution);
- delay(500);
- myStepper.step(2 * stepsPerRevolution);
- delay(1000);
- digitalWrite(pin_led, LOW);
- digitalWrite(pin_output, HIGH);
-
- }
-
- void loop() {
- if (beepflag == 1)
- {
- digitalWrite(pin_led, HIGH);
- digitalWrite(pin_output, LOW);
- myStepper.setSpeed(1000);
- myStepper.step(2 * stepsPerRevolution);
- delay(100);
- beepflag = 0;
- digitalWrite(pin_led, LOW);
- digitalWrite(pin_output, HIGH);
-
- }
- if (state == 1)
- {
- digitalWrite(pin_led, HIGH);
- digitalWrite(pin_output, LOW);
- myStepper.setSpeed(200);
- myStepper.step(random(0,stepsPerRevolution));
- myStepper.setSpeed(100);
- myStepper.step(-random(0, stepsPerRevolution));
- }
- if (state == 0)
- {
- digitalWrite(pin_led, LOW);
- digitalWrite(pin_output, HIGH);
- }
-
-
-
- }
复制代码
|
|
|
|
|
|