산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

할로윈 PIR 모션 스피커: 공포 사운드 & 라이트 이펙트 키트

부품 및 소모품

아두이노 UNO 1
MP3 모듈 USB/SD카드 재생 지원, FAT32 포맷 필요 1
4채널 릴레이 모듈 MP3 재생/이전 버튼 제어 2채널, LED 전원 제어 2채널 1
PIR 모션 센서 HC-SR501 감도/거리 최대로 설정 1
3xAA 배터리 홀더 (선택) 1
2핀 방수 항공 커넥터 외부 12V 전원/LED 연결용 3
밀폐형 식품 용기 (190×60×120mm) 방수 케이스로 활용 1
블랙 스프레이 페인트 기판 LED 빛 차단 및 위장 1
32mm/16mm 우드 드릴 비트 스피커/PIR 센서 구멍 가공용 각 1
USB 드라이브 (FAT32) 음원 저장용 1

프로젝트 소개

업데이트: 웃는 유령 버전(조명 없이 웃음소리만) ZIP 파일과 추가 배터리 팩 구성 추가.

할로윈 때 현관문 다가오는 손님들을 놀래키기 위해 정원에 숨길 소형 오디오 박스 여러 개를 만들었습니다. 이 프로젝트는 그중 가장 복잡한 버전으로, 공포 사운드트랙 재생 + 2가지 시각 효과(백색 스트로브, 적색 블러드 시퀀스)를 동기화합니다.

원리는 Kristian Blåsol의 릴레이로 MP3 앰프 버튼 제어 아이디어를 차용했습니다. 목표: 저렴하게(약 $25 이하), 커스터마이징 가능하게, 하루 야외 방수 가능하게 만드는 것.

12V 외부 전원 사용(실외 콘센트 활용). 밝은 12V LED(2A 소모) 구동 위해 12V 라인을 릴레이로 스위칭. 5V 배터리(AA 홀더 또는 5000mAh 파워뱅크)로도 거의 수정 없이 동작 가능. (장시간 사용 시 아두이노 5V 레귤레이터가 MP3 모듈 대음량 재생 전류를 못 버텨 리셋 발생 → 별도 5V 전원 추가로 해결)

1부: 하드웨어 제작

아두이노 UNO가 릴레이 4채널을 통해 MP3 모듈의 재생/일시정지 버튼과 이전 트랙 버튼을 시뮬레이션(누름)하고, 나머지 2채널로 외부 12V LED 전원 제어.

케이스 가공: 32mm 홀(중앙, 스피커), 16mm 홀(상단 옆, PIR 센서). 전체 블랙 스프레이로 도장해 기판 LED 빛 새나감 방지.

스피커 방수: 자전거 튜브 패치로 외부 마감 후 볼트 체결. PIR 센서는 에폭시 수지로 고정(글루건은 물 샘).

할로윈 PIR 모션 스피커: 공포 사운드 & 라이트 이펙트 키트
할로윈 PIR 모션 스피커: 공포 사운드 & 라이트 이펙트 키트

2부: 사운드 소스

Audacity로 편집. 소스/크레딧: 비명 소리, 소름 끼치는 웃음, "I see you", 돌 밟는 소리.

3부: 타이밍 설정

오디오 파일과 릴레이 스위칭 타이밍이 동기화돼 있습니다. 다른 음원 사용 시 코드 내 딜레이 값을 테스트하며 조정하세요.

4~5부: 실전 테스트 및 최종 완성

할로윈 PIR 모션 스피커: 공포 사운드 & 라이트 이펙트 키트
할로윈 PIR 모션 스피커: 공포 사운드 & 라이트 이펙트 키트
할로윈 PIR 모션 스피커: 공포 사운드 & 라이트 이펙트 키트
할로윈 PIR 모션 스피커: 공포 사운드 & 라이트 이펙트 키트
할로윈 PIR 모션 스피커: 공포 사운드 & 라이트 이펙트 키트
할로윈 PIR 모션 스피커: 공포 사운드 & 라이트 이펙트 키트

소스 코드

