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