• 正文
    • 第一部分 設(shè)計概述
    • 第二部分 系統(tǒng)組成及功能說明
    • 第四部分 總結(jié)
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

基于PYNQ的智能垃圾分類系統(tǒng)

06/10 10:30
356
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

大俠好,歡迎來到FPGA技術(shù)江湖,江湖偌大,相見即是緣分。大俠可以關(guān)注FPGA技術(shù)江湖,在“闖蕩江湖”、"行俠仗義"欄里獲取其他感興趣的資源,或者一起煮酒言歡?!爸缶蒲詺g”進(jìn)入IC技術(shù)圈,這里有近100個IC技術(shù)公眾號。

第一部分 設(shè)計概述

1.1 設(shè)計目的

隨著現(xiàn)代社會的高速發(fā)展,其帶來的環(huán)境壓力也越來越大,對于日益劇增的垃圾產(chǎn)量已經(jīng)成為世界關(guān)注的焦點(diǎn)。垃圾分類成為制約我國環(huán)保產(chǎn)業(yè)發(fā)展的瓶頸,也是造成環(huán)境污染、資源再利用困難的根源之一,所以推進(jìn)垃圾分類刻不容緩。然而垃圾分類總是 “屢試屢敗”工作推進(jìn)難度巨大,“垃圾分類難”也同樣困擾著大眾,為了緩解垃圾分類的問題,減輕社會和居民的壓力,如果可以實(shí)現(xiàn)可回收垃圾二次分類,對生活垃圾自主分類就顯得尤為重要。于此,我們決定設(shè)計這樣一個作品—智能識別自動投遞分類垃圾箱,方便垃圾回收和利用。

本作品是基于賽靈思公司的 pynq 開發(fā)平臺設(shè)計,同時結(jié)合了機(jī)械控制和神經(jīng)網(wǎng)絡(luò)等知識,擁有可以自主識別垃圾并分類的功能,以 FPGA 作為核心處理器最大程度的實(shí)現(xiàn)了垃圾識別與分類。該智能垃圾桶將人工分類垃圾轉(zhuǎn)為智能化,大大節(jié)省了人力、物力,降低垃圾分類的煩惱,具有長遠(yuǎn)的利用價值和非常巨大的市場前景。該作品有兩種操作模式,可在圖像識別語音識別兩種模式之間自由切換。

1.2 應(yīng)用領(lǐng)域

本作品應(yīng)用前景廣泛,智能識別自動分類系統(tǒng)實(shí)現(xiàn)用攝像頭取代了人類的眼睛,人工智能取代了大腦,電機(jī)取代了雙手。實(shí)用性強(qiáng)且可使用范圍廣,既推動我國環(huán)保事業(yè),又減輕社會對垃圾處理的壓力,節(jié)約資源降低處理垃圾資金投入。

1.3 適用范圍

有效減少環(huán)境污染,提高資源的再利用,可以適用于生活中的方方面面。例如,在家庭中使用,解決居民垃圾分類的煩惱,或是運(yùn)用各大商場或人流量密集的地方,可以大大緩解垃圾分類的問題,減輕社會環(huán)境壓力。此外,本作品可適用于可回收垃圾的二次分類,即加大資源的回收利用,有著促進(jìn)社會可持續(xù)發(fā)展具有一定的市場經(jīng)濟(jì)價值。

第二部分 系統(tǒng)組成及功能說明

2.1 系統(tǒng)介紹

本系統(tǒng)主要由 Xilinx Zynq-7000 系列的 PYNQ-Z2 開發(fā)板作為主控中心,主要包含:攝像頭采集模塊、圖像處理模塊、實(shí)時顯示模塊、實(shí)時數(shù)據(jù)采集模塊、信息提醒 發(fā)送模塊、驅(qū)動控制模塊組成。總體結(jié)構(gòu)如圖 2.1 所示。

流程圖講解:主控 PYNQ 開發(fā)板主要為提供神經(jīng)網(wǎng)絡(luò)的加速識別,搭載 USB 的網(wǎng)絡(luò)攝像頭進(jìn)行數(shù)據(jù)的采集和功能參數(shù)的顯示,同時在這個 ARM+FPGA 平臺,為了最大化主控板優(yōu)勢,我們針對軟件算法進(jìn)行了相應(yīng)的硬件實(shí)現(xiàn)進(jìn)行提速,解決了在有限的資源內(nèi)實(shí)現(xiàn)了資源 利用和效率的最大化,同時在 PYNQ 端,為了保證產(chǎn)品的功能完整性,設(shè)計了兩種識別 模式,圖像識別模式和語音識別模式。

待識別完成后,我們將通過設(shè)置的通信協(xié)議進(jìn)行數(shù)據(jù)的傳輸,使得輔助開發(fā)板可以進(jìn)行自動投遞。輔助開發(fā)板主要對各種傳感器進(jìn)行數(shù)據(jù)采集、數(shù)據(jù)分析、數(shù)據(jù)處理、控制設(shè)備的驅(qū)動、以及串口通信,實(shí)現(xiàn)不同開發(fā)板之間信息傳輸。

接收所識別垃圾的信息,控制數(shù)字舵機(jī)的轉(zhuǎn)動,將垃圾投入相應(yīng)垃圾桶內(nèi)。通過 FPGA 開發(fā)板將溫度傳感器測得的垃圾桶內(nèi)溫度值、超聲波測得的桶內(nèi)垃圾含量、是否存在有害氣體、是否檢測到火焰等數(shù)據(jù)經(jīng)過處理發(fā)送給顯示模塊,最終在顯示終端顯示攝像頭采集得到的照片、垃圾桶內(nèi)溫度、桶內(nèi)垃圾含量、系統(tǒng)目前狀態(tài)等數(shù)據(jù)。

