Skip to content

NCNU-OpenSource/Watchdog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 

Repository files navigation

111LSA-第六組-瘋狂看門狗 Crazy Watch Dog-README

動機發想 Motivation

  • 阿棟常常帶女朋友回家住,但有時會被安同學闖入房間,因此他想了想決定在房間外養一隻看門狗,殊不知養狗的計畫還沒開始就被兇巴巴的房東阻止了,他既失望又無奈......
  • 靈機一動的阿棟決定用樹莓派連接NXT機器人在門口做一隻看門狗,透過webcam觀察四周的狀況,只要安同學一靠近,就派出看門狗去扁安同學,就算安同學想逃跑也要追著她打。

功能 Function

  • 當偵測到門外有可疑人士移動,會擷取一張即時影像,讓屋主知道要被狗追著打的人是誰
  • 機器狗可以追著入侵者進行攻擊

2022.01.22 新增功能 New Function

  • 照片可顯示日期時間
  • 如偵測到後會顯示開始攻擊字樣

樹莓派軟體使用技術

影像部分

  • 利用OpenCV-Python 進行影像處理
  • 影像會經過模糊化、灰階化,計算與前一幅影像的差異
  • 高於門檻值該幅影像則偵測出有動靜
  • 有動靜之區域產生等高線
  • 將等高線部分匡起來
  • 捨棄框太小的部分

網頁部分

  • 在Python使用Flask架構,搭配html完成互動式介面

使用設備 Equiptment

  • Rasberry Pi *1 (from TA NT$ 0)
  • NXT *2 & LEGO零件 (一台扮演看門狗,一台為入侵者 from 晏誠 NT$ 0)
  • WebCam *1 (from 順發 NT$ 699)
  • SD卡 *1(from 順發 NT$169)

需下載項目 Installation on Raspberry Pi

  • python相關

sudo apt install python3

sudo apt install python3-pip

sudo apt install python3-bluez

sudo pip install nxt-python

  • OpenCV相關

sudo apt install libopencv-dev

sudo apt install libatlas-base-dev

sudo pip3 install opencv-python opencv-contrib-python

  • 網頁架構相關

sudo pip install flask

軟體設定 Software Setting

NXT Programming

  • 安裝 LEGO MINDSTORMS Educate NXT programming
  • 使用 NXT programming 設計程式以控制機器狗
  • 先自轉,利用超音波偵測敵人距離,找到敵人後貼近敵人,與敵人貼近後,在進行攻擊。

OpenCV Setting

  • 將專案下載下來 Clone

git clone https://github.com/NCNU-OpenSource/Watchdog.git

  • 請先接上攝像頭 Plug Webcam in
  • 測試 Testing python3 /camera-test/camera-test.py

Modify Software

  • cd to project folder cd /Watchdog/web_watchDog
  • 新建資料夾 static 放置圖片 Create "static" Dir mkdir static
  • 修改存圖片路徑 vim cam.py
  • On line 88 (請使用pwd 確認static 路徑 圖檔名稱設置為capture.jpg)
cv2.imwrite('/Watchdog/web_watchDog/static/capture.jpg', original)
  • 存檔 Save

執行 run

:::danger 請記得樹莓派與互動電腦要先連上同一個網域 並連接NXT與Webcam 再進行以下操作 :::

  • 執行 sudo python3 cam.py
  • Terminal會跳出網址,即當下樹莓派的ip位址,如圖示
  • 於瀏覽器輸入 http://[ip位址]:5000

操作說明

  • 按下開始偵測按鈕即可開始偵測
  • 等待一段時間即開始偵測
  • 如偵測到有動靜會顯示綠框及暫停影像,瘋狂看門狗會進行攻擊 並擷取圖片,如圖示
  • 如果按下顯示偵測結果按鈕,則會顯示上次偵測到的結果
  • 偵測結束如需重新偵測請先 Refresh 網頁

硬體組裝

  • 組裝兩台機器人,一台用來當作入侵者,一台當做看門狗
  • 入侵者使用App遙控,機器狗藉由程式控制
  • 看門狗
  • 入侵者
  • NXT主機

困難及未來展望

困難

  • 網頁架構 Flask 使用上較不習慣,需要再多精進
  • 樹梅派利用藍芽連接NXT速度過慢,導致webcam也跟著當機

未來展望

  • 網頁需要重整才能重新開啟攝像頭,希望能再多加改進,新增一個按鈕可以讓他自動重跑,無需重整頁面
  • 希望能利用圖片做出更多應用(例如:將入侵者照片利用SMTP 發送郵件給主人)

工作分配 Job Assignment

  • 109213011 張晏誠
    • 組裝NXT機器人
    • NXT programming
  • 109213017 吳梓睿
    • 影像偵測
    • 網頁對接
    • 樹莓派指令處理
  • 109213041 林國棟
    • 樹莓派利用藍芽連結NXT
    • 網頁製作
  • 109213056 趙子安
    • 製作PPT
    • 網頁製作
  • 109213058 傅裕成
    • 製作PPT
    • 網頁製作

參考資料 Reference

簡報連結(內包含成果影片)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published