




摘 要:針對2023年(第八屆)四川省大學生機器人大賽機器車循跡賽項要求,使用STM32主控芯片、4路紅外傳感器、線性CCD傳感器等模塊設計自主循跡與競速的循跡機器車。該設計主要從小車循跡和競速兩部分著手,利用紅外傳感器的紅外輻射熱效應原理,輸出二值邏輯并控制傳感器狀態,進而驅動小車自主循跡;結合線性CCD傳感器的線性掃描特點,對賽道邊緣進行圖像掃描,動態輸出模擬信號,控制主控芯片,從而驅動小車自主避障競速。該小車運行可靠性良好,抗干擾能力較強,對不同的賽道也有很好的適應性和穩定性。
關鍵詞:STM32;循跡機器車;自主循跡;競速;紅外傳感器;線性CCD傳感器
中圖分類號:TP242.6 文獻標識碼:A 文章編號:2095-1302(2025)02-0-03
0 引 言
2023年(第八屆)四川省大學生機器人大賽是四川省教育廳主辦、西南石油大學承辦的省級大學生高規格賽事,涉及項目多達14項,本次競賽團隊成員仔細研讀了文件并結合實驗室實際情況,參加了機器車循跡賽事。該賽項由小車循跡和小車競速兩部分組成,競賽要求參賽成員自主研制一臺無人干涉,能夠自主完成循跡和競賽要求的循跡機器車,并且該機器車需具備選擇不同模式的切換開關[1]。因此,基于競賽要求,團隊成員考慮從總體設計方案、硬件電路、軟件流程、測試結果等環節出發,設計一種基于STM32的自主循跡機器車。
1 總體設計方案
循跡機器車主要由控制模塊、執行模塊、信號采集模塊組成。系統整體結構如圖1所示。
控制模塊采用STM32F103C8T6主控芯片[2],執行模塊采用減速比為1∶48的有刷直流減速電機[3],信號采集模塊采用4路紅外傳感器和128路像素的線性CCD攝像頭采集賽道信息,實現賽道元素的識別[4]。
2 主要硬件電路設計
2.1 主控模塊
本設計選用STM32F103C8T6單片機作為循跡機器車的主控模塊,該模塊程序存儲器容量為64 KB,最高工作頻率可以達到72 MHz,具有高性能、低成本和低功耗等特點[5]。主控模塊配合編程軟件Keil μVision5對紅外循跡模塊、競速避障模塊、按鍵切換模塊、電機驅動模塊等進行程序的編譯與操控[6]。系統主控模塊及其引腳如圖2所示。
設計中,通過PB12、PC13~PC15讀取4路紅外傳感器模塊采樣值,通過PB13~PB15讀取線性CCD模塊采樣值,模式轉換可通過PB0、PB1控制切換按鍵開關實現,PB6、PB7輸出PWM值,PB4、PB5控制循跡機器車右側電機轉動,PB8、PB9控制循跡機器車左側電機轉動。
2.2 電機驅動模塊
電機驅動模塊采用TB6612FNG驅動芯片來驅動電機運轉[7]。本次設計過程中,可通過控制驅動芯片的AIN1、AIN2、BIN1、BIN2、PWMA、PWMB電平高低來控制電機的正轉、反轉和停止。
采用PWM脈寬調制技術對電機速度進行控制,當10 kHz的PWM波輸入到電機驅動電路時,驅動電路會根據PWM占空比的不同,在每個PWM信號周期內,控制電機輸出不同的電壓值,從而實現電機轉速的精準控制。
2.3 競速避障模塊
競速避障模塊選用TSL1401CL線性CCD對賽道邊緣進行識別,進而實現循跡機器車在規定賽道內獨自競速。該模塊包含128個線性排列的光電二極管,當拍攝一段圖像畫面后,圖像僅有一個像素寬的長條,從左到右分成128個AD數據,每個AD數據表示像素灰度值,采集到的灰度值將在AO線上以模擬信號的形式輸出[8]。
本次設計中,利用STM32主控芯片的PB14、PB15引腳對SI和CLK引腳發出方波信號,TSL1401CL的AO口則會依次輸出128個像素點的模擬信號至STM32主控芯片。
2.4 循跡模塊
循跡模塊采用4路紅外傳感器,用于檢測白色賽道中的黑色線路,并按照黑色線路進行循跡。該傳感器是一種集發射和接收于一體的光電傳感器,檢測距離為1 mm~10 cm,可通過滑動變阻器進行調節,輸出接口為6 pin接口,輸出TTL電平,可直接與STM32主控芯片的I/O口連接[9]。
3 軟件流程分析
3.1 循跡軟件流程
本次循跡場地采用4路紅外傳感器實現循跡機器車循跡,其基本原理為利用物體對光的反射性質,尋找賽道中的黑線,當紅外線發射到黑線上時會被黑線吸收,發射到其他顏色的材料上時會部分被反射到紅外線的接收管上[10],最后轉換成二值邏輯“0”和“1”。再結合循跡賽道,對傳感器狀態進行分析,定義中間兩路巡線一直在黑線上時,低電平有效,小車直行,當任意一個紅外傳感器偏離賽道,小車會自動糾正,如果最外面的傳感器檢測到黑線,則小車將以更大速度行駛到正確的賽道上。依據賽道和紅外傳感器的狀態,得出循跡算法軟件流程,如圖3所示。
3.2 競速軟件流程
根據比賽規定,競速場地的弧度尺寸不做具體規定,由組委會根據具體情況確定。因此,為增加循跡機器車的適應性,采用線性CCD傳感器檢測賽道邊界線。當線性CCD傳感器掃到白線AD值時,返回一個較高的電壓值;掃到黑線AD值時,返回一個較低的電壓值,并進行二值化處理,把模擬信號轉換成“0”和“1”[11]。
在識別直道的過程中,賽道引導線處于賽道兩邊,但CCD在左右邊沿采集的數據存在一定的誤差,所以左右各略去5個點,使用118個點的數據,此時59即為期望的中心值。在進行邊緣檢測時,通過從中心向兩邊掃描的方式進行掃描,利用動態閾值法獲取中心值,并與期望中心值59比較,最終判斷小車的轉向。
依據賽道和CCD傳感器的掃描數據,得出競速算法軟件流程,如圖4所示。
4 測試結果
團隊成員在實驗室布置1∶1比賽場地,搭建測試環境,通過Keil μVision5軟件調整程序參數,對循跡機器車的運行軌跡不斷修正,使軌跡基本趨于穩定,即循跡賽項一輪平均用時1 473 s,失誤率在10%以內,競速賽項一輪平均用時468 s,失誤率在5%以內。循跡和競速功能穩定與時長測試結果見表1、表2。
5 結 語
本文以STM32主控芯片為核心,設計了紅外循跡電路、競速避障電路、電機驅動電路、按鍵切換電路等,輔以Keil μVision5軟件,編寫主程序、驅動程序、信號采集程序等,經過大量的測試與參數調整,循跡機器車運行效果基本趨于穩定,可以很好地滿足本次比賽要求。
通過2023年(第八屆)四川省大學生機器人大賽機器車循跡賽項驗證,該小車運行可靠性強,性能穩定,但是在完成時間和成功率方面還有待提高。依托該循跡機器車,團隊榮獲機器車循跡賽項省級三等獎。
參考文獻
[1]四川省普通本科院校學科競賽平臺.四川省大學生機器人大賽[EB/OL]. http://scxkjs.moocollege.com.
[2]陳梅芬,吳佳駿.基于STM32F103的顏色及形狀識別系統設計[J].山西電子技術,2023(5):26-29.
[3]王瑞紅,張淑婷,王錚,等.智能循跡競速賽車的設計與實現[J].機電技術,2023(5):24-27.
[4]馮謠.基于CCD攝像頭智能循跡小車的研究與開發[J].浙江交通職業技術學院學報,2018,19(z1):16-20.
[5]高正中,龔群英,宋森森.基于STM32的智能平衡車控制系統設計[J].現代電子技術,2016,39(14):46-48.
[6]洪一民,錢慶豐,章志飛.基于STM32的智能小車循跡避障測距的設計[J].物聯網技術,2022,12(1):12-13.
[7]劉漢忠,俞鵬,謝秦韜.基于CCD的循跡機器人小車模糊控制方法研究與實現[J].現代電子技術,2019,42(9):95-97.
[8]米湯,尚友良,符曉玲.基于CCD傳感器的智能車路徑識別研究[J].科技與創新,2023(11):50-53.
[9]韓彩霞,黃藝,羅子波.智能循跡小車設計[J].電子設計工程,2023,31(23):58-62.
[10]仇越.基于STM32的智能小車設計[J].工業控制計算機,2023,36(4):158-159.
[11]王信樂,劉祚時.基于線性CCD的智能小車循跡系統設計與研究[J].制造業自動化,2020,42(8):79-84.
作者簡介:胡江瑜(1992—),男,碩士,工程師,研究方向為嵌入式系統。
李光琴(1990—),女,碩士,講師,研究方向為控制與檢測技術。
王 瑩(1994—),女,講師,研究方向為電氣工程及其自動化技術。
收稿日期:2024-01-24 修回日期:2024-03-06