當(dāng)檢測到火焰,有害氣體以及滿桶警告時,將通過短信模塊給管理員發(fā)送短信提醒。垃圾桶內(nèi)部空間大,外部結(jié)構(gòu)穩(wěn)定,設(shè)置安全提示和自我保護(hù)功能,超聲波和紅外傳感器實(shí)現(xiàn)智能檢測桶內(nèi)環(huán)境,遇到特殊情況,系統(tǒng)將自動發(fā)送信息至管理員進(jìn)行相應(yīng)的處理。

2.2 FPGA 開發(fā)板


本系統(tǒng)主要由 Xilinx Zynq-7000 系列的 PYNQ-Z2 開發(fā)板作為主控中心,如圖2.2.1 所示。其主芯片為 XC7Z020CLG400-1,該芯片是 FPGA+ARM 架構(gòu)且可用 python 開發(fā),同時提供了豐富的 python API 和完善的硬件設(shè)計流程,能實(shí)現(xiàn)較復(fù)雜的邏輯設(shè)計,13300 個邏輯 Slices,高達(dá) 650MHZ 的工作頻率,630K 的快速 Block RAM,220 個 DSP 切片,資 源十分豐富。同時使用 Spartan6 核心開發(fā)板作為輔助顯示控制中心,如圖 2.3 所示。

2.3 各模塊介紹

2.3.1 數(shù)字電機(jī)模塊

數(shù)字電機(jī)是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰?a class="article-link" target="_blank" href="/baike/1549138.html">開環(huán)控制元步進(jìn)電機(jī)件。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號的頻率,而不受負(fù)載變化的影響, 當(dāng)步進(jìn)驅(qū)動器接收到一個脈沖信號,它就驅(qū)動步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動一定的角度,它的旋轉(zhuǎn)的角度可以通過控制脈沖的占空比進(jìn)行改變調(diào)整。

如圖 2.3.1 所示, 這是數(shù)字電機(jī)模塊圖。DS3225 數(shù)字舵機(jī)是電路板(微小控制)、防水防燒(有硅膠圈)、金屬齒輪(不 容易掃齒)、支持高電壓(6v~7.4v 可以直接 2s 鋰電供電)、中間金屬(散熱效果很好)

本系統(tǒng)利用數(shù)字電機(jī)控制垃圾桶的底部旋轉(zhuǎn)和識別云臺翻轉(zhuǎn)。

2.3.2 GY-MCU90615 模塊

GY-MCU90615 是一款低成本紅外溫度模塊。工作電壓 3-5v 功耗小,體積小。其 工作原理,是通過 FPGA 讀取紅外溫度度數(shù)據(jù),串口(TTL 電平) 通信方式輸出。串 口的波特率有 9600bps 與 115200bps 有連續(xù)輸出與詢問輸出兩種方式,可適應(yīng)不同 的工作環(huán)境產(chǎn)品應(yīng)用:人體測溫、發(fā)熱物體表面溫度檢測、非接觸溫度檢測。

①.Byte0: 0x5A 幀頭標(biāo)志②.Byte1: 0x5A 幀頭標(biāo)志③.Byte2: 0X45 本幀數(shù)據(jù)類型(0X45:溫度數(shù)據(jù))④.Byte3: 0x04 數(shù)據(jù)量(以下 4 個數(shù)據(jù) 2 組為例)⑤.Byte4: 0x00~0xFF 數(shù)據(jù) 1 高 8 位⑥.Byte5: 0x00~0xFF 數(shù)據(jù) 1 低 8 位⑦.Byte6: 0x00~0xFF 數(shù)據(jù) 2 高 8 位⑧.Byte7: 0x00~0xFF 數(shù)據(jù) 2 低 8 位⑨.Byte8: 0x00~0xFF 校驗(yàn)和(前面數(shù)據(jù)累加和,僅留低 8 位)

2.3.3 GSM 模塊

本模塊設(shè)計 UART 通信協(xié)議與 SIM800A 通信,用于收發(fā)短信和存儲短信內(nèi)容。

SIM800A 模塊簡介SIM800A 模塊通過發(fā)送和接受國際電信聯(lián)盟規(guī)定的 AT 指令集來進(jìn)行控制和數(shù)據(jù)接收,本系統(tǒng)用到的 AT 指令集有:

UART 協(xié)議簡述:通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作 UART,是一種異步收發(fā)傳輸器。將數(shù)據(jù)由串行通信并行通信間作傳輸轉(zhuǎn)換,作為并行輸入成為串行輸出的芯片 UART 是一種通用串行數(shù)據(jù)總線,用于異步通信。該總線雙向通信,可以實(shí)現(xiàn)全雙工傳輸和接收。UART 作為異步串口通信協(xié)議的一種,工作原理是將傳輸數(shù)據(jù)的每個字符一位接一 位地傳輸。其中每一位(Bit)的意義如下:起始位:先發(fā)出一個邏輯“0”的信號,表示傳輸字符的開始。數(shù)據(jù)位:緊接著起始位之后。數(shù)據(jù)位的個數(shù)可以是 4、5、6、7、8 等,構(gòu)成一個 字符。通常采用 ASCII 碼。從最低位開始傳送,靠時鐘定位。奇偶校驗(yàn)位:數(shù)據(jù)位加上這一位后,使得“1”的位數(shù)應(yīng)為偶數(shù)(偶校驗(yàn))或奇數(shù)(奇 校驗(yàn)),以此來校驗(yàn)數(shù)據(jù)傳送的正確性。停止位:它是一個字符數(shù)據(jù)的結(jié)束標(biāo)志??梢允?1 位、1.5 位、2 位的高電平。由于數(shù)據(jù)是在傳輸線上定時的,并且每一個設(shè)備有其自己的時鐘,很可能在通信中兩臺設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計算機(jī)校正時鐘同步的機(jī)會。適用于停止位的位數(shù)越多,不同時鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時也越慢??臻e位:處于邏輯“1”狀態(tài),表示當(dāng)前線路上沒有數(shù)據(jù)傳送。UART 協(xié)議傳輸時序如圖 2.3.4 所示:

