• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于OpenMV的水面漂浮物清理系統(tǒng)

      2022-04-08 11:04:28姚貴發(fā)YAOGuifa殷睿新YINRuixin李金乘LIJincheng
      價(jià)值工程 2022年11期
      關(guān)鍵詞:漂浮物衛(wèi)士直流電機(jī)

      姚貴發(fā) YAO Gui-fa;殷睿新 YIN Rui-xin;李金乘 LI Jin-cheng

      (廣東嶺南職業(yè)技術(shù)學(xué)院,清遠(yuǎn) 511500)

      0 引言

      環(huán)保是近幾年來(lái)一直熱議的話題,針對(duì)環(huán)保而衍生出來(lái)的技術(shù)也不在少數(shù),其中水面漂浮物的治理是近年來(lái)備受關(guān)注關(guān)注的話題,在淺海區(qū)域、江河湖泊水面漂浮物問(wèn)題越發(fā)嚴(yán)重。因?yàn)橥淌忱斐伤劳龅暮Q笊铩⒌锊挥?jì)其數(shù)。該現(xiàn)象的產(chǎn)生主要是由于人類(lèi)隨意排放垃圾造成。其中塑料類(lèi)水面漂浮垃圾既難清理,也不易降解。漂浮在水面日積月累后將對(duì)水域形成災(zāi)難性的破壞。針對(duì)水面漂浮物治理的辦法,國(guó)內(nèi)外都做過(guò)不少研究,提出的治理方案不在少數(shù)。

      水面漂浮類(lèi)大多以塑料垃圾為主,有著體積小、移動(dòng)快、難以清理的特性。目前解決水面漂浮物的辦法主要有人力打撈、清理船打撈、劃分區(qū)域治理等措施。對(duì)于小規(guī)模的采用人力打撈,比如城市河道、公園等,但這種方式工作效率低,打撈過(guò)程容易遺漏不能全面清潔,且無(wú)法長(zhǎng)時(shí)間工作,實(shí)時(shí)預(yù)防,可針對(duì)的水域也較少;清理船打撈可用于在大面積水域的清理工作,但這種方式能耗大,同樣需要人員操作船只;劃分區(qū)域治理是目前效率較高的,具有效率高、清理效果好,還可利用太陽(yáng)能為自身進(jìn)行能源供給等優(yōu)點(diǎn),但劃分區(qū)域治理設(shè)置相對(duì)固定成本高,適用于海洋治理。對(duì)小湖泊、內(nèi)陸河道來(lái)說(shuō)無(wú)法開(kāi)展治理工作。

      設(shè)計(jì)研究一款基于OpenMV的水面漂浮物清理系統(tǒng)的水上清潔衛(wèi)士,其能夠?qū)崿F(xiàn)無(wú)人化遠(yuǎn)程控制,快速收集水面漂浮垃圾的自動(dòng)裝置。取代人力打撈、大型設(shè)備清理等方法。具備靈活投放、隨時(shí)站崗、自動(dòng)清潔等功能。

      1 系統(tǒng)設(shè)計(jì)

      水上清潔衛(wèi)士主要以Arduino、OpenMV垃圾收集器、巡航船、船體支架、水下推進(jìn)器、船體支架、監(jiān)控?cái)z像頭、電池電源等結(jié)構(gòu)組成。

      水上清潔衛(wèi)士有兩種模式:

      自動(dòng)模式的時(shí)候OpenMV負(fù)責(zé)識(shí)別水面漂浮物,當(dāng)識(shí)別到水面上有垃圾時(shí),就會(huì)向Arduino發(fā)送信號(hào),Arduino接收到之后就會(huì)驅(qū)動(dòng)無(wú)刷直流電機(jī),無(wú)刷直流電機(jī)帶動(dòng)渦輪旋轉(zhuǎn),使水上清潔衛(wèi)士前往漂有垃圾的水域進(jìn)行收集;

      手動(dòng)模式下,可以通過(guò)手機(jī)對(duì)水上清潔衛(wèi)士進(jìn)行操控,利用手機(jī)APP操控設(shè)備進(jìn)行移動(dòng);如圖1所示。

      圖1 工作流程圖

      2 Arduino

      Arduino是基于ATmega328的主控開(kāi)發(fā)板。Arduino是采用USB接口的核心電路板。本文主要用其對(duì)無(wú)刷直流電機(jī)進(jìn)行操控,和連接JDY-18藍(lán)牙模塊。

      2.1 通訊

      當(dāng)OpenMV識(shí)別到水上漂浮物,并要讓水上清潔衛(wèi)士前往清理,首先需要將識(shí)別到的信息通過(guò)串口發(fā)送給Arduino,由于Arduino串口有限,其還需要向無(wú)刷直流電機(jī)輸出信號(hào),無(wú)法同時(shí)做到接受和發(fā)送,因此要想實(shí)現(xiàn)與OpenMV進(jìn)行通訊,還需要設(shè)置模擬串口用來(lái)接受OpenMV發(fā)送過(guò)來(lái)的信息。

      Arduino與OpenMV進(jìn)行通訊需要準(zhǔn)備3根線:TX、RX、GND。TX為發(fā)送端,RX為接收端,GND為接地線,接線時(shí)只要將Arduino與OpenMV的TX和RX交叉接線即可。此種設(shè)計(jì)下的傳輸速度是可控的,可以設(shè)置兩者的通信傳輸速率為9600波特率或者4800波特率,具體數(shù)值可根據(jù)實(shí)際情況靈活選擇[1]。

      2.2 OpenMV

      OpenMV是一個(gè)以STM32F765VI ARM Cortex M7處理器為核心,集成了OV7725攝像頭芯片的機(jī)器視覺(jué)模塊,其搭載了Micro Python解釋器,可用Python語(yǔ)言高效地實(shí)現(xiàn)核心機(jī)器視覺(jué)算法[2]。OpenMV機(jī)器視覺(jué)算法包括物體檢測(cè)、尋找色塊、人臉檢測(cè)、顏色跟蹤等功能,可以用來(lái)實(shí)現(xiàn)產(chǎn)品的分類(lèi)、殘次品篩選、非法入侵檢測(cè)、跟蹤固定的標(biāo)記物等,具有穩(wěn)定性高、傳輸效率高等特點(diǎn)[3]。

      OpenMV采用的是單目攝像頭,單目攝像頭要想實(shí)現(xiàn)測(cè)距,需要選擇一個(gè)參照物,利用參照物大小的比例來(lái)計(jì)算距離。

      假設(shè)在單目攝像頭前放一個(gè)小球,根據(jù)小孔成像原理,小球距離攝像頭越遠(yuǎn),攝像頭里的小球則越小。

      其中的Ap(Apix)表示攝像頭圖像的像素;Bp(Bpix)表示被測(cè)小球的直徑的像素;α為視場(chǎng)角;Lm為被測(cè)目標(biāo)物體與攝像頭的距離;f為相機(jī)焦距,焦距f的長(zhǎng)短決定了相機(jī)所拍攝的目標(biāo)物體的成像大小、視場(chǎng)角大小、景深大小,以及畫(huà)面的透視強(qiáng)弱。當(dāng)對(duì)同一物距的同一目標(biāo)物體拍攝時(shí),f越大,α越?。籪越小,α越大。

      由圖2的幾何關(guān)系可得下列公式(1)和公式(2):

      圖2 小孔成像原理示意圖

      可得公式(3):

      根據(jù)圖2中右邊真實(shí)環(huán)境中的幾何關(guān)系得公式(4):

      將公式(4)代入公式(3)得:

      由所得公式可知:實(shí)際長(zhǎng)度和攝像頭里的像素成反比。簡(jiǎn)單來(lái)說(shuō)就是距離=一個(gè)常數(shù)/直徑的像素,通過(guò)這個(gè)公式,便可以實(shí)現(xiàn)測(cè)距的算法。剛開(kāi)始時(shí),還不知道常數(shù)k的值是多少,要想求得常數(shù)k的值需要先手動(dòng)測(cè)量出目標(biāo)物體距離OpenMV的長(zhǎng)度,接著通過(guò)OpenMV連接上OpenMV IDE觀察目標(biāo)物體在OpenMV視野中的像素點(diǎn)的個(gè)數(shù)為多少。將得出像素點(diǎn)的個(gè)數(shù)和距離帶入公式便可求出常數(shù)k的值。

      此時(shí)已經(jīng)得出了常數(shù)k的值,k值是固定的,但目標(biāo)物體像素點(diǎn)個(gè)數(shù)和距離是時(shí)刻在變化的,所以接下來(lái)需要通過(guò)設(shè)計(jì)算法,讓OpenMV自動(dòng)得出視野中目標(biāo)物體的像素點(diǎn)個(gè)數(shù):通過(guò)Lm=(b[2]+b[3])/2這個(gè)算法得出OpenMV自動(dòng)得出視野中目標(biāo)物體的像素點(diǎn)個(gè)數(shù),其中b[2]為識(shí)別到的目標(biāo)物體的長(zhǎng)的像素,b[3]為目標(biāo)物體的寬的像素?cái)?shù),通過(guò)將b[2]和b[3]相加之和然后取其平均值得出目標(biāo)物體的像素點(diǎn)個(gè)數(shù)的平均數(shù)。最后將通過(guò)k值和Lm值來(lái)測(cè)量目標(biāo)物體距離OpenMV的實(shí)際距離length,大致示例程序如下:

      得到目標(biāo)物體距OpenMV的距離length后通過(guò)串口將length值發(fā)送給Arduino,使Arduino做出正確的指令。

      2.3 嵌入式機(jī)器學(xué)習(xí)

      要想實(shí)現(xiàn)讓水上清潔衛(wèi)士在工作水域里找到哪里有水面漂浮物,并前往收集,需要讓水上清潔衛(wèi)士通過(guò)機(jī)器學(xué)習(xí)讓其識(shí)別那些是需要清理的水面漂浮物,比如:礦泉水瓶、塑料袋、煙頭等,都可以通過(guò)機(jī)器學(xué)習(xí)使水上清潔衛(wèi)士認(rèn)識(shí)這些東西。

      水上清潔衛(wèi)士采用的是嵌入式機(jī)器學(xué)習(xí),可以通過(guò)EDGE IMPULSE的在線網(wǎng)站來(lái)訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,EDGE IMPULSE可以為嵌入式產(chǎn)品快速的生成在嵌入式上面使用的神經(jīng)網(wǎng)絡(luò)模型,大約5分鐘就可以訓(xùn)練出一個(gè)可以在OpenMV上使用的模型。

      用OpenMV來(lái)訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,大致分為3個(gè)步驟:

      ①首先是采集,利用OpenMV IDE來(lái)采集數(shù)據(jù)集(Data set),也就是拍照,每一個(gè)分類(lèi)至少需要100張左右的數(shù)據(jù)集來(lái)進(jìn)行訓(xùn)練,這些照片盡量以不同角度、不同光線來(lái)制作;②上傳至EDGE IMPULSE,上傳時(shí)可以設(shè)置好訓(xùn)練集(Training data)和測(cè)試集(Test data)的比例,一般情況下可以將圖片的80%設(shè)置為訓(xùn)練集,剩余的20%作為測(cè)試集,測(cè)試集只用于對(duì)最后訓(xùn)練好的模型進(jìn)行測(cè)試模型的準(zhǔn)確率。③將數(shù)據(jù)集上傳成功后,做一些簡(jiǎn)單的設(shè)置就可以開(kāi)始訓(xùn)練模型,這里采用遷移學(xué)習(xí)(Transfer Learning)的方式進(jìn)行訓(xùn)練,訓(xùn)練完成后會(huì)生成兩個(gè)features,一個(gè)是bottle,一個(gè)是can。下一步就是對(duì)圖像的DSP預(yù)處理,在DSP預(yù)處理后會(huì)生成一個(gè)長(zhǎng)寬比1:1的圖像,并且會(huì)給每一張圖片生成features,features生成輸出完成后會(huì)生成一張三維散點(diǎn)圖,從圖3可以看出,代表bottle和can的兩種顏色基本是分離的,基本沒(méi)有混合在一起,這就說(shuō)明數(shù)據(jù)集采集的還算不錯(cuò),如果兩種顏色交叉混在一起,就說(shuō)明前期的數(shù)據(jù)集的采集特征不夠明顯,有可能是圖片背景復(fù)雜或者采集的圖片種類(lèi)不夠豐富,這些都可能導(dǎo)致特征不明顯。

      圖3 三維散點(diǎn)圖

      接下來(lái)就可以進(jìn)行遷移學(xué)習(xí),將機(jī)器學(xué)習(xí)的輪數(shù)設(shè)置為20,置信度為0.8,然后開(kāi)始訓(xùn)練,在正常情況下訓(xùn)練過(guò)程中隨著機(jī)器學(xué)習(xí)輪數(shù)的增加LOSS值會(huì)越來(lái)越低,準(zhǔn)確度accuracy值會(huì)越來(lái)越高。

      訓(xùn)練完成后可以看到訓(xùn)練后得出的數(shù)據(jù),通過(guò)剛才采集的數(shù)據(jù)訓(xùn)練出來(lái)的模型的準(zhǔn)確度為92.6%,失敗為0.16,從表格中可看出有18.2%的塑料瓶被識(shí)別成了易拉罐。如圖4和圖5所示。

      圖4 訓(xùn)練結(jié)果

      圖5 bottle和can識(shí)別是否正確的三維散點(diǎn)圖

      將訓(xùn)練好的模型下載保存到OpenMV即可。

      當(dāng)水上清潔衛(wèi)士在工作時(shí),攝像頭會(huì)時(shí)刻開(kāi)始,當(dāng)OpenMV識(shí)別到為漂浮物時(shí),會(huì)通過(guò)串口通訊將信息發(fā)送給Arduino,Arduino便會(huì)驅(qū)動(dòng)無(wú)刷直流電機(jī)前往目標(biāo)水域,否則則采取避障。

      2.4 JDY-18

      在水上清潔系統(tǒng)中,JDY-18將負(fù)責(zé)Arduino與手機(jī)的通訊連接。JDY-18透?jìng)髂K是基于藍(lán)牙4.2協(xié)議標(biāo)準(zhǔn),工作頻段為2.4GHz范圍,調(diào)制方式為GFSK,最大發(fā)射功率為0db,最大發(fā)射距離60米,采用進(jìn)口原裝芯片設(shè)計(jì),支持用戶(hù)通過(guò)AT命令修改設(shè)備名、服務(wù)UUID、發(fā)射功率、配對(duì)密碼等指令,方便快捷使用靈活。

      通過(guò)使用JDY-18藍(lán)牙模塊不僅成本較低,操作靈活方便,經(jīng)過(guò)實(shí)際Arduino連接JDY-18藍(lán)牙模塊后對(duì)水上清潔衛(wèi)士控制結(jié)果表明:能夠?qū)崿F(xiàn)精確手動(dòng)控制水上清潔衛(wèi)士向既定目標(biāo)運(yùn)動(dòng)[4]。

      2.5 水下推進(jìn)器

      水上清潔衛(wèi)士在水中的動(dòng)力靠的是水下推進(jìn)器完成的,水下推進(jìn)器的電機(jī)采用的是無(wú)刷直流電機(jī)。通過(guò)水上清潔衛(wèi)士系統(tǒng)中的Arduino控制推進(jìn)器,完成對(duì)推進(jìn)器中無(wú)刷直流電機(jī)的控制,包括轉(zhuǎn)向、轉(zhuǎn)速、啟停控制。

      無(wú)刷直機(jī)電機(jī)的驅(qū)動(dòng)方式根據(jù)不同的需求,可分為多種驅(qū)動(dòng)方式。

      2.5.1 方波驅(qū)動(dòng) 這種驅(qū)動(dòng)方式實(shí)現(xiàn)起來(lái)簡(jiǎn)單方便,容易實(shí)現(xiàn)電機(jī)無(wú)位置傳感器控制;

      2.5.2 正弦驅(qū)動(dòng) 這種驅(qū)動(dòng)方式可以改善電機(jī)運(yùn)行效果,使電機(jī)輸出力矩均勻,但正弦驅(qū)動(dòng)實(shí)現(xiàn)過(guò)程相對(duì)復(fù)雜。正弦驅(qū)動(dòng)又可分為SPWM和SVPWM(空間矢量PWM)兩種方式,SVPWM的效果好于SPWM。

      本文采用的是正弦驅(qū)動(dòng)的SVPWM對(duì)無(wú)刷直流電機(jī)進(jìn)行控制。SVPWM是電調(diào)信號(hào)信號(hào)頻率為50Hz,一個(gè)周期為20ms。對(duì)于電調(diào)來(lái)講,高電平脈寬為1ms表示停轉(zhuǎn),高電平脈寬為2ms表示滿油門(mén)運(yùn)轉(zhuǎn);Arduino可以直接用Servo庫(kù)來(lái)給實(shí)現(xiàn)ESC信號(hào)的輸出。

      3 整體設(shè)計(jì)

      水上清潔衛(wèi)士主要應(yīng)用范圍是湖泊、海洋海岸等相對(duì)靜態(tài)水域。水上清潔衛(wèi)士作為可以在水上清潔垃圾的裝置最主要的任務(wù)就是做好收集垃圾的工作,而工作環(huán)境對(duì)清潔效率和清潔效果也至關(guān)重要。工作環(huán)境的水域不是一成不變的,有可能水面漂浮的不一定是垃圾,也有可能是油脂;工作時(shí)吸進(jìn)去的漂浮物還要做到只能“進(jìn)”不能“出”。因此在設(shè)計(jì)之處就已經(jīng)考慮到水上清潔衛(wèi)士的工作水域可能會(huì)遇到的環(huán)境,和如何保證吸進(jìn)去的水面漂浮物不隨便“吐出”的問(wèn)題。

      4 結(jié)構(gòu)設(shè)計(jì)

      設(shè)備主要分為兩部分運(yùn)輸浮船與垃圾收集裝置(過(guò)濾浮桶)。垃圾收集裝置通過(guò)小型浮船,運(yùn)輸?shù)嚼袇^(qū)域進(jìn)行投放,并能夠獨(dú)立漂浮在水面。垃圾收集裝置為桶狀,分為外筒與過(guò)濾網(wǎng)兩部分,豎直潛入水下,桶口進(jìn)水處略低于水面,底部密封只留有抽水泵的排水口,工作時(shí)利用抽水泵抽空裝置內(nèi)部的水,造成液壓差,周?chē)牧魉畷?huì)源源不斷的流入桶內(nèi),水面漂浮垃圾跟著水流進(jìn)入到清潔裝置內(nèi)部,再通過(guò)過(guò)濾網(wǎng)實(shí)現(xiàn)垃圾與水流分離,使得漂浮垃圾留在收納盒里,完成垃圾的清理。出水口設(shè)置止逆刷,防止垃圾回流。如圖6所示。

      圖6 清潔衛(wèi)士工作原理

      清潔衛(wèi)士的垃圾收集桶里面還內(nèi)置多層過(guò)濾網(wǎng),當(dāng)水流經(jīng)過(guò)多層濾網(wǎng)的過(guò)濾,將水面漂浮垃圾困于第一層濾網(wǎng)內(nèi),完成水面漂浮垃圾的清潔;第二層濾網(wǎng)材料采用碳海綿進(jìn)行吸附油料凈化水源。

      水上清潔衛(wèi)士的供能系統(tǒng)由蓄電池、調(diào)壓元件和太陽(yáng)能發(fā)電板組成,設(shè)計(jì)利用太陽(yáng)能進(jìn)行發(fā)電、供電續(xù)航監(jiān)控系統(tǒng)級(jí),監(jiān)控、收集數(shù)據(jù)以及采樣作業(yè)技術(shù)。這樣一方面可以減少人力成本,另一方又減少能源消耗產(chǎn)生的碳排放,可以讓水上清潔衛(wèi)士更長(zhǎng)效的工作。

      5 結(jié)論與應(yīng)用

      本文設(shè)計(jì)的水上清潔衛(wèi)士能夠自動(dòng)識(shí)別工作水域中的水面漂浮物,并對(duì)這些水面漂浮物進(jìn)行收集,讓水上清潔衛(wèi)士實(shí)現(xiàn)識(shí)別水面漂浮物,這一功能是通過(guò)遷移學(xué)習(xí)的方法來(lái)訓(xùn)練模型,然后OpenMV通過(guò)訓(xùn)練好的模型進(jìn)行判斷,以實(shí)現(xiàn)分辨哪些時(shí)水面漂浮物,然后通過(guò)串口通訊將信息發(fā)送給Arduino,讓Arduino判斷是否需要前往清理。除了水上清潔衛(wèi)士自主工作模式外,還可以通過(guò)手機(jī)APP連接JDY-18藍(lán)牙模塊,進(jìn)而實(shí)現(xiàn)手動(dòng)操控。當(dāng)水上清潔衛(wèi)士將清理的垃圾吸進(jìn)來(lái)后,為了防止垃圾倒流,可以通過(guò)止逆刷防止垃圾流出,當(dāng)面對(duì)漂有油脂的水域時(shí)也可以對(duì)油脂進(jìn)行清理。

      水上清潔衛(wèi)士除了擁有智能的工作模式,還擁有節(jié)能環(huán)保的供能系統(tǒng),對(duì)比之下目前使用比較廣泛的水面打撈船,主要采用柴油驅(qū)動(dòng),相比之下水上清潔衛(wèi)士的碳排放要少的多。

      水面清潔衛(wèi)士前景廣闊,因其造價(jià)成本不高,操作簡(jiǎn)單,工作智能化的特點(diǎn),降低了實(shí)驗(yàn)階段的難度,可以快速投放市場(chǎng)應(yīng)用。隨著國(guó)家近幾年不斷加大力度對(duì)于水資源污染問(wèn)題進(jìn)行治理,該設(shè)備的服務(wù)對(duì)象既可以是政府機(jī)構(gòu),也可以是環(huán)保公司,尤其是在公園、小區(qū)景觀、城市內(nèi)河等場(chǎng)景有著較好的效果。

      猜你喜歡
      漂浮物衛(wèi)士直流電機(jī)
      基于模糊PID的無(wú)刷直流電機(jī)速度控制系統(tǒng)的設(shè)計(jì)與仿真
      神秘的海上漂浮物
      智慧少年(2022年7期)2022-06-24 11:53:25
      風(fēng)中小衛(wèi)士
      我是環(huán)保小衛(wèi)士
      三峽水庫(kù)水面漂浮物對(duì)近壩段水體重金屬的影響初探
      我是環(huán)保小衛(wèi)士
      一種新型帶電導(dǎo)線漂浮物清除器研制
      夜里的衛(wèi)士
      基于FPGA的雙繞組無(wú)刷直流電機(jī)軟件設(shè)計(jì)
      電子制作(2017年1期)2017-05-17 03:54:12
      基于模糊神經(jīng)網(wǎng)絡(luò)PID的無(wú)刷直流電機(jī)控制系統(tǒng)研究
      韶山市| 年辖:市辖区| 中江县| 正安县| 北海市| 克东县| 铜鼓县| 莎车县| 遂溪县| 河东区| 凤山市| 博野县| 城口县| 茂名市| 祁连县| 鸡泽县| 祁门县| 禹城市| 贵港市| 京山县| 碌曲县| 屏东市| 红桥区| 宝丰县| 江达县| 泰州市| 岑溪市| 武乡县| 天全县| 哈巴河县| 汽车| 苍山县| 肇庆市| 鹤山市| 拉萨市| 潜江市| 印江| 长春市| 东乡族自治县| 扎兰屯市| 慈利县|