劉杰 蔣沁宏
采用arduino模塊和openMV模塊采集通過(guò)紅色濾光片后的顏色,找到紅色信標(biāo)燈并采用PID算法對(duì)賽車(chē)行進(jìn)的方向、速度進(jìn)行控制,使賽車(chē)能快、穩(wěn)、準(zhǔn)的通過(guò)車(chē)身的磁鐵切割信標(biāo)燈圓盤(pán)底座上的線(xiàn)圈將信標(biāo)燈滅掉。同時(shí)采用紅外傳感器避障,避免賽車(chē)在行駛過(guò)程中撞燈或撞墻。測(cè)試結(jié)果表明,攝像頭openMV能實(shí)時(shí)準(zhǔn)確的給核心板傳輸數(shù)據(jù),使賽車(chē)能準(zhǔn)確的熄滅信標(biāo)燈。
【關(guān)鍵詞】Arduino openMV攝像頭 紅外避障L298N驅(qū)動(dòng) PID控制 濾光片
隨著現(xiàn)代科技的進(jìn)步和人工智能的飛速發(fā)展,自動(dòng)控制的應(yīng)用已經(jīng)越來(lái)越廣泛,競(jìng)賽車(chē)在現(xiàn)目前是比較熱門(mén)的話(huà)題,也出現(xiàn)了很多智能賽車(chē)的競(jìng)賽,競(jìng)賽為智能賽車(chē)領(lǐng)域培養(yǎng)了大量的人才,為大學(xué)生提供了充分展示創(chuàng)造力和想象力的舞臺(tái),也吸引著越來(lái)越多來(lái)自不同專(zhuān)業(yè)的大學(xué)生參與其中。智能“尋的”賽車(chē)是多種賽車(chē)的一類(lèi),其目的是在12個(gè)紅色信標(biāo)燈被隨機(jī)點(diǎn)亮某一個(gè)后,賽車(chē)能準(zhǔn)確找到點(diǎn)亮的信標(biāo)燈并將其熄滅。本設(shè)計(jì)系統(tǒng)涉及車(chē)模機(jī)械結(jié)構(gòu)、主控電路、紅外傳感器電路、攝像頭圖像處理、電機(jī)驅(qū)動(dòng)控制以及PID算法實(shí)現(xiàn)智能“尋的”和滅燈功能。
1 硬件設(shè)計(jì)
本設(shè)計(jì)系統(tǒng)主要由攝像頭圖像采集模塊、主控電路模塊、紅外避障模塊、電機(jī)驅(qū)動(dòng)模塊、電源模塊以及車(chē)模組成,硬件電路如圖1所示。攝像頭圖像采集模塊采用OpenMV攝像頭模塊,它是一個(gè)開(kāi)源,低成本,功能強(qiáng)大的CMOS圖像采集模塊。以STM32F427CPU為核心,集成OV7725攝像頭芯片,用C語(yǔ)言高效地實(shí)現(xiàn)了核心算法,提供Python編程接口,高效率,低功耗。主控電路模塊采用Ardumo,它是一款便捷靈活、以C語(yǔ)言為編程環(huán)境,方便上手的開(kāi)源電子原型平臺(tái)。紅外避障模塊采用E18-D80NK紅外對(duì)管,檢測(cè)距離遠(yuǎn),穩(wěn)定性高。驅(qū)動(dòng)電機(jī)模塊采用L298N驅(qū)動(dòng),它是一種雙H橋電機(jī)驅(qū)動(dòng),可以方便的驅(qū)動(dòng)兩個(gè)直流電機(jī)和接受單片機(jī)控制;電源模塊采用12V輸出的航模電池供電;在找到信標(biāo)燈后,通過(guò)賽車(chē)的本身速度帶動(dòng)車(chē)身上磁鐵切割信標(biāo)燈圓盤(pán)底座的線(xiàn)圈將信標(biāo)燈熄滅。
2 軟件設(shè)計(jì)
程序設(shè)計(jì)主要分為三個(gè)模塊,對(duì)圖像采集輸出的數(shù)據(jù)處理,對(duì)障礙物的檢測(cè),PID算法對(duì)賽車(chē)的速度方向的控制。具體軟件設(shè)計(jì)原理圖如圖2所示。
(1)采用python設(shè)計(jì)語(yǔ)言進(jìn)行算法設(shè)計(jì),在賽車(chē)行進(jìn)過(guò)程中對(duì)透過(guò)紅色濾光片的攝像頭中的顏色進(jìn)行數(shù)據(jù)采集,并與預(yù)先采集好的標(biāo)準(zhǔn)紅色信標(biāo)燈的顏色數(shù)據(jù)進(jìn)行對(duì)比,如果采集數(shù)據(jù)和預(yù)置值相同,返回給主控板當(dāng)前數(shù)據(jù)值,如果采集數(shù)據(jù)和預(yù)置值不同,返回給主控板零值,同時(shí)計(jì)算采集到的信標(biāo)燈圖像面積值并返回給主控板,采用620nm紅色濾光片是為避免其他光的干擾;
(2)采用C語(yǔ)言進(jìn)行程序設(shè)計(jì),讀取紅外避障模塊的輸出值,當(dāng)檢測(cè)到障礙物時(shí),對(duì)應(yīng)紅外模塊輸出值為1,若沒(méi)有檢測(cè)到障礙物,對(duì)應(yīng)模塊輸出值為0,在賽車(chē)行進(jìn)過(guò)程中,如果檢測(cè)到障礙物,控制賽車(chē)減速后退并右轉(zhuǎn)后繼續(xù)尋找信標(biāo)燈;
(3)系統(tǒng)采用閉環(huán)控制,編碼器采集實(shí)際速度值進(jìn)行反饋控制,以增量式PID進(jìn)行速度調(diào)節(jié),最終實(shí)現(xiàn)賽車(chē)按照規(guī)劃路徑穩(wěn)、準(zhǔn)、快的到達(dá)目的地。主控板arduino對(duì)攝像頭采集的數(shù)據(jù)進(jìn)行處理,如果接收的數(shù)據(jù)值在標(biāo)準(zhǔn)紅色信標(biāo)燈閾值范圍內(nèi),控制賽車(chē)加速直行,并判斷攝像頭圖像采集返回的面積值,當(dāng)面積值達(dá)到一定值后,說(shuō)明賽車(chē)靠近信標(biāo)燈,此時(shí)控制賽車(chē)減速直行;如果接收到零值,控制賽車(chē)原地旋轉(zhuǎn)半圈后直行1s,再次判斷攝像頭返回值,直到紅色信標(biāo)燈出現(xiàn)在攝像頭視野范圍內(nèi)。在找到信標(biāo)燈后,通過(guò)賽車(chē)的本身速度帶動(dòng)車(chē)身上磁鐵切割信標(biāo)燈圓盤(pán)底座的線(xiàn)圈將信標(biāo)燈熄滅。
3 測(cè)試結(jié)果
半個(gè)羽毛球場(chǎng)地中,12個(gè)信標(biāo)燈隨機(jī)點(diǎn)亮,賽車(chē)從中心位置出發(fā),能準(zhǔn)確快速的找到被點(diǎn)亮的信標(biāo)燈,并將其熄滅,同時(shí)能有效避開(kāi)行進(jìn)過(guò)程中遇到的障礙物。
4 結(jié)論
本文所設(shè)計(jì)的基于openMV攝像頭和arduino的智能“尋的”賽車(chē)的系統(tǒng)方案,攝像頭采集通過(guò)620nm紅色濾光片后的圖像,通過(guò)返回信標(biāo)燈位置參數(shù)以及信標(biāo)燈當(dāng)前面積值,能夠成功實(shí)現(xiàn)信標(biāo)燈的快速尋找以及障礙物的避讓。該方案仍存在一些不足的地方,但賽車(chē)尋找信標(biāo)燈的準(zhǔn)確率更高,速度也更快,同時(shí)能很好的避開(kāi)障礙物。
參考文獻(xiàn)
[1]胡壽松,自動(dòng)控制原理[M],北京:科學(xué)出版社,2009.
[2]張宏建,自動(dòng)檢測(cè)技術(shù)與裝置[M].北京:化學(xué)工業(yè)出版社,2004.
[3]崔才豪,張玉華,楊樹(shù)財(cái).利用Arduino控制板的光引導(dǎo)運(yùn)動(dòng)小車(chē)設(shè)計(jì)[J].自動(dòng)化儀表,2001,32 (09):5-7.