아두이노 MCU로 제어하는 안드로이드 모션 감지 카메라
부품 및 소모품
| 부품 | 수량 |
| 아두이노 우노 (Arduino UNO) | 1 |
| 초음파 센서 HC-SR04 (Generic) | 1 |
| 화이트 LED | 1 |
| 조도 센서 (LDR) | 1 |
| 브레드보드 (Generic) | 1 |
| 점퍼 와이어 (Generic) | 1 |
프로젝트 소개
안녕하세요 여러분. 스마트폰에는 다양한 센서가 내장되어 있어 여러 애플리케이션에서 활용됩니다. 하지만 때로는 스마트폰에 추가 센서를 연결해야 할 때가 있는데, 이때 아두이노/마이크로컨트롤러를 사용합니다. 제목에서 알 수 있듯이 스마트폰과 아두이노로 모션 감지 카메라를 만드는 방법을 소개합니다.
시작하기
먼저 이어폰의 좌우 오디오 출력 선을 자릅니다. 빨간선(마이크)과 검은선(그라운드)이 보일 것입니다. 이 선들에 점퍼 와이어를 연결하세요.
배선
아래 단계를 따라 아두이노 회로를 구성하세요:
- 아두이노 핀 2 ↔ 화이트 LED
- 아두이노 핀 6 ↔ 초음파 센서 Trig
- 아두이노 핀 7 ↔ 초음파 센서 Echo
- 초음파 센서에 5V 공급
이어폰 연결:
- 빨간선 ↔ LDR 한 쪽 다리
- 검은선 ↔ LDR 다른 쪽 다리
(LDR은 화이트 LED를 향하게 배치하세요. 검은 절연 테이프로 LED와 LDR을 차광하면 더 정확합니다.)
아두이노에 전원을 공급하고 이어폰 잭을 스마트폰에 연결하세요. 스마트폰에서 카메라 앱을 실행한 후 초음파 센서 앞에 물체를 대면 자동으로 사진이 촬영됩니다. 적절한 케이스를 만들어 마무리하세요. :)
축하합니다! 나만의 모션 감지 카메라가 완성되었습니다.
작동 원리
이어폰의 볼륨 버튼은 카메라 앱 실행 시 셔터 버튼 역할을 합니다. 볼륨 버튼은 마이크와 그라운드 사이에 고정된 저항값으로 연결되어 있습니다. LDR은 빛의 유무에 따라 저항값이 변하는데, 밝은 LED를 LDR 앞에 두면 LED가 켜질 때 LDR 저항이 낮아집니다. 이로 인해 LDR이 볼륨 버튼처럼 동작하여 셔터를 트리거하고 사진을 찍게 됩니다. LED와 LDR의 이러한 조합을 옵토커플러(Optocoupler)라고 합니다.
코드
안드로이드 모션 감지 카메라 with Arduino (C/C++)
#define pingTrig 6
#define pingEcho 7
int cameratrigger = 2;
int led = 3;
void setup() {
Serial.begin(9600);
pinMode(pingTrig, OUTPUT);
pinMode(pingEcho, INPUT);
delay(200);
pinMode(led, OUTPUT);
pinMode(cameratrigger, OUTPUT);
}
void loop() {
long duration, inches, cm;
digitalWrite(pingTrig, LOW);
delayMicroseconds(2);
digitalWrite(pingTrig, HIGH);
delayMicroseconds(10);
digitalWrite(pingTrig, LOW);
duration = pulseIn(pingEcho, HIGH);
cm = duration / 29 / 2;
Serial.print("-->");
Serial.println(cm);
if (cm < 30) {
digitalWrite(cameratrigger, HIGH);
digitalWrite(led, HIGH);
delay(200);
digitalWrite(cameratrigger, LOW);
digitalWrite(led, LOW);
delay(200);
}
}
회로도
회로도 이미지 참조