發(fā)送數(shù)據(jù)過程:空閑狀態(tài),線路處于高電位;當(dāng)收到發(fā)送數(shù)據(jù)指令后,拉低線路一個數(shù)據(jù)位的時間 T,接著數(shù)據(jù)按低位到高位依次發(fā)送,數(shù)據(jù)發(fā)送完畢后,接著發(fā)送奇偶校驗(yàn)位和停止位(停止位為高電位),一幀數(shù)據(jù)發(fā)送結(jié)束。

接收數(shù)據(jù)過程:空閑狀態(tài),線路處于高電位;當(dāng)檢測到線路的下降沿(線路電位由高電位變?yōu)榈碗娢唬r說明線路有數(shù)據(jù)傳輸,按照約定的波特率從低位到高位接收數(shù)據(jù),數(shù)據(jù)接收完畢后,接著接收并比較奇偶校驗(yàn)位是否正確,如果正確則通知后續(xù) 設(shè)備準(zhǔn)備接收數(shù)據(jù)或存入緩存。由于 UART 是異步傳輸,沒有傳輸同步時鐘。為了能保證數(shù)據(jù)傳輸?shù)恼_性,UART 采用 16 倍數(shù)據(jù)波特率的時鐘進(jìn)行采樣。

每個數(shù)據(jù)有 16 個時鐘采樣,取中間的采樣值, 以保證采樣不會滑碼或誤碼。一般 UART 一幀的數(shù)據(jù)位數(shù)為 8,這樣即使每個數(shù)據(jù)有一個時鐘的誤差,接收端也能正確地采樣到數(shù)據(jù)。

UART 的接收數(shù)據(jù)時序?yàn)椋寒?dāng)檢測到數(shù)據(jù)的下降沿時,表明線路上有數(shù)據(jù)進(jìn)行傳輸, 這時計數(shù)器 CNT 開始計數(shù),當(dāng)計數(shù)器為 24=16+8 時,采樣的值為第 0 位數(shù)據(jù);當(dāng)計數(shù)器的值為 40 時,采樣的值為第 1 位數(shù)據(jù),依此類推,進(jìn)行后面 6 個數(shù)據(jù)的采樣。如果需要進(jìn)行奇偶校驗(yàn),則當(dāng)計數(shù)器的值為 152 時,采樣的值即為奇偶位;當(dāng)計數(shù)器的值為 168 時,采樣的值為"1"表示停止位,一幀數(shù)據(jù)接收完成。一個標(biāo)準(zhǔn)的 10 位異步串行通信協(xié)議(包含 1 個起始位、1 個停止位和 8 個數(shù)據(jù)位) 收發(fā)時序,如圖 2.2.5 所示:

波特率發(fā)生器:波特率是衡量數(shù)據(jù)傳輸速率的指標(biāo),表示每秒傳送數(shù)據(jù)的字符數(shù), 單位為 Baud。UART 的接收和發(fā)送是按照相同的波特率進(jìn)行收發(fā)的。波特率發(fā)生器產(chǎn)生 的時鐘頻率不是波特率時鐘頻率,而是波特率時鐘頻率的 16 倍,目的是為在接收時進(jìn) 行精確地采樣,以提取出異步的串行數(shù)據(jù)。根據(jù)給定的晶振時鐘和要求的波特率,可以算出波特率分頻計數(shù)值。

2.3.4 一氧化碳傳感器

我們采用的 MQ-7 一氧化碳傳感器所使用的氣敏材料是在清潔空氣中電導(dǎo)率較低的二氧化錫(SnO2)。采用高低溫循環(huán)檢測方式,低溫(1.5V 加熱)檢測一氧化碳,傳感器的電導(dǎo)率隨空氣中一氧化碳?xì)怏w濃度增加而增大,高溫(5.0V 加熱)清洗低溫時吸附的雜散氣體。使用簡單的電路即可將電導(dǎo)率的變化,轉(zhuǎn)換為與該氣體濃度相對應(yīng) 的輸出信號。傳感器對一氧化碳的靈敏度高,這種傳感器可檢測多種含一氧化碳的氣 體,是一款適合多種應(yīng)用的低成本傳感器。

特點(diǎn):1、具有信號輸出指示。

2、雙路信號輸出(模擬量輸出及 TTL 電平輸出)

3、TTL 輸出有效信號為低電平。(當(dāng)輸出低電平時信號燈亮)

4、模擬量輸出 0~5V 電壓,濃度越高電壓越高。

5、對一氧化碳具有很高的靈敏度和良好的選擇性。

6、具有長期的使用壽命和可靠的穩(wěn)定性通過傳感器回傳的數(shù)據(jù),進(jìn)行分析,對一氧化碳有毒氣體進(jìn)行檢,適應(yīng)多種環(huán)境下的氣體檢測。

2.3.5 超聲波模塊

模塊工作原理:1、采用 IO 觸發(fā)測距,給至少 10us 的高電平信號;(發(fā)送周期不小于 60ms)2、模塊自動發(fā)送 8 個 40khz 的方波,自動檢測是否有信號返回;3、有信號返回,通過 IO 輸出一高電平,高電平持續(xù)的時間就是超聲波從發(fā) 射 到返回的時間;4、測試距離=(高電平時間*聲速(340M/S))/2;超聲波指向性強(qiáng),能量消耗緩慢,在介質(zhì)中傳播的距離較遠(yuǎn),因而采用超聲波 模塊進(jìn)行距離的測量。

