分享到plurk 分享到twitter 分享到facebook

版本 f7faf0bc76b248dcf994775ffbd6910372477969

embedded/os-team2014-6

Changes from f7faf0bc76b248dcf994775ffbd6910372477969 to current

---
title: 期末專題 Team #6
categories: embedded, arm, stm32, stm32f429
toc: no
...

題目
------

防盜攝影機

組員
---------

陳勁龍

賀祐農

竹內宏輝

` Hackpad<https://hackpad.com/project-Team6-1IgfrbuoIOc>`_
[ Hackpad](https://hackpad.com/project-Team6-1IgfrbuoIOc)

` GitHub<https://github.com/ycess87009/raspberry_camera_python>`_
[ 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元