|
一、概述 本雙輪自動尋跡小車旨在實現對任意給定軌跡的快速精準跟蹤,基于單片機控制技術,整合傳感器檢測、電機驅動及路徑規劃算法,構建具備高穩定性的自動尋跡小車。實物設計聚焦于硬件可靠性、軟件邏輯的高效性及系統整體的安全性,適用于智能物流、教育科研及工業巡檢等場景。 二、硬件設計方案 (一)主控芯片 選用STC89C52RC 單片機(STC 品牌,型號 89C52RC),其具備 8KB Flash ROM、256B RAM、3 個 16 位定時器 / 計數器及 6 個中斷源,支持最高 24MHz 晶振頻率,可滿足多任務實時處理需求。搭配最小系統電路,包括 11.0592MHz 晶振與按鍵復位電路,確保芯片穩定運行。程序下載通過MAX232 電平轉換芯片(MAXIM 品牌,型號 MAX232)連接 PC 端串口,支持 STC-ISP 軟件離線下載。 (二)傳感器模塊 采用TCRT5000 反射式紅外光電傳感器,內置高功率紅外發射管與高靈敏度光電晶體管,檢測距離 4-13cm 可調,抗環境光干擾能力強。內置數模轉換,將紅外信號轉換為數字量,實現對黑色軌跡線的精準識別。 (三)電機驅動模塊 選用L298N 電機驅動芯片,支持雙直流電機驅動,工作電壓 5-46V,最大輸出電流 2A。搭配12V/2000mAh 鋰電池供電,通過 PWM 控制電機轉速。電機選型為RS370直流減速電機(電壓 12V,轉速 3000rpm),滿足雙輪小車的驅動力與速度要求。 (四)電源模塊 12V 鋰電池經 7809(輸出 9V)、7805(輸出 5V)穩壓芯片,分別為電機驅動、傳感器及單片機系統供電。電容濾波網絡(10μF 貼片電容 + 0.1μF 瓷片電容)降低電源紋波,確保各模塊穩定工作。
三、軟件設計方案 (一)軟件設計與代碼實現 軟件基于 STC89C52 單片機開發,采用 C 語言編程,通過 Keil uVision 環境編譯生成 HEX 文件,利用 STC-ISP 工具下載至單片機。代碼核心邏輯圍繞 5 路紅外傳感器(P0.0-P0.4)的信號采集、電機差速控制及 PWM 調速。 (二)傳感器信號采集與狀態編碼 代碼通過 P0 口讀取 5 路紅外傳感器狀態,未檢測到黑線時引腳為高電平(邏輯 1),檢測到黑線時為低電平(邏輯 0)。傳感器狀態被組合為 5 位二進制數存儲于sensorValue變量,中間傳感器觸發時狀態為0b11011(對應十六進制0x1B),右側中間傳感器觸發時為0b11101(0x1D),左側雙傳感器觸發時為0b01111(0x0F)。代碼通過Sensor_Read()函數完成狀態采集,采用逐位賦值方式避免sbit類型直接移位運算,確保邏輯正確性。 (三)電機驅動與 PWM 調速 電機驅動采用 L298N 模塊,通過 P2 口控制轉向邏輯(IN1-IN4),并利用定時器 0 生成 PWM 信號調節轉速(ENA/ENB)。定時器 0 工作于模式 1(16 位自動重裝),配置初值實現約 100μs 定時周期,中斷函數中通過pwmCounter計數器(0-100)生成 100Hz PWM 波形。左右電機占空比由cntPWM1(右電機)和cntPWM2(左電機)控制,直行時占空比設為 40%(cntPWM1=40、cntPWM2=40),偏左時右電機占空比提高至 55%-70%、左電機降低至 40%-55%,通過差速實現轉向。 (四)路徑跟蹤邏輯實現 主函數循環調用XunJi()函數執行路徑控制,通過switch-case語句匹配sensorValue狀態。當狀態為0b00000(全黑)或0b11111(全白)時執行停車邏輯;中間傳感器觸發(0b00100對應的flag=0)時調用Forward()函數雙電機正轉;左側傳感器觸發(如0b10000對應的flag=3)時調用TurnLeft1()函數,右電機正轉、左電機反轉并設置較大轉速差(cntPWM1=55、cntPWM2=70);右側傳感器觸發時則調用TurnRight1()函數,通過右電機反轉、左電機正轉糾正偏移。代碼通過固定轉速差策略實現轉向。
圖片1.png (95.37 KB, 下載次數: 0)
下載附件
原理圖
2025-6-9 11:28 上傳
單片機源程序如下:
以上Keil代碼下載:
雙輪循跡小車.7z
(20.25 KB, 下載次數: 0)
2025-6-9 13:37 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
原理圖:無
PCB:無
|