曹沖振 梁世友 王鳳芹 明超 李赫



摘要:在高科技快速發展的新時代,移動機器人廣泛應用于工業、農業、醫療、服務等行業,智能小車是其研究領域的一個重要分支。本設計以STM32F103RCT6微控制器作為智能小車控制系統的核心處理器,功能設計模塊化,包括電源模塊、驅動模塊、避障模塊、無線通信模塊、速度檢測模塊、定位模塊等,實現小車的自主運動、避障、定位、通信以及在復雜環境下的人工遙控等功能。
關鍵詞: 智能小車; STM32; 無線通信; 遙控
【Abstract】 In the new era of rapid development of high technology, mobile robots are widely used in industries such as industry, agriculture, medical care, and services. Smart cars are an important branch of the research field. This design uses STM32F103RCT6 microcontroller as the core processor of the intelligent car control system. Its functional design is modular, including such modules as power module, drive module, obstacle avoidance module, wireless communication module, speed detection module, positioning module, etc., which could realize obstacle avoidance, positioning, communication, and manual remote control in complex environments.
【Key words】 ?intelligent car; STM32; wireless communication; remote control
0 引 言
隨著科學技術的飛速發展,智能化早已成為人們關注的焦點,智能車在現代社會的各個領域已得到廣泛應用。 智能小車是人工智能、自動控制、計算機等學科的交叉融合的產物,并在無人駕駛汽車和智能掃地機器人中起著重要作用。
控制系統是智能小車的關鍵部分,可以根據預定的軌跡在復雜的環境中行駛,實現小車的速度和位置控制,完成指定的任務,并在智能小車系統中占有舉足輕重的位置。在實際應用和文獻調研中,發現智能小車在運動過程中會出現避障不靈敏現象,在復雜環境下則容易出現運動紊亂、通訊延遲,以及控制系統的集成度不高的問題。因此,本文設計了一種以STM32微控制器為核心的四輪智能小車,其工作頻率可達72 MHz,可以實現復雜的計算,豐富的增強型I/O端口增強了系統的擴展能力[1];通過擴展的GPS模塊,可以對小車進行實時定位,并通過無線通信模塊將信息傳輸給上位機,以進行實時監控,當小車進入復雜環境無法工作時,可轉換為人工操作模式,從而達到預期的要求。
1 系統總體設計方案
該系統的總體設計框圖如圖1所示。
由圖1可知,該系統由STM32控制器模塊、電源模塊、無線通信模塊、避障模塊、定位模塊、驅動模塊、速度檢測模塊和上位機部分組成。小車采用后輪差速驅動轉向方式,電機選用永磁直流電機。電源模塊采用LM7805和LM1117芯片將+12 V電壓轉換為+5 V和+3.3 V,以為車載系統供電。無線通信模塊選擇PTR2000作為核心芯片,實現小車與上位機之間的通信。避障模塊采用紅外避障傳感器。使用GPS定位方法對小車進行實時定位。RPR-220光電編碼器用于車速檢測。選擇L298N作為電機驅動芯片,采用增量式PID控制算法控制單片機輸出的PWM脈沖,用來控制車速,再由測速模塊檢測車速,反饋給單片機,形成一個閉環控制系統。
2 系統硬件電路設計
2.1 主控制器電路設計
本控制系統選用的STM32F103RCT6單片機的最小系統圖,如圖2所示。時鐘電路的引腳為OSCIN和OSCOUT,外部8 MHz時鐘使系統更穩定。NRST為復位引腳。PB6,PB7,PB8,PB9是PWM信號輸出引腳。PA2、PA3與無線通信模塊的DO、DI引腳分別相連,作為串行通信的通道,PA4、PA5與無線通信模塊的CS、TXEN引腳相連。PA7、PA8、PB0、PB1引腳與4個紅外避障傳感器相連。PB10、PB11與GPS定位模塊相連。
2.2 電源模塊電路設計
電源模塊主要為控制系統提供工作電壓。主控制器電源電壓為+3.3 V,而電機驅動芯片L298N需要+5 V,電機驅動電壓為+12 V,因此,選擇+12 V作為系統的主電源,而+5 V和+3.3 V電壓可以經電壓轉換芯片轉換得到。本文將10個1.2 V4 500 mAh鋰電池串聯用作系統的電源,由此可得+12 V的電源電壓。從+12 V轉換到+5 V,選用轉換芯片LM7805,其電壓轉換電路如圖3所示。
通過圖3給出的電源電路,主控制器工作電壓+3.3 V經電壓轉換芯片LM1117轉換得到+5 V電壓,并且在LM1117的輸入和輸出兩側添加了電容,減少了電源擾動的影響,增加了系統的穩定性[2]。其電壓轉換電路如圖4所示。
2.3 驅動模塊電路設計
選擇L298N作為電機驅動芯片,這是一個具有大電流高電壓的全橋驅動芯片,一個L298N可以分別控制2臺直流電機,且有控制使能端。該芯片用作電機驅動器,操作簡便,穩定性好,可以實現小車速度的精確控制。驅動電路如圖5所示。
在圖5中,SA和SB引腳經1 Ω電阻接地,作為電流反饋以實現系統的電流閉環控制。左右輪驅動電機的兩端分別連接到L298N的Out1~Out4四個輸出管腳。二極管IN5819在電路中是不可或缺的,因為電機是感性負載,在停機或換向時,會產生很高的反向感生電動勢,如果不加釋放就會破壞芯片內部電路[3]。當添加二極管后,此電動勢使二極管導通,釋放了電能,對電路起到了保護作用。
2.4 避障模塊設計
本設計采用紅外避障傳感器,具有環境適應性好、抗干擾性強、功耗低和識別能力強等優點。該紅外避障傳感器有3個引腳,分別是VCC、GND、OUT,如圖6所示。其中,傳感器的輸出引腳是OUT引腳。使用時要注意的是電源正負極不能接反,否則會燒壞芯片。
該傳感器模塊對光有很強的適應性,配有一對紅外發射與接收管,發射管發射一定頻率的紅外線,遇到障礙物(反射面)反射回來被接收管接收,經比較器電路處理后,綠色指示燈將點亮,輸出數字信號(低電平信號)[4]。該傳感器的檢測范圍能夠通過電位器調整(2~30 cm),具有干擾小、易裝配等特點,并在機器人避障、流水線計數、黑白線循跡等眾多領域具有很好的應用前景,其內部電路圖如圖7所示。
2.5 無線通信模塊設計
無線通信模塊的作用是實現小車與上位機之間的通信。在本設計中,選用射頻模塊PTR2000作為無線通信端口,該端口與STM32控制器的USART收發器端口連接,上位機通過MAX232電平轉換芯片與PTR2000連接,從而完成了智能小車與上位機之間的無線通信。該射頻模塊具有接收和發射數據的功能,具有接收靈敏度高、工作速率快、穩定性高等特點。其接口電路如圖8所示。
其中,PWR端口通過電阻與電源連接,直接設定為正常工作狀態,DO、DI分別與主控制器USART2的PA2和PA3引腳相連,作為串行通信的通道;CS、TXEN分別與PA4、PA5引腳相連。PTR2000是一個集成收發器芯片,可通過+3.3 V供電,與主控器無縫連接。
3 系統軟件設計
本系統編程采用模塊化編程思想。首先,編寫每個模塊應用程序,然后在主程序中調用各模塊的程序。模塊化編寫的程序不僅便于系統調試,而且有利于在項目中進行移植,并縮短了項目開發周期。
3.1 主程序設計
上電后,進行系統初始化,包括系統時鐘、中斷分組、串口、系統延時函數、定時器和相應的函數進行初始化。智能小車設置有自動、遙控兩種模式,默認的模式為自動模式。系統初始化完成后,進入命令接收等待狀態,又當接收到模式切換命令時,小車切換到相應的模式啟動相應程序,使小車執行相應控制指令。系統程序流程圖如圖9所示。
3.2 驅動模塊程序設計
該模塊通過控制PWM脈沖來調節電機運轉速率。方法為運用算法讓主控器輸出調節車速的PWM信號,繼而把這個經過處理的信號傳遞給L298N,使其控制電機完成啟動/停止、調速、正轉和反轉等功能。將電機兩端的輸入信號設置為一側為高電平,一側為低電平,使電動機能夠正常運行。具體運轉情況見表1。
3.3 無線通信程序設計
在本設計中,無線模塊PTR2000連接到單片機的USART2,首先配置接收數據輸入(RX)和發送數據輸出(TX)的引腳;串口數據傳輸頻率為1 Hz,通過定時器定時1 s進行數據發送,當定時器時間達到1 s時,執行定時器溢出中斷程序并執行數據傳輸。通過串口接收中斷完成串行端口數據接收。當串口USART2接收數據時,串口USART2接收中斷。接收到數據后,程序退出串口USART2接收中斷,并清除定時器溢出中斷標志。串口接收的數據保存在變量中[5]。
3.4 定位模塊程序設計
GPS模塊上電約1 min后,定位完成,此時,定位信息將通過串口輸出。只要將串口輸出引腳與單片機相應的串口引腳連接,就可以通過單片機讀取GPS模塊的定位信息。GPS模塊連接STM32單片機的USART3串行端口,當串口接收到GPS模塊信息時,程序進入USART3串口接收中斷,接收到串口數據后,程序自動退出串口接收中斷,接收到的GPS數據存儲在變量中,方便使用。
4 結束語
本文設計的可遙控智能小車是以STM32單片機為控制核心,實現小車的自主運動、避障、定位、通信以及在復雜環境下的人工遙控等功能,給出了具體的電路設計。智能小車通過無線通信模塊與上位機連接,上位機可以實時觀測小車的運動情況,在復雜環境下小車可能出現停滯、運動紊亂的情況,可改為人工遙控的模式,對智能小車發出控制指令,控制系統的設計功能基本實現。
參考文獻
[1] 周官喜. 基于STM32低功耗云臺控制系統設計[D]. 青島:青島理工大學,2012.
[2]施小宇. 基于STM32的智能快遞系統研究與設計[J]. 電子技術與軟件工程,2014(1):132.
[3]夏啟. 混凝土水化熱監控系統的開發與實現[D]. 天津:天津科技大學,2017.
[4]王攀攀. 部分未知環境中移動機器人動態避障研究[D]. 哈爾濱:哈爾濱工業大學,2012.
[5] 范政,何繼靖,朱永業,等. 基于STM32的無線智能小車控制系統設計[J]. 輕工科技,2018,34(6):83.