// 핀 할당
int pirSENSOR = 2;      // PIR 센서 (HIGH = 모션 감지)
int previousBUTTON = 3; // MP3 모듈 '이전 트랙' 버튼 (릴레이)
int playBUTTON = 4;     // MP3 모듈 '재생/일시정지' 버튼 (릴레이)
int whiteLED = 5;       // 백색 스트로브 LED (릴레이)
int redLED = 6;         // 적색 블러드 시퀀스 LED (릴레이)
int statusLED = 10;     // 상태 표시 LED

void setup() {
  pinMode(pirSENSOR, INPUT);
  pinMode(previousBUTTON, OUTPUT);
  pinMode(playBUTTON, OUTPUT);
  pinMode(whiteLED, OUTPUT);
  pinMode(redLED, OUTPUT);
  pinMode(statusLED, OUTPUT);

  // 릴레이 HIGH = OFF (개방) 인 경우
  digitalWrite(previousBUTTON, HIGH);
  digitalWrite(playBUTTON, HIGH);
  digitalWrite(whiteLED, HIGH);
  digitalWrite(redLED, HIGH);
}

void loop() {
  if (digitalRead(pirSENSOR) == HIGH) {
    // 1. 사운드 재생 시작 (이전 트랙 버튼 누르기로 처음부터 재생)
    digitalWrite(previousBUTTON, LOW); delay(100);
    digitalWrite(previousBUTTON, HIGH); delay(100);

    // 2. 백색 LED 스트로브 - 주목 유도
    digitalWrite(whiteLED, LOW); delay(1000);
    digitalWrite(whiteLED, HIGH); delay(500);
    digitalWrite(whiteLED, LOW); delay(500);
    digitalWrite(whiteLED, HIGH); delay(9000);

    // 3. "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);

    // 4. 아이들 소리 구간
    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);

    // 5. 비명/블러드 시퀀스 - 적색 LED
    digitalWrite(redLED, LOW); delay(3000);
    digitalWrite(redLED, HIGH); delay(100);

    // 6. 사운드 정지
    digitalWrite(playBUTTON, LOW); delay(100);
    digitalWrite(playBUTTON, HIGH); delay(60000); // 1분 쿨다운
  } else {
    digitalWrite(statusLED, HIGH); // 대기 중 표시 (일부 파워뱅크 슬립 방지용 미세 전류 소모)
  }
}

회로도 및 참고 파일

※ 회로도에는 배터리 팩 1개만 표시됐으나, 실제로는 MP3 모듈용 별도 5V 배터리 팩 추가함.

할로윈 PIR 모션 스피커: 공포 사운드 & 라이트 이펙트 키트
할로윈 PIR 모션 스피커: 공포 사운드 & 라이트 이펙트 키트
할로윈 PIR 모션 스피커: 공포 사운드 & 라이트 이펙트 키트
할로윈 PIR 모션 스피커: 공포 사운드 & 라이트 이펙트 키트

첨부 파일: voices_audio_dUluBtMyqG.mp3 (음성만, 조명 효과 없음, 6가지 웃음소리 랜덤 재생), laughing_ghost_variant_VsB0Y8CTlM.zip, archive_IipdobBdHs.zip, graveyard_ambience_sound_fx_(128_kbps)_nhuprhuJcc.mp3

제조공정

  1. 유도형 근접 센서: 회로 설계, 기능 및 실용적 응용
  2. 블루투스 메시 설계 선택: 모듈 vs 개별 디바이스
  3. Apacer XR-DIMM: DO-160G 인증 국방·항공용 견고한 DDR4 메모리
  4. emtrion, NXP i.MX 8M Mini 탑재 콤팩트 emCON-MX8M Mini 모듈 양산 개시
  5. congatec, NXP i.MX 8M Mini 프로세서 탑재 SMARC 2.0 모듈 출시
  6. 라즈베리 파이에서 GY-91 모듈로 견고한 온도 및 센서 API 구축하기
  7. 스마트폰 블루투스 근접 감지로 자동 잠금 도어락 만들기
  8. 라즈베리 파이 GPIO 마스터하기: B+/모델 2에서 PIR 모션 센서 인터페이싱
  9. 라즈베리파이 홈 보안 시스템: PIR 모션 감지 + 카메라 이메일 알림
  10. HC-SR501 PIR 모션 센서를 라즈베리파이에 연결, 보정, 프로그래밍하는 방법