從上一篇的自製手機快門線-使用Arduino控制手機間格拍照,我們學會使用arduino控制手機間格拍照,可以延伸到縮時攝影的應用或是定時監控,更甚至是拍攝星軌,但是當只是想要偵測有物體動靜時才做鏡頭捕捉的動作,定時拍照就顯得不適用了,因此這篇要來教大家如何使用超音波感應器來偵測物體是否接近,來做拍照的動作,可以當作居家監控或是拍攝(偷拍)野生動物,既能拍攝不定期出現的物體,又能減少不必要的儲存空間浪費。
前言
由於這是將先前的教學做延伸,因此重複的東西就不多加贅述了,還沒看過前面貼文的人可以先回去看,下面附有之前教學的傳送們👇,話不多說,就趕緊進入教學吧!
所需材料
1. Arduino UNO*1
2. 2N2222 電晶體*1
3. 3.5mm 音源接頭*1
4. 4K7 歐姆電阻*1
5. 220 歐姆電阻*1
6. 按鈕開關*1
7. 電線數根
8. 麵包板*1
9. HC-SR04 超聲波感應器*1
線路接法
原則上與上一篇的接法完全一致,不過在加入一個HC-SR04的超聲波感應器來當作訊號來源,觸發拍照的訊號。
先來介紹一下超聲波感應器,一般常見的為 HC-SR04,為 4 pin 的腳,分別為Vcc/Trig/Echo/Gnd, 其中Trig為控制端,Echo作為接收端。利用發出超聲波後反彈回來的聲音,接收後計算時間差的原理,計算物體間的距離。
將 Vcc 腳位接到 arduino 的 5V,Trig 接到 9號腳位,echo 接到 10 號腳位,Gnd 接到 Gnd。
程式部分
#define SHUTTER_PIN 7
int LED = 13;
const int echoPin = 9;
const int trigPin = 10;
unsigned long d;
unsigned long ping(){
digitalWrite(trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
return pulseIn(echoPin, HIGH);
}
void setup() {
pinMode(trigPin,OUTPUT);
pinMode(echoPin,INPUT);
pinMode(SHUTTER_PIN, OUTPUT);
digitalWrite(SHUTTER_PIN, LOW);
}
void loop() {
d = ping() / 58;
if(d<=30){
digitalWrite(SHUTTER_PIN, HIGH);
delay(100);
digitalWrite(SHUTTER_PIN, LOW);
delay(1500);
}
}
總結
經過三個單元的快門線製作,大致釐清了手機快門控制的原理,雖然像是比較實驗性的結果,不過加點巧思也可以做出很棒的應用,比如這個單元,就可以應用到噘加監控,防盜的功能,或是也拍小動物,總之這一部分也將告一個段落了,希望有幫到需要的人。