HC-SR04 是一款性能穩(wěn)定的超聲波傳感器,用于距離的測 量。該模塊發(fā)出超聲波時,并不是直線發(fā)出,而是以扇形的形式發(fā)出。具體使用時, 左右兩邊的障礙物也會對結(jié)果產(chǎn)生影響。超聲波模塊適用于障礙物與超聲波模塊角 度小于 15 度之內(nèi),否則超聲波將發(fā)生折射現(xiàn)象,無法精確測量距離。

時序:1、提供 TRING 一個 10us 以上的的脈沖觸發(fā)信號;2、模塊內(nèi)部將發(fā)出 8 個 40Khz 周期的電平并檢測回波;3、當(dāng)有回響信號時,通過 ECHO 輸出一個高電平,高電平持續(xù)時間就是超聲波發(fā) 射和收回的時間間隔。

電氣特性及注意事項: 1、建議測量周期 60MS 以上,以防止發(fā)射信號對回響信號影響;2、測距時,被測物體面積要大于 0.5 平方米且平面盡量平整;3、電源供電不要低于 5V,否則會影響測試結(jié)果。

2.3.6 火焰模塊

該模塊可以檢測火焰或者波長在 760 納米~1100 納米范圍內(nèi)的光源,探測角度在 60 度左右,對火焰光譜特別靈敏(靈敏度可通過電位器調(diào)節(jié)),對火焰的探測距離:跟靈敏度和火焰強(qiáng)度有關(guān),一般 1m 以內(nèi)適用(以打火機(jī) 火焰測試,半米內(nèi)能夠觸發(fā)傳感器),工作電壓 3.3V-5V。輸出形式 :1、模擬量電壓輸出;2、數(shù)字開關(guān)量輸出(0 和 1)當(dāng)附近有火源時輸出低電平。通過火焰?zhèn)鞲衅?/a>,對垃圾桶內(nèi)微小火源進(jìn)行檢測,預(yù)防火災(zāi)的發(fā)生。2.3.7 語音播報模塊

模塊工作原理:此模塊是一個提供串口控制的 MP3 模塊,模塊有多種控制模式,完美的集成了 MP3、MAV 的硬 解碼。同時軟件支持 USB/TF 驅(qū)動,支持 FAT16FAT32 文件系統(tǒng)。在此我們使用其串口模式對其進(jìn)行控制,模塊功能完善,有廣播語插播功能、音頻 文件播放功能等,在此我們通過簡單的串口指令即可完成播放指定的語音。其中 USB 當(dāng)作讀卡器使用,將需要播放的語音存至 USB 中,通過 UART 通信協(xié)議將語音指令發(fā)送至板子中進(jìn)行測試。

用 3.3V-5.4V 電壓、9600Hz 波特率。另外該芯片 也是深度定制的產(chǎn)品,專為 USB 讀卡器,TF 卡播放器固定播放領(lǐng)域開發(fā)的低成本解決方案。廣泛應(yīng)用于車載導(dǎo)航語音播報、多路語音告警或設(shè)備操作引導(dǎo)語音、機(jī)電設(shè)備故障自動報警,音樂播放等領(lǐng)域。

技術(shù)參數(shù):1、支持采樣率(KHz):8/11.025/12/16/22.05/24/32/44.1/482、24 位 DAC 輸出,動態(tài)范圍支持 90dB,信噪比支持 85dB3、完全支持 FAT16、FAT32 文件系統(tǒng),最大支持 32G 的 U 盤,TF 卡4、多 種控制模式,串口模式、AD 按鍵控制模式5、廣播語插播功能,可以暫停正在播放的背景音樂6、音頻數(shù)據(jù)按文件夾排序,最多支持 255 個文件夾,每個文件夾可以分配 1000 首歌曲7、30 級音量可調(diào),5 級 EQ 可調(diào)8、連接電腦可以顯示盤符進(jìn)行更新內(nèi)容9、可以通過單片機(jī)串口進(jìn)行控制播放指定的音樂10、在按鍵模式下,可以進(jìn)行播放模式選擇:單曲循環(huán),大循環(huán)。硬件參數(shù):語音播報模塊的硬件參數(shù)

2.3.8 語音識別模塊

模塊介紹:

1.模塊采用非特定人語音識別技術(shù),可對用戶的語音進(jìn)行識別。支持中文音素識別, 可任意指定中文識別詞條(小于 8 個字)。單次識別可支持 1000 條以上的語音命令,并支持識別命令分組??蓪?0.2 秒至 3.2 秒的語音命令進(jìn)行響應(yīng),響應(yīng)時間約為 0.4 秒至 1.2 秒。安靜環(huán)境下,標(biāo)準(zhǔn)普通話,識別率大于 95%。LD3320 是一顆基于非特定人語音識別 (SI-ASR:Speaker-Independent Automatic Speech Recognition)技術(shù)的語音識別/聲控芯片。提供了真正的單芯片語音識別解 決方案。

2. LD3320 芯片上集成了高精度的 A/D 和 D/A 接口,不再需要外接輔助的 Flash 和 RAM,即可以實(shí)現(xiàn)語音識別/聲控/人機(jī)對話功能。并且識別的關(guān)鍵詞語列表是可以動態(tài)編輯的。3.基于 LD3320,可以在任何的電子產(chǎn)品中,甚至包括簡單的 51 作為主控芯片的系統(tǒng)中,輕松實(shí)現(xiàn)語音識別/聲控/人機(jī)對話功能。為所有的電子產(chǎn)品增加 VUI(Voice User Interface)語音用戶操作界面。

