版本 3e4cabddff096aea7859e1c1aaf35fd991d39671
期末專題 Team #6
題目
防盜攝影機
組員
陳勁龍
賀祐農
竹內宏輝
Hackpad<https://hackpad.com/project-Team6-1IgfrbuoIOc>
_
GitHub<https://github.com/ycess87009/raspberry_camera_python>
_
YouTube<https://www.youtube.com/edit?o=U&video_id=myaoz7UZFzY>
_
預期目標
有人經過時燈光會亮起,而攝影機會跟隨著人拍攝。
當偵測到有人經過時,發送簡訊給指定手機。
改善攝影機的夜視能力和增加拍攝距離
預算
IR sensor 5個(or 7個)
攝影機 1個
USB 3G Modem 1個
馬達 1個
齒輪 2個
固定基座 1個
製作過程
IR
型號:HC-SR501
偵測的極限約6~7公尺,實測延遲時間約為1秒(商家給的資料為0.3秒…)。
延遲時間雖然比第一次買得少,但仍然無法達到我們期望的反應時間,只能用軟體的方式解決。
經過多次測試後,調整較為合適的角度。
攝影機
型號:Omnivision 5647 sensor
馬達
型號:SG90 9G伺服馬達
以PWM的方式控制,轉動角度為180度
一開始把馬達固定在支架上時,發現馬達轉動的初始位置與支架擺放不恰當,會使馬達轉動時支架和共定座卡住。
經過測試後,調整較為合適的位置。
演算法
以rising edge觸發interrupt。當有任何一個IR 觸發時,將所有目前位於高電位的IR對應的位置值計算後,
轉動馬達到計算的位置。
此法在追蹤目標時仍然不準確,因為IR 的延遲時間約為1秒左右,且長短不一。
燈泡
我們討論後認為,與其購買有夜視能力的攝影機(需增加約220元),不如直接在附近製造光源,故使用繼電器(relay)控制燈泡來產生光源。
遇到的問題
馬達轉動停止時會震動
因為RPi.GPIO library控制PWM的方式是以軟體控制,馬達轉到指定位置後會抖動,造成畫面震盪。
為修正此問題,改以硬體操作PWM的方式來改善,但在馬達轉動時,畫面仍然會不穩定。
IR 探測範圍過大
若不縮小IR 探測範圍,複數個IR 同時感測到人體的機會過大,而無法正確控制馬達轉動到對應的位置。
故IR前面以強力膠將水管轉接頭黏上,但又因水管過重,會造成馬達負荷過重,因此改變馬達轉動停止的條件。
(原本是讓IR跟著馬達一起轉,這樣只要中間的IR感測到即可停止。但在IR無法一起轉的情況下,只能實際測試適合的轉動位置)
Pi不夠電
因為連接的東西有點多,每當馬達轉動的時候,會因為瞬間功耗過大,造成有時pi會當機。故增加一個電容(4700uF)還緩衝來解決此問題。
實際成品成本
攝影機 730元
人體感測器 200元(5個)
水管轉接頭 50元(5個)
線材、接頭&麵包板 150元
膠帶、強力膠 65元
電容 15元
馬達 70元
支架 250元
總計 1530元