1項(xiàng)目背景
隨著都市生活節(jié)奏的加快,越來越多的青年人為了夢想漂泊在大都市中。北京上海尤為居多,而很多人幾乎整個白天都不在家,家里的情況缺少有效的監(jiān)測。市面上,陸續(xù)推出了很多視頻監(jiān)控系統(tǒng),從一定程度上實(shí)現(xiàn)了遠(yuǎn)程監(jiān)控以及查看。
本項(xiàng)目,借助兆易創(chuàng)新推出的GD32F350高性價比Arm處理器,來實(shí)現(xiàn)家庭安防系統(tǒng)的初步搭建。通過傳感器對房屋狀況進(jìn)行有效監(jiān)控。借助OV5640攝像頭,熱釋電傳感器以及雨滴傳感器等,依靠GD32F350自身的硬件結(jié)構(gòu),實(shí)現(xiàn)了一個低成本、高準(zhǔn)確度的家庭安防方案。
從圖像處理層面,提升監(jiān)控的準(zhǔn)確性。依靠硬件自由的模塊,在未增加任何硬件擴(kuò)展模塊(SDRAMFLASH)等的基礎(chǔ)上,完全依靠GD32F350的自身優(yōu)勢,實(shí)現(xiàn)圖像信號捕捉,采集,傳感器信號捕捉、分析等實(shí)時性較強(qiáng)的監(jiān)測事件。
該系統(tǒng)采用了GD32F350的以下功能:
2. GPIO 通用輸入輸出接口
3. 內(nèi)部高速PLL,108MHz的主頻
5. 內(nèi)部FLASH讀寫
6. RTC實(shí)時時鐘
8. DMA傳輸
9. Timer捕獲觸發(fā)DMA傳輸
10. 外部中斷ETI
從實(shí)際測試效果和項(xiàng)目推進(jìn)過程中所用的模塊具體運(yùn)行情況來看,GD32F350這款處理器,已經(jīng)可以滿足絕大多數(shù)生活和工業(yè)的實(shí)際需要,功能強(qiáng)大,性能強(qiáng)悍,讓人欣喜不已。
2系統(tǒng)設(shè)計(jì)
本項(xiàng)目基于兆易創(chuàng)新的GD32F350 Arm處理器,作為《都市青年家庭安防衛(wèi)士》的主控處理器,負(fù)責(zé)對白天長時間無人的家庭環(huán)境進(jìn)行監(jiān)測,可監(jiān)測室外雨水情況,房屋人員走動情況等,可實(shí)現(xiàn)遠(yuǎn)程交互。
圖2.1 基于GD32F350的都市青年家庭安防衛(wèi)士架構(gòu)圖
2.1硬件設(shè)計(jì)
硬件設(shè)計(jì)采用PCB洞洞板和跳線來實(shí)現(xiàn)。將高速數(shù)字信號諸如攝像頭的PCLK和像素信號采用焊錫在洞洞板上走線,而諸如電源和地等低速數(shù)字信號或者模擬信號采用跳線等加以連接。
圖2.2 基于GD32F350的都市青年家庭安防衛(wèi)士部分硬件連接圖
2.2軟件設(shè)計(jì)
軟件設(shè)計(jì)主要圍繞ov5640的驅(qū)動來實(shí)施的,程序?qū)嵤┰韴D如下:
圖2.3 基于GD32F350攝像頭采集軟件設(shè)計(jì)框架圖
攝像頭的PCLK是高速信號,需要通過Timer定時器來進(jìn)行捕獲,通過觸發(fā)DMA請求,進(jìn)行傳輸,整個過程中,不需要CPU參與,極大的釋放了CPU的壓力,而且,整個采集過程高速進(jìn)行。場中斷和行中斷分別控制圖像信號的采集。
初始化DMA, TimerA,場中斷和行中斷后,設(shè)置DMA循環(huán)采集模式,即可得到想要的圖像數(shù)據(jù)。
程序流程圖如下:
3項(xiàng)目完成情況
項(xiàng)目歷時40多天,項(xiàng)目完成了預(yù)期的所有內(nèi)容,并額外擴(kuò)展了LCD顯示,藍(lán)牙顯示,雨滴傳感器等功能。
圖3.1 都市青年家庭安防衛(wèi)士實(shí)物圖
實(shí)現(xiàn)的功能主要有:
1. 軟件I2C成功實(shí)現(xiàn)GD32F350對攝像頭的讀寫
2. DMA+定時器捕獲實(shí)現(xiàn)對攝像頭數(shù)據(jù)的采集
3. 利用高達(dá)108MHz的內(nèi)部時鐘成功實(shí)現(xiàn)實(shí)時圖像處理
4. 實(shí)現(xiàn)高精度人體移動識別,識別精準(zhǔn)率高達(dá)99.9%
5. 實(shí)現(xiàn)系統(tǒng)與藍(lán)牙和電腦上位機(jī)的實(shí)時交互
6. 通過串口顯示屏方便查閱告警信息
7. 所有告警信息,都顯示具體的告警時間,精確到毫秒位(RTC實(shí)現(xiàn))。
所有預(yù)期功能100%實(shí)現(xiàn)。
程序源碼https://github.com/Janet-ZHU/Urban-youth-family-security-guard.git
4項(xiàng)目總結(jié)與展望
4.1 項(xiàng)目總結(jié)
項(xiàng)目實(shí)現(xiàn)了預(yù)期的功能,并額外擴(kuò)展了LCD顯示,藍(lán)牙,雨滴傳感器等功能
人體移動識別率高達(dá)99.9%。
雨滴和熱釋電傳感器為家庭生活提供了更多的提示。
4.2 未來的優(yōu)化
搭建web服務(wù)器,將告警信息和監(jiān)控狀態(tài)實(shí)施上傳。
利用QT開發(fā)中樞控制界面,以及安卓app客戶端。
進(jìn)一步優(yōu)化圖像算法,使得采集特征點(diǎn)降低的同時,保持較高的識別率。
5開發(fā)心得與難點(diǎn)
5.1開發(fā)心得
在實(shí)際的開發(fā)中,我們必須要讀懂芯片手冊和官方的開發(fā)者指南;另外,盡可能的查閱已有的資料和官方給出的固件庫,避免走彎路。很多時候,我們需要一個邏輯分析儀來調(diào)試我們的I2C,SPI以及其它協(xié)議,一個普通的就行,淘寶上價格不是很貴。
不得不說,GD32處理器性能已經(jīng)足夠我們平時的開發(fā),尤其是Arm內(nèi)核的通用性,使得我們查閱資料更加方便。
5.2難點(diǎn)總結(jié)
1. 開發(fā)板上的硬件I2C和UART1接口是被按鍵和JTGA調(diào)試口占用的,需要rework以下電路才能使用。因此,建議在使用一些功能前,請認(rèn)真核對以下板子原理圖。
2.?dāng)z像頭的PCLK速率過高,會造成中斷無法響應(yīng),建議不要采用GPIO查詢的方法接收PCLK,通過定時器捕捉PCLK,加上定時器電路有濾波器,會使得采集效果更好。
3. 在上電后改變PLL頻率時,需要等待PLL穩(wěn)定后,再切換,建議熟讀手冊,或者參考本項(xiàng)目中的相關(guān)程序。
-
傳感器
+關(guān)注
關(guān)注
2553文章
51505瀏覽量
757143 -
攝像頭
+關(guān)注
關(guān)注
60文章
4872瀏覽量
96446 -
模擬信號
+關(guān)注
關(guān)注
8文章
1144瀏覽量
52680
發(fā)布評論請先 登錄
相關(guān)推薦
GD32F10x MCU規(guī)格書
GD32F30x和GD32F403硬件開發(fā)指南
![<b class='flag-5'>GD32F</b>30x和<b class='flag-5'>GD32F</b>403硬件開發(fā)指南](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AN030 GD32F47x&F42x與GD32F45x&F40x系列間的差異
![AN030 <b class='flag-5'>GD32F</b>47x&<b class='flag-5'>F</b>42x與<b class='flag-5'>GD32F</b>45x&<b class='flag-5'>F</b>40x系列間的差異](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
GD32F350xx數(shù)據(jù)表
![<b class='flag-5'>GD32F350</b>xx數(shù)據(jù)表](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
如何使用Zigbee實(shí)現(xiàn)家庭安防
【GD32 MCU 移植教程】9、從 STM32F10x 系列移植到 GD32F30x 系列
![【<b class='flag-5'>GD</b>32 MCU 移植教程】9、從 STM32<b class='flag-5'>F</b>10x 系列移植到 <b class='flag-5'>GD32F</b>30x 系列](https://file1.elecfans.com/web2/M00/04/DF/wKgZombVHYWASdt6AAA4EF8E1O4442.png)
【GD32 MCU 移植教程】8、從 STM32F4xx 系列移植到 GD32F4xx 系
![【<b class='flag-5'>GD</b>32 MCU 移植教程】<b class='flag-5'>8</b>、從 STM32<b class='flag-5'>F</b>4xx 系列移植到 <b class='flag-5'>GD32F</b>4xx 系](https://file1.elecfans.com/web2/M00/06/61/wKgaombaXZ6AB4PtAABI6uZ03C4508.png)
【GD32 MCU 移植教程】7、從 GD32F10x 移植到 GD32E103
![【<b class='flag-5'>GD</b>32 MCU 移植教程】7、從 <b class='flag-5'>GD32F</b>10x 移植到 <b class='flag-5'>GD</b>32E103](https://file1.elecfans.com/web2/M00/06/3A/wKgaombZC9iADDHsAAAzqJTGQus009.png)
【GD32 MCU 移植教程】6、從GD32F1x0和GD32F3x0移植到GD32E230
![【<b class='flag-5'>GD</b>32 MCU 移植教程】6、從<b class='flag-5'>GD32F</b>1x0和<b class='flag-5'>GD32F</b>3x0移植到<b class='flag-5'>GD</b>32E230](https://file1.elecfans.com/web2/M00/05/2B/wKgZombXuiGAMp0PAAAraaER_q4744.png)
【GD32 MCU 移植教程】5、GD32E230 系列移植到 GD32F330 系列
![【<b class='flag-5'>GD</b>32 MCU 移植教程】5、<b class='flag-5'>GD</b>32E230 系列移植到 <b class='flag-5'>GD32F</b>330 系列](https://file1.elecfans.com/web2/M00/05/02/wKgZombWbr-ADGCPAAA9iVnbaUU566.png)
【GD32 MCU 移植教程】2、從 GD32F303 移植到 GD32F503
![【<b class='flag-5'>GD</b>32 MCU 移植教程】2、從 <b class='flag-5'>GD32F</b>303 移植到 <b class='flag-5'>GD32F</b>503](https://file1.elecfans.com/web2/M00/05/B4/wKgaombSc4eAC86hAAB_e6oIxhc582.png)
【GD32 MCU 移植教程】1、從 GD32F10x 移植到 GD32F30x
![【<b class='flag-5'>GD</b>32 MCU 移植教程】1、從 <b class='flag-5'>GD32F</b>10x 移植到 <b class='flag-5'>GD32F</b>30x](https://file1.elecfans.com/web2/M00/04/A7/wKgZombRJfWAB6RJAACAM1OtBAQ761.png)
評論