硬件參數(shù):1.內(nèi)置單聲道 mono 16-bit A/D 模數(shù)轉(zhuǎn)換2.內(nèi)置雙聲道 stereo 16-bit D/A 數(shù)模轉(zhuǎn)換3.內(nèi)置 20mW 雙聲道耳機(jī)放大器輸出4.內(nèi)置 550mW 單聲道揚(yáng)聲器放大器輸出5.支持并行接口或者 SPI 接口6.內(nèi)置鎖相電路 PLL,輸入主控時鐘頻率為 2MHz - 34MHz7.工作電壓:(VDD: for internal core) 3.3V8. 48pin 的 QFN 7*7 標(biāo)準(zhǔn)封裝9.省電模式耗電:1uA

2.3.8 串口屏模塊

串口屏原理:串口屏將復(fù)雜的事情變簡單,用戶只需要通過串口發(fā)送一個命令字符串完成漢字以及圖片的顯示。串口屏是由液晶屏+單片機(jī)+ 存儲器三部分構(gòu)成的,串口是單片機(jī)中 最普遍的一種接口,具有廣泛的用戶基礎(chǔ)和資料普及。常言道,把復(fù)雜的事情變簡單就是價值,串口屏正遵循了這個原則,只需要通過串口發(fā)送一個命令字符串,比如 "CLS(1);" 就可以將屏幕清成紅色;同樣發(fā)送其他的命令就可以完成漢字以及圖片的 顯示。

通信原理 :在串口屏與 FPGA 信息交互時使用了 UART 通信協(xié)議。計算機(jī)和外部設(shè)備 的連接,基本上使用了兩類接口:串行接口和并行接口。并行接口是指數(shù)據(jù)的各個位同時進(jìn)行傳送,其特點(diǎn)是傳輸速度快,但當(dāng)傳輸距離遠(yuǎn)、位數(shù)又多時,通信線 路變復(fù)雜且成本提高。串行通信是指數(shù)據(jù)一位位地順序傳送,其特點(diǎn)是適合于 遠(yuǎn) 距離通信,通信線路簡單,只要一對傳輸線就可以實(shí)現(xiàn)雙向通信,從而大大降低了成本。

當(dāng)串口屏被操作者觸摸,會有一系列指令數(shù)據(jù)發(fā)出,將發(fā)出的信息傳送給 FPGA 進(jìn)行綜合處理,F(xiàn)PGA 也會反饋給串口屏一系列數(shù)據(jù)。在這樣的信息傳輸過程中是以 UART 通訊協(xié)議進(jìn)行通信的。

硬件連接:串口屏使用四個管腳。+5V 和 GND 及其供電管腳,直接接上 5V 電源,系統(tǒng)即可點(diǎn)亮并演示可實(shí)現(xiàn)上述相關(guān)功能。RX 是串口屏的數(shù)據(jù)接收管腳, 需要連接 TTL 線的 TX 數(shù)據(jù)發(fā)送端。TX 是串口屏的數(shù)據(jù)發(fā)送管腳,需要連接 TTL 線的 RX 數(shù)據(jù)接收端。

2.3.9 USB 攝像頭模塊

該 USB 攝像頭免驅(qū)動,可在 FPGA 開發(fā)板上調(diào)用對應(yīng)的 python API 來控制攝像 頭使用。在攝像頭采集模塊中,我們將 python 內(nèi)部 opencv 模塊的圖像處理函數(shù)加載至攝像頭端,當(dāng)攝像頭采集視頻流時可在顯示屏實(shí)時觀看所采集到的視頻流。?第三部分 完成情況及性能參數(shù) /Final Design & Performance Parameters

本系統(tǒng)由攝像頭模塊、顯示器模塊、語音識別和語音播報模塊、電機(jī)驅(qū)動模塊、傳感器等共同組成。具有攝像頭拍照識別垃圾種類、實(shí)時檢測溫度、火焰、有害氣體、垃圾含量多少、滿桶警告、特殊情況短信提醒、語音播報、語音識別以及屏幕實(shí)時顯示等功能,同時附加了語音識別和語音播報功能增加識別的準(zhǔn)確率。市民將垃圾投入到垃圾桶后,桶內(nèi)的攝像頭會對垃圾進(jìn)行拍照,通過數(shù)據(jù)庫對比識別垃圾的種類,判定結(jié)果通過開發(fā)板回傳至垃圾桶,控制舵機(jī)轉(zhuǎn)動隔板完成分類。

可實(shí)現(xiàn)功能:(1)在圖像識別模式下,可以對可回收垃圾進(jìn)行二次分類回收利用, 可識別塑料、金屬、玻璃、硬紙板、廢紙并進(jìn)行分類;

(2)在語音識別模式下,可以 直接對一些生活中常見垃圾進(jìn)行可回收垃、廚余垃分類圾、其他垃圾、有害垃圾四種分類,投入相應(yīng)垃圾桶內(nèi)。目前,兩個功能均已實(shí)現(xiàn)且可以隨意切換使用,各模塊之間按功能連接。傳感器采集得到的數(shù)據(jù)經(jīng)過處理之后發(fā)送給顯示器模塊,在串口屏顯示終端顯示垃圾桶內(nèi)垃圾含量、系統(tǒng)安全性以及傳感器實(shí)時監(jiān)控環(huán)境數(shù)據(jù)。

兩種垃圾識別模式:語音識別模式和圖像識別模式

(1)使用圖像識別,可以對可 回收垃圾進(jìn)行二次識別;

(2)使用語音識別模式,可以直接對一些生活中常見垃圾進(jìn)行可回收垃、廚余垃圾、其他垃圾、有害垃圾四種識別。將傳感器檢測一氧化碳、火焰?zhèn)鞲衅?、紅外溫度的數(shù)據(jù)經(jīng)過分析過后作是否開啟 的報警提示信號。系統(tǒng)還可以根據(jù)垃圾桶內(nèi)垃圾的含量、是否出現(xiàn)火焰、存在有害氣體等,通過短 信發(fā)送給管理員進(jìn)行及時處理。

