基于 AVR 單片機(jī)的自動對靶噴霧控制系統(tǒng)設(shè)計
3.4 輸出控制
單片機(jī)的控制信號通過 PC0 引腳輸出。PC0 接固態(tài)繼電器(SSR),通過固態(tài)繼電器控
制電磁閥的開閉。當(dāng) PC0 為高電平時,繼電器吸合開關(guān),接通電源,打開電磁閥進(jìn)行噴霧;
當(dāng) PC0 為低電平時,開關(guān)斷開,電磁閥關(guān)閉,不進(jìn)行噴霧。
4. 軟件結(jié)構(gòu)設(shè)計
自動對靶控制系統(tǒng)運行程序采用 C 語言編寫,采用模塊化設(shè)計,整個程序由功能模塊
子程序構(gòu)成。上位機(jī)軟件是基于 Visual C++6.0 開發(fā)的。
4.1 下位機(jī)軟件結(jié)構(gòu)
下位機(jī)軟件的主要軟件模塊有初始化、延時、顯示、鍵盤掃描、中斷處理等功能模塊。
其中延時函數(shù)采用循環(huán)計數(shù)的方法,單片機(jī)晶振頻率為 7.3728MHZ,計數(shù)循環(huán)次數(shù)為 1832,
在 AVR Studio 下仿真,1ms 誤差為 0.44us,所以完全可以滿足實際要求。初始化時延遲時
間為 0.0s,串口為異步通信模式,8 位數(shù)據(jù)位,2 位停止位,波特率設(shè)為 9600。其主程序流
程圖如圖 3 所示。
4.2 上位機(jī)軟件結(jié)構(gòu)
上位機(jī)軟件是基于 Visual C++6.0 開發(fā)的。上位機(jī)軟件主要由兩部分組成:(1)串口通信
部分,(2)圖像處理部分。
其中串口通信通過串口類 CSerialPort 實現(xiàn)[3]。圖像處理部分采用采集卡實時采集圖像,
該系統(tǒng)的圖像采集卡為嘉恒中自公司的 OK_C30A 采集卡。該卡是基于 PCI 總線,能采集彩
色又能采集黑白圖像的采集卡,適用于圖像處理、工業(yè)監(jiān)控和多媒體的壓縮、處理等研究開
發(fā)和工程應(yīng)用領(lǐng)域[8]。通過該公司提供的 API 實現(xiàn)圖像的采集和顯示。圖像的實時采集通過
VC 中的響應(yīng) WM_TIMER 消息實現(xiàn),即每隔一定時間通過在 OnTimer 函數(shù)中調(diào)用采集卡的
API 將圖像采集進(jìn)來并顯示。而由于雜草為綠色,所以用 2g-r-b 分量對圖像進(jìn)行分割[4],當(dāng)
其值大于一定閥值后便認(rèn)為此像素為綠色,當(dāng)綠色像素所占整個圖像超過一定比例時便判定
攝像頭下有雜草,然后通過串口將信號發(fā)送給下位機(jī)。
5. 實驗結(jié)果
本實驗在直徑 67cm 的轉(zhuǎn)盤上進(jìn)行,通過轉(zhuǎn)盤轉(zhuǎn)動模擬拖拉機(jī)的行走。本實驗測定了不
同轉(zhuǎn)速下的實際對靶延遲時間,其中每個轉(zhuǎn)速下用秒表測定 20 次,實驗數(shù)據(jù)如表 1 所示
設(shè)定的延遲時間即軟件中的延遲時間 T,實際延遲時間為攝像頭從采集到靶標(biāo)圖像到執(zhí)行機(jī)
構(gòu)進(jìn)行噴霧之間所經(jīng)過的實際時間。其能實現(xiàn)自動對靶的最大轉(zhuǎn)速為 38r/min 即 1.33m/s。
而且通過表 1 數(shù)據(jù)可知,延遲時間誤差小于 0.2s,可滿足自動對靶的要求。
6. 結(jié)論
本系統(tǒng)通過對電磁閥的控制實現(xiàn)了農(nóng)藥噴施的自動對靶,并在實驗室條件下調(diào)試成功。
該系統(tǒng)運行穩(wěn)定,延時準(zhǔn)確,在一定速度范圍內(nèi)能實現(xiàn)精確對靶,從而大大提高了農(nóng)藥的利
用率,并且硬件實現(xiàn)簡單,為進(jìn)一步在田間推廣打下了很好的基礎(chǔ)。若能進(jìn)一步優(yōu)化圖像處
理算法,減少圖像處理時間,以及提高硬件的響應(yīng)速度,從而提高能響應(yīng)自動對靶的行走速
度,并且提高圖像處理算法處理復(fù)雜背景下的雜草識別的能力,實現(xiàn)在田間復(fù)雜環(huán)境下的自
動對靶噴霧。
評論