在本文中,我們將詳細(xì)介紹使用CW32F030C8T6芯片完成的全國電子競賽H題智能小車項目。該項目旨在通過智能控制技術(shù)完成項目功能,以下是項目的完整代碼和功能說明。
文章底部 可獲取:例程開源鏈接
1.硬件平臺與功能特性
我們選擇了CW32F030C8T6芯片作為項目的核心控制單元。該芯片具備強(qiáng)大的處理能力和豐富的外設(shè)支持,非常適合于電子競賽的應(yīng)用場景。以下是項目中使用到的主要硬件和功能特性:
芯片選擇與驅(qū)動:CW32F030C8T6芯片,使用標(biāo)準(zhǔn)庫驅(qū)動。
電機(jī)控制:PWM控制兩路帶編碼器的電機(jī),實現(xiàn)精確的速度控制。
循跡模塊:五路循跡模塊,通過BTIM1定時器實時讀取傳感器信號,實現(xiàn)精準(zhǔn)的路徑跟蹤。
OLED顯示:使用IIC通訊的OLED顯示基本信息和參數(shù)。
角度傳感器:通過串口3接收角度傳感器數(shù)據(jù),實時計算當(dāng)前角度。
2.軟件架構(gòu)與主要功能
項目的軟件部分采用了結(jié)構(gòu)化的編程方式,主要包括底層驅(qū)動、外設(shè)控制和主程序邏輯。
軟件工程圖如下:
- 主程序概述
主程序從上至下依次定義了變量并實現(xiàn)了各項功能模塊。以下是主程序的關(guān)鍵點:
任務(wù)定義:使用任務(wù)1至任務(wù)4定義不同的操作流程,以應(yīng)對競賽中的各項挑戰(zhàn)。
主程序的大循環(huán)中,執(zhí)行任務(wù)代碼如下:
硬件初始化:初始化各種外設(shè)如PWM控制、編碼器讀取、循跡模塊和角度傳感器。
任務(wù)執(zhí)行:根據(jù)任務(wù)要求執(zhí)行相應(yīng)的動作,如直線行駛、路徑跟蹤、角度調(diào)整等、PID速度控制、速度計算等。
以下代碼為速度計算代碼:
更多代碼請參考源工程文件。
模式切換:使用按鍵控制不同模式下的任務(wù)執(zhí)行,確保靈活應(yīng)對各種競賽場景。
- PWM控制與編碼器讀取
PWM設(shè)置:使用高級定時器2B和3B控制兩路電機(jī)的PWM輸出,實現(xiàn)精確的速度調(diào)節(jié)。
編碼器計數(shù):通過GTIM1和GTIM2定時器分別讀取兩路電機(jī)帶編碼器的脈沖信號,計算速度和行程。
循跡模塊實現(xiàn)
循跡控制:使用五路循跡模塊檢測地面黑線,根據(jù)信號判斷小車是否偏離路徑,并進(jìn)行實時調(diào)整。
以下代碼為循跡執(zhí)行子函數(shù)。
- 角度傳感器數(shù)據(jù)處理
串口通訊:配置串口3接收角度傳感器數(shù)據(jù),通過中斷實時更新當(dāng)前角度信息,并根據(jù)需要進(jìn)行角度調(diào)整。角度主要是使用Z軸信息,實時獲時Z軸方向的絕對角度。以下代碼為角度獲取實現(xiàn)代碼。其中RealAngl變量為角度變量,有效范圍為0-65535,代表-180度至180度。
例程開源鏈接
鏈接:https://pan.baidu.com/s/1PpacwWdcqvmT4xJEspaojw?pwd=6edb
提取碼:6edb