3.1 攝像頭模塊

在攝像頭采集模塊中,我們將 python 內(nèi)部 opencv 模塊的圖像處理函數(shù)加載至攝像頭端,當(dāng)攝像頭采集視頻流時可在顯示屏實(shí)時觀看所采集到的視頻流。攝像頭采集效 果如下所示:

3.2 語音識別模塊

我們可以很簡便的配置語音命令,實(shí)現(xiàn)語音識別功能。首先需要通過軟件設(shè)置詞條,后將詞條燒錄至模塊中。其次,利用 UART 通信協(xié)議發(fā)送啟動指令驅(qū)動語音識別模塊,當(dāng)使用者對模塊說話時,模塊對說出的話進(jìn)行識別并且與燒錄進(jìn)去的詞條進(jìn)行對比,若兩者一致,則會向開發(fā)板發(fā)送信號,信號經(jīng)過處理后控制震動和語音播報的 開關(guān)。

3.3 語音播報模塊

語音模塊通過串口發(fā)送指令控制模塊外置 SD 卡或 U 盤中預(yù)先存儲的語音及音樂,串口屏發(fā)送過來的指令使用狀態(tài)機(jī)檢測,然后觸發(fā)語音發(fā)送指令模塊,觸發(fā)語音播報。RTL 圖如圖 3.16 所示。完全支持 FAT16、FAT32 文件系統(tǒng),最大支持 32G 的 U 盤,TF 卡。U 盤和 SD 卡, 需要格式化為 FAT16、FAT32 文件系統(tǒng)。通訊格式:起始位 0x7E + len 后面字節(jié)個數(shù) + 命令(播放或暫停) + 查詢歌曲序號(數(shù)據(jù)高字節(jié)) + 查詢數(shù)據(jù)低字節(jié) + 結(jié)束位 0xEF。直接發(fā)送的指令, 每發(fā)一條正確指令都會返回 “OK”錯誤返回“err”,修改指 令第三、四位十六進(jìn)制數(shù)據(jù),即可播放指定文件夾語音。如圖 3.17 所示:

在此我們采用的指定文件夾播放的方式進(jìn)行播放,在外置存儲器中新建文件夾, 文件夾名必須為 01-99 文件號,文件內(nèi)總曲目名字必須改 1-255。建好文件夾并且存儲好 要播放的語音后,就可以通過開發(fā)板發(fā)送播報指令,語音模塊便開始工作播報語音。若想要播放 01 文件夾中文件名為 008 的語音,則發(fā)送指令:7E 04 41 01 08 EF(其 中 7E 為起始地址,04 為位長度,41 為指令,01 08 表示 01 文件夾內(nèi)文件名為 008 的語音)。

3.4 顯示模塊通過 pynq 實(shí)現(xiàn)對相關(guān)資源進(jìn)行調(diào)用進(jìn)行實(shí)現(xiàn)圖片的顯示功能。

3.5 舵機(jī)驅(qū)動模塊

本系統(tǒng)設(shè)計中所使用的數(shù)字電機(jī)為如圖所示。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號的頻率,而不受負(fù)載變化的影響,當(dāng)步進(jìn)驅(qū)動器接收到 一個脈沖信號,它就驅(qū)動步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動一定的角度,它的旋轉(zhuǎn)的角度可以通過控制脈沖的占空比進(jìn)行改變調(diào)整。位置控制是通過發(fā)脈沖來控制的,位置控制模 式一般是通過外部輸入的脈沖的頻率來確定轉(zhuǎn)動速度的大小,通過脈沖的個數(shù)來確定轉(zhuǎn)動的角度。

一個周期是 20MS,一個周期的高脈沖范圍在 0 到 2.5MS 其對應(yīng)的舵機(jī)轉(zhuǎn)動角度范圍是 0 到 270 度。只要設(shè)定相應(yīng)轉(zhuǎn)動角度對應(yīng)的計數(shù)值,則可以實(shí)現(xiàn)相應(yīng)的角度旋轉(zhuǎn)。其 RTL 如圖 3.所示:

3.6 串口屏顯示模塊

我們在串口屏與 FPGA 信息交互時使用了 UART 通信協(xié)議。計算機(jī)和外部設(shè)備的連接,基本上使用了兩類接口:串行接口和并行接口。并行接口是指數(shù) 據(jù)的各個位同時進(jìn)行傳送,其特點(diǎn)是傳輸速度快,但當(dāng)傳輸距離遠(yuǎn)、位數(shù)又多時,通信線路變復(fù)雜且成本提高。串行通信是指數(shù)據(jù)一位位地順序傳送,其特點(diǎn)是適合于遠(yuǎn)距離通信, 通信線路簡單,只要一對傳輸線就可以實(shí)現(xiàn)雙向通信,從而大大降低了成本。

當(dāng)傳感器測得數(shù)據(jù),會有指令數(shù)據(jù)通過 UART 通信協(xié)議發(fā)出,將傳感器發(fā)出的信息傳送給 FPGA 進(jìn)行綜合處理,串口屏?xí)鶕?jù)接收到的信息輸出相應(yīng)的數(shù)值。在這樣的信息傳輸 過程中是以 UART 通訊協(xié)議進(jìn)行通信的。

我們的作品主要是通過串口屏進(jìn)行顯示,我們采用UART通信協(xié)議的接受模塊接收, 根據(jù)發(fā)來的傳感器檢測的數(shù)據(jù),使 FPGA 中狀態(tài)機(jī)的狀態(tài)與串口屏的顯示界面一致,會 向串口屏發(fā)送相應(yīng)的顯示信息進(jìn)行顯示,例如垃圾桶內(nèi)溫度、桶內(nèi)垃圾含量、是否檢 測到火焰或者有害氣體等。圖 3.5 為串口屏指令接收模塊 RTL 圖:

