

미국에서 10월은 거대한 정원 거미, 조각된 호박 위에 주렁주렁 달린 주황색 LED, 그리고 무대에서의 비명 소리로 가득 찬 사운드트랙을 가져옵니다: 할로윈. 켈트족의 사윈(Samhain)과 이후의 기독교 관습에 뿌리를 두고 있으며, 오랫동안 미국 생활의 고정 요소였습니다.
2020년 COVID-19 팬데믹 이후, 거리 두기와 전염에 대한 우려로 많은 가족들이 실내에 머물렀습니다. 사람들은 거의 유인이 없을 때 외출하고 사탕을 받으러 다니는 것을 꺼리게 되었습니다. 이웃들은 사탕을 받으러 오는 아이들이 급격히 줄어들었다고 보고했습니다. 일부 오랜 거주자는 문을 두드리는 소리가 다섯 번도 안 되는 경우를 보았습니다. 공동 의식을 건너뛰는 것은 사회적 기술 약화, 고립 증가, 형성 기억 감소와 같은 비용을 수반합니다.
팀 LOL(람다 오미크론 람다)은 완전히 독창적인 미니게임을 만들기로 합의했습니다. 밝고 눈에 띄며 흥미진진합니다. 이 외계인이 지구를 침략했습니다. 당신의 임무는 외계인을 죽이고 그의 사탕을 모으는 것입니다. 이 기계는 할로윈을 관객이 아닌 상호작용하는 이벤트로 만들어 할로윈 정신을 되살리고 사람들이 다시 사탕을 받으러 다니도록 격려할 것입니다.
외계인을 만나보세요.
그는 사탕을 나눠주는 일반적인 할로윈 장식이 아닙니다. IR 센서와 아두이노로 구동되며, 외계인은 당신이 원하는 모든 것을 저장합니다. 당신은 그에게서 그것을 얻기만 하면 됩니다.
외계인의 3개의 눈을 쏘고 보상을 받으세요.
이 프로젝트에 필요한 재료는 다음과 같습니다:
그리고 필요한 도구는 다음과 같습니다:





캔디 스피너와 본체의 센서에 모든 부품을 연결합니다.
레이저 건을 위해 그림에 따라 별도의 회로를 만듭니다.















이 프로그램을 코드 스케치에 추가하세요.
#include <Arduino.h>
#include <IRremote.hpp>
#define LED1 2
#define LED2 3
#define LED3 4
#define IR_RECEIVE_PIN 5
#define IR_RECEIVE_PIN2 6
#define IR_RECEIVE_PIN3 7
#define in1 8
#define in2 9
#define SUPPORT_MULTIPLE_RECEIVER_INSTANCES
void UserIRReceiveTimerInterruptHandler();
IRrecv SecondIrReceiver(IR_RECEIVE_PIN2);
IRrecv ThirdIrReceiver(IR_RECEIVE_PIN3);
bool target1 = false;
bool target2 = false;
bool target3 = false;
int time = 0;
bool flag = false;
void setup() {
Serial.begin(9600);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);
}
void reset(){
target1 = false;
target2 = false;
target3 = false;
flag = false;
time = 0;
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
}
void loop() {
reset();
while(time<30){
if(IrReceiver.decode()){
target1 = true;
flag = true;
digitalWrite(LED1, HIGH);
IrReceiver.resume();
}
if(SecondIrReceiver.decode()){
target2 = true;
flag = true;
digitalWrite(LED2, HIGH);
SecondIrReceiver.resume();
}
if(ThirdIrReceiver.decode()){
target3 = true;
flag = true;
digitalWrite(LED3, HIGH);
ThirdIrReceiver.resume();
}
if(target1 && target2 && target3){
break;
}
if(flag){
delay(1000);
time++;
}
}
if(target1 && target2 && target3){
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
delay(800);
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
delay(3000);
reset();
}
void UserIRReceiveTimerInterruptHandler() {
SecondIrReceiver.ReceiveInterruptHandler();
ThirdIrReceiver.ReceiveInterruptHandler();
}
원문: https://www.instructables.com/Alien-Candy-Dispenser-Game