劉杰 蔣沁宏


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