本模塊負(fù)責(zé)接收串口屏發(fā)來的信息。我們可以在界面的看到垃圾桶內(nèi)環(huán)境監(jiān)測, 環(huán)境正常顯示綠色的數(shù)值,當(dāng)出現(xiàn)異常時,顯示紅色的數(shù)值,如圖 3.6 所示。

3.7 MCU90615 紅外測溫模塊

此 MCU90615 模塊通過發(fā)送對應(yīng)的 AT 指令集設(shè)置讀取數(shù)的時間和波特率命令指令:連續(xù)輸出指令:0xA5+0x45+0xEA----------------溫度數(shù)據(jù)(模塊返回數(shù)據(jù)類型為 0x45)查詢輸出指令:0xA5+0x15+0xBA ---------------溫度數(shù)據(jù)(模塊返回數(shù)據(jù)類型為 0x45)配置指令:(掉電重啟后生效)波特率配置:0xA5+0xAE+0x53 ---------------96000xA5+0xAF+0x54 ---------------115200(默認(rèn))上電是否自動發(fā)送溫度數(shù)據(jù)配置:0xA5+0x51+0xF6---------------上電后自動輸出溫度數(shù)據(jù)0xA5+0x52+0xF7---------------上電后不自動輸出溫度數(shù)據(jù)(默認(rèn))0xA5+0xAF+0x54 ---------------115200(默認(rèn))通過狀態(tài)機(jī)截取對應(yīng)位數(shù)據(jù)輸出,將數(shù)據(jù)發(fā)送給串口屏,從而完成顯示,RTL 圖 如圖 3.7 所示:

3.8 GSM 短信模塊

SIM800A 模塊通過發(fā)送和接受國際電信聯(lián)盟規(guī)定的 AT 指令集來進(jìn)行控制和數(shù)據(jù)接收,本系統(tǒng)使用了 UART 通信協(xié)議的發(fā)送模塊進(jìn)行指令的發(fā)送。本系統(tǒng)短信模塊的功能主要體現(xiàn)在 GSM 接收到 DES 密碼模塊產(chǎn)生的密碼后通過短信發(fā)送給管理員,管理員通過輸入 GSM 產(chǎn)生的密碼,檢測到正確信號后,天窗打開。此外,該模塊 1 還設(shè)有溫度報警模塊,通過紅外體溫傳感器檢測溫度,當(dāng)溫度大于 38 攝氏度時,則發(fā)送短信提醒。RTL 圖如圖 3.8 所示:

3.9 超聲波測距模塊

該模塊我們通過超聲波傳感器實(shí)時的檢測垃圾桶內(nèi)垃圾含量,進(jìn)行實(shí)時數(shù)據(jù)監(jiān)測和滿桶警報當(dāng)垃圾桶即將裝滿時會及時發(fā)送短信至垃圾管理員。可以實(shí)時在串口屏上顯示垃圾桶內(nèi)垃圾含量,并且當(dāng)垃圾桶內(nèi)可用高度小于 5cm 時認(rèn)定垃圾桶即將裝滿時 會及時并自動發(fā)送短信至垃圾管理員。RTL 圖如圖 3.9 所示:

3.10 UART 通信協(xié)議

Uart 通信協(xié)議每次只能發(fā)送和接收 8 位數(shù)據(jù),而投入到實(shí)際使用當(dāng)中,往往發(fā) 送和接收的不只是 8 位數(shù)據(jù),可能是 48 位,可能是 64 位,也有可能是 72 位。此時, 發(fā)送和接收的處理方法如下。1> 發(fā)送:例如:發(fā)送 7E 04 41 01 08 EF 將這 48 位數(shù)據(jù)強(qiáng)行拆分成 6 個 8 位數(shù)據(jù),分別 用 6 個 reg 型寄存器寄存。也就是說將 7E 04 41 01 08 EF 這一條指令拆為 7E、 04、41、01、08、EF 6 條指令,然后將其按順序進(jìn) 行發(fā)送。

看起來好像很容易,就 只是將這 6 條指令按順序發(fā)送就可以了,但是如何才能讓其按順序發(fā)送,這里邊牽扯 到了很多使能端的問題。在 此,由 Uart 通信協(xié)議受到了啟發(fā),Uart 通信協(xié)議的發(fā) 送模塊中,就是將 并行的 8 位數(shù)據(jù)轉(zhuǎn)化成串行將其一位一位地輸出,同樣的道理, 將 7E、04、41、01、08、EF 分別看成 6 個整體,每個整體有 8 位,將這并行的 6 個 整體轉(zhuǎn)化成串行將其一個一個發(fā)送即可。而每兩個整體發(fā)送中間的間隔是需要計算的, Uart 通信協(xié)議一共有 10 位,1 位起始位,1 位終止位和 8 位數(shù)據(jù)位。那每兩個整體發(fā) 送中間就間隔著發(fā)送 10 位數(shù)據(jù),通過計算 50MHz/9600Hz * 10 = 52084。

建立一個計 數(shù)器,每當(dāng)計數(shù)器計數(shù)到 52084 時,選擇一個需要發(fā)送的整體,將其傳送給發(fā)送模塊 的輸入端,然后進(jìn)行發(fā)送。對于發(fā)送模塊,將并行的位數(shù)據(jù)轉(zhuǎn)化成串行一位一位輸出 即可。2> 接收:接收多位數(shù)據(jù)相對來說比較簡單,一共接收多少位數(shù)據(jù)便設(shè)置一個多少位的移位 寄存器(例如需要接收 48 位數(shù)據(jù),便設(shè)置一個 48 位的移位寄存器),使用 Uart 接收模塊每次接收 8 位數(shù)據(jù),然后將這 8 位數(shù)據(jù)存儲到移位寄存器當(dāng)中,每接收到一 次數(shù)據(jù),移位寄存器向左移 8 位,接收完畢后停止并且將寄存器中的數(shù)據(jù)輸出便可完 成接收。

第四部分 總結(jié)

4.1 主要創(chuàng)新點(diǎn)

(1)在使用 PYNQ 核心板作為主要處理器處理數(shù)據(jù)時,使用 hls 對卷積和池化層的硬 件電路設(shè)計,實(shí)現(xiàn)了 cnn 卷積神經(jīng)網(wǎng)絡(luò)在 pynq 的復(fù)現(xiàn)。

(2)對于已經(jīng)訓(xùn)練的垃圾進(jìn)行識別其準(zhǔn)確率可達(dá) 90%以上。

(3)增加了語音識別和圖像識別兩種模式,兩種操作隨意切換,適用于不同場景,對 應(yīng)相同的功能,增加識別精準(zhǔn)度。

(4)增加自啟動功能。

(5)使用硬件加速,提高了識別速度。

(6)增加卷積池化的硬件電路設(shè)計,增強(qiáng)網(wǎng)絡(luò)實(shí)現(xiàn)的效率。

(7)增加傳感器進(jìn)行環(huán)境監(jiān)測,數(shù)據(jù)實(shí)時顯示,保證出現(xiàn)異常情況進(jìn)行報警,數(shù)據(jù)及 時反饋給管理員。

(8)利用攝像頭采集垃圾的圖像后 PYNQ 使用在 PC 端訓(xùn)練并保存的神經(jīng)網(wǎng)絡(luò)在該數(shù)據(jù) 集下的權(quán)值。

4.2 可擴(kuò)展之處

(1)擴(kuò)大數(shù)據(jù)集,對不同種類垃圾圖片進(jìn)行收集、訓(xùn)練,增加可識別垃圾種類,提高 識別精準(zhǔn)度。

(2)對于云臺旋轉(zhuǎn)的角度精確值可以更為精確,通過對于器件、參數(shù)的調(diào)整,預(yù)計達(dá) 到肉眼不可見的誤差。

(3)可以升級使用更加高級的算法和網(wǎng)絡(luò)使得分類更加的精準(zhǔn)和高效。

該作品初衷是想為社會做出一些貢獻(xiàn),減輕日益劇增的環(huán)境壓力。現(xiàn)如 今垃圾分類已經(jīng)成為加強(qiáng)生態(tài)文明建設(shè)、促進(jìn)綠色發(fā)展的重要舉措。但實(shí)際上,我國城市生活垃圾分類推廣工作也歷時十幾年,但效果依然不顯著。我國經(jīng)濟(jì)的高速發(fā)展同時帶來了社會資源的過度使用,所以對國家的長久發(fā)展和環(huán)境保護(hù)事業(yè)而言,垃圾分類是一項必須推進(jìn)的工作。既有利于資源的循環(huán)利用,也有利于城市的人居環(huán)境, 如果成功推行,所有人類都將是受益者。然而有人提出如此嚴(yán)格的規(guī)章制度突然降臨, 難免給公眾帶來顯著的不便,違規(guī)者與監(jiān)管者之間的沖突將會經(jīng)常出現(xiàn),社會很可能要付出很高的成本,才能維持新規(guī)的有效性,所以設(shè)計這個作品旨在解決當(dāng)前社會問題,節(jié)約社會資源,為公眾帶來便利。

FPGA技術(shù)江湖微信交流群

賽靈思

賽靈思

賽靈思(英語:Xilinx)是一家位于美國的可編程邏輯器件的生產(chǎn)商。該公司發(fā)明了現(xiàn)場可編程邏輯門陣列,并由此成名。賽靈思還是第一個無廠半導(dǎo)體公司(Fabless)。28nm時代,賽靈思提出All Programmable 的概念,從單一的FPGA企業(yè)戰(zhàn)略轉(zhuǎn)型為All Programmable FPGA、 SoC 和 3D IC 的全球領(lǐng)先提供商。且行業(yè)領(lǐng)先的器件與新一代設(shè)計環(huán)境以及 IP 完美地整合在一起,可滿足客戶對可編程邏輯乃至可編程系統(tǒng)集成的廣泛需求賽靈思于1984年創(chuàng)建于美國加利福尼亞州的硅谷,總部位于硅谷核心的圣何塞,并在科羅拉多州、愛爾蘭、新加坡 印度、中國、日本擁有分支機(jī)構(gòu)

賽靈思(英語:Xilinx)是一家位于美國的可編程邏輯器件的生產(chǎn)商。該公司發(fā)明了現(xiàn)場可編程邏輯門陣列,并由此成名。賽靈思還是第一個無廠半導(dǎo)體公司(Fabless)。28nm時代,賽靈思提出All Programmable 的概念,從單一的FPGA企業(yè)戰(zhàn)略轉(zhuǎn)型為All Programmable FPGA、 SoC 和 3D IC 的全球領(lǐng)先提供商。且行業(yè)領(lǐng)先的器件與新一代設(shè)計環(huán)境以及 IP 完美地整合在一起,可滿足客戶對可編程邏輯乃至可編程系統(tǒng)集成的廣泛需求賽靈思于1984年創(chuàng)建于美國加利福尼亞州的硅谷,總部位于硅谷核心的圣何塞,并在科羅拉多州、愛爾蘭、新加坡 印度、中國、日本擁有分支機(jī)構(gòu)收起

查看更多

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

任何技術(shù)的學(xué)習(xí)就好比一個江湖,對于每一位俠客都需要不斷的歷練,從初入江湖的小白到歸隱山林的隱世高人,需要不斷的自我感悟自己修煉,讓我們一起仗劍闖FPGA乃至更大的江湖。