曹沖振 梁世友 王鳳芹 明超 李赫
摘要:在高科技快速發(fā)展的新時(shí)代,移動(dòng)機(jī)器人廣泛應(yīng)用于工業(yè)、農(nóng)業(yè)、醫(yī)療、服務(wù)等行業(yè),智能小車是其研究領(lǐng)域的一個(gè)重要分支。本設(shè)計(jì)以STM32F103RCT6微控制器作為智能小車控制系統(tǒng)的核心處理器,功能設(shè)計(jì)模塊化,包括電源模塊、驅(qū)動(dòng)模塊、避障模塊、無線通信模塊、速度檢測模塊、定位模塊等,實(shí)現(xiàn)小車的自主運(yùn)動(dòng)、避障、定位、通信以及在復(fù)雜環(huán)境下的人工遙控等功能。
關(guān)鍵詞: 智能小車; 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 引 言
隨著科學(xué)技術(shù)的飛速發(fā)展,智能化早已成為人們關(guān)注的焦點(diǎn),智能車在現(xiàn)代社會(huì)的各個(gè)領(lǐng)域已得到廣泛應(yīng)用。 智能小車是人工智能、自動(dòng)控制、計(jì)算機(jī)等學(xué)科的交叉融合的產(chǎn)物,并在無人駕駛汽車和智能掃地機(jī)器人中起著重要作用。
控制系統(tǒng)是智能小車的關(guān)鍵部分,可以根據(jù)預(yù)定的軌跡在復(fù)雜的環(huán)境中行駛,實(shí)現(xiàn)小車的速度和位置控制,完成指定的任務(wù),并在智能小車系統(tǒng)中占有舉足輕重的位置。在實(shí)際應(yīng)用和文獻(xiàn)調(diào)研中,發(fā)現(xiàn)智能小車在運(yùn)動(dòng)過程中會(huì)出現(xiàn)避障不靈敏現(xiàn)象,在復(fù)雜環(huán)境下則容易出現(xiàn)運(yùn)動(dòng)紊亂、通訊延遲,以及控制系統(tǒng)的集成度不高的問題。因此,本文設(shè)計(jì)了一種以STM32微控制器為核心的四輪智能小車,其工作頻率可達(dá)72 MHz,可以實(shí)現(xiàn)復(fù)雜的計(jì)算,豐富的增強(qiáng)型I/O端口增強(qiáng)了系統(tǒng)的擴(kuò)展能力[1];通過擴(kuò)展的GPS模塊,可以對(duì)小車進(jìn)行實(shí)時(shí)定位,并通過無線通信模塊將信息傳輸給上位機(jī),以進(jìn)行實(shí)時(shí)監(jiān)控,當(dāng)小車進(jìn)入復(fù)雜環(huán)境無法工作時(shí),可轉(zhuǎn)換為人工操作模式,從而達(dá)到預(yù)期的要求。
1 系統(tǒng)總體設(shè)計(jì)方案
該系統(tǒng)的總體設(shè)計(jì)框圖如圖1所示。
由圖1可知,該系統(tǒng)由STM32控制器模塊、電源模塊、無線通信模塊、避障模塊、定位模塊、驅(qū)動(dòng)模塊、速度檢測模塊和上位機(jī)部分組成。小車采用后輪差速驅(qū)動(dòng)轉(zhuǎn)向方式,電機(jī)選用永磁直流電機(jī)。電源模塊采用LM7805和LM1117芯片將+12 V電壓轉(zhuǎn)換為+5 V和+3.3 V,以為車載系統(tǒng)供電。無線通信模塊選擇PTR2000作為核心芯片,實(shí)現(xiàn)小車與上位機(jī)之間的通信。避障模塊采用紅外避障傳感器。使用GPS定位方法對(duì)小車進(jìn)行實(shí)時(shí)定位。RPR-220光電編碼器用于車速檢測。選擇L298N作為電機(jī)驅(qū)動(dòng)芯片,采用增量式PID控制算法控制單片機(jī)輸出的PWM脈沖,用來控制車速,再由測速模塊檢測車速,反饋給單片機(jī),形成一個(gè)閉環(huán)控制系統(tǒng)。
2 系統(tǒng)硬件電路設(shè)計(jì)
2.1 主控制器電路設(shè)計(jì)
本控制系統(tǒng)選用的STM32F103RCT6單片機(jī)的最小系統(tǒng)圖,如圖2所示。時(shí)鐘電路的引腳為OSCIN和OSCOUT,外部8 MHz時(shí)鐘使系統(tǒng)更穩(wěn)定。NRST為復(fù)位引腳。PB6,PB7,PB8,PB9是PWM信號(hào)輸出引腳。PA2、PA3與無線通信模塊的DO、DI引腳分別相連,作為串行通信的通道,PA4、PA5與無線通信模塊的CS、TXEN引腳相連。PA7、PA8、PB0、PB1引腳與4個(gè)紅外避障傳感器相連。PB10、PB11與GPS定位模塊相連。
2.2 電源模塊電路設(shè)計(jì)
電源模塊主要為控制系統(tǒng)提供工作電壓。主控制器電源電壓為+3.3 V,而電機(jī)驅(qū)動(dòng)芯片L298N需要+5 V,電機(jī)驅(qū)動(dòng)電壓為+12 V,因此,選擇+12 V作為系統(tǒng)的主電源,而+5 V和+3.3 V電壓可以經(jīng)電壓轉(zhuǎn)換芯片轉(zhuǎn)換得到。本文將10個(gè)1.2 V4 500 mAh鋰電池串聯(lián)用作系統(tǒng)的電源,由此可得+12 V的電源電壓。從+12 V轉(zhuǎn)換到+5 V,選用轉(zhuǎn)換芯片LM7805,其電壓轉(zhuǎn)換電路如圖3所示。
通過圖3給出的電源電路,主控制器工作電壓+3.3 V經(jīng)電壓轉(zhuǎn)換芯片LM1117轉(zhuǎn)換得到+5 V電壓,并且在LM1117的輸入和輸出兩側(cè)添加了電容,減少了電源擾動(dòng)的影響,增加了系統(tǒng)的穩(wěn)定性[2]。其電壓轉(zhuǎn)換電路如圖4所示。
2.3 驅(qū)動(dòng)模塊電路設(shè)計(jì)
選擇L298N作為電機(jī)驅(qū)動(dòng)芯片,這是一個(gè)具有大電流高電壓的全橋驅(qū)動(dòng)芯片,一個(gè)L298N可以分別控制2臺(tái)直流電機(jī),且有控制使能端。該芯片用作電機(jī)驅(qū)動(dòng)器,操作簡便,穩(wěn)定性好,可以實(shí)現(xiàn)小車速度的精確控制。驅(qū)動(dòng)電路如圖5所示。
在圖5中,SA和SB引腳經(jīng)1 Ω電阻接地,作為電流反饋以實(shí)現(xiàn)系統(tǒng)的電流閉環(huán)控制。左右輪驅(qū)動(dòng)電機(jī)的兩端分別連接到L298N的Out1~Out4四個(gè)輸出管腳。二極管IN5819在電路中是不可或缺的,因?yàn)殡姍C(jī)是感性負(fù)載,在停機(jī)或換向時(shí),會(huì)產(chǎn)生很高的反向感生電動(dòng)勢,如果不加釋放就會(huì)破壞芯片內(nèi)部電路[3]。當(dāng)添加二極管后,此電動(dòng)勢使二極管導(dǎo)通,釋放了電能,對(duì)電路起到了保護(hù)作用。
2.4 避障模塊設(shè)計(jì)
本設(shè)計(jì)采用紅外避障傳感器,具有環(huán)境適應(yīng)性好、抗干擾性強(qiáng)、功耗低和識(shí)別能力強(qiáng)等優(yōu)點(diǎn)。該紅外避障傳感器有3個(gè)引腳,分別是VCC、GND、OUT,如圖6所示。其中,傳感器的輸出引腳是OUT引腳。使用時(shí)要注意的是電源正負(fù)極不能接反,否則會(huì)燒壞芯片。
該傳感器模塊對(duì)光有很強(qiáng)的適應(yīng)性,配有一對(duì)紅外發(fā)射與接收管,發(fā)射管發(fā)射一定頻率的紅外線,遇到障礙物(反射面)反射回來被接收管接收,經(jīng)比較器電路處理后,綠色指示燈將點(diǎn)亮,輸出數(shù)字信號(hào)(低電平信號(hào))[4]。該傳感器的檢測范圍能夠通過電位器調(diào)整(2~30 cm),具有干擾小、易裝配等特點(diǎn),并在機(jī)器人避障、流水線計(jì)數(shù)、黑白線循跡等眾多領(lǐng)域具有很好的應(yīng)用前景,其內(nèi)部電路圖如圖7所示。
2.5 無線通信模塊設(shè)計(jì)
無線通信模塊的作用是實(shí)現(xiàn)小車與上位機(jī)之間的通信。在本設(shè)計(jì)中,選用射頻模塊PTR2000作為無線通信端口,該端口與STM32控制器的USART收發(fā)器端口連接,上位機(jī)通過MAX232電平轉(zhuǎn)換芯片與PTR2000連接,從而完成了智能小車與上位機(jī)之間的無線通信。該射頻模塊具有接收和發(fā)射數(shù)據(jù)的功能,具有接收靈敏度高、工作速率快、穩(wěn)定性高等特點(diǎn)。其接口電路如圖8所示。
其中,PWR端口通過電阻與電源連接,直接設(shè)定為正常工作狀態(tài),DO、DI分別與主控制器USART2的PA2和PA3引腳相連,作為串行通信的通道;CS、TXEN分別與PA4、PA5引腳相連。PTR2000是一個(gè)集成收發(fā)器芯片,可通過+3.3 V供電,與主控器無縫連接。
3 系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)編程采用模塊化編程思想。首先,編寫每個(gè)模塊應(yīng)用程序,然后在主程序中調(diào)用各模塊的程序。模塊化編寫的程序不僅便于系統(tǒng)調(diào)試,而且有利于在項(xiàng)目中進(jìn)行移植,并縮短了項(xiàng)目開發(fā)周期。
3.1 主程序設(shè)計(jì)
上電后,進(jìn)行系統(tǒng)初始化,包括系統(tǒng)時(shí)鐘、中斷分組、串口、系統(tǒng)延時(shí)函數(shù)、定時(shí)器和相應(yīng)的函數(shù)進(jìn)行初始化。智能小車設(shè)置有自動(dòng)、遙控兩種模式,默認(rèn)的模式為自動(dòng)模式。系統(tǒng)初始化完成后,進(jìn)入命令接收等待狀態(tài),又當(dāng)接收到模式切換命令時(shí),小車切換到相應(yīng)的模式啟動(dòng)相應(yīng)程序,使小車執(zhí)行相應(yīng)控制指令。系統(tǒng)程序流程圖如圖9所示。
3.2 驅(qū)動(dòng)模塊程序設(shè)計(jì)
該模塊通過控制PWM脈沖來調(diào)節(jié)電機(jī)運(yùn)轉(zhuǎn)速率。方法為運(yùn)用算法讓主控器輸出調(diào)節(jié)車速的PWM信號(hào),繼而把這個(gè)經(jīng)過處理的信號(hào)傳遞給L298N,使其控制電機(jī)完成啟動(dòng)/停止、調(diào)速、正轉(zhuǎn)和反轉(zhuǎn)等功能。將電機(jī)兩端的輸入信號(hào)設(shè)置為一側(cè)為高電平,一側(cè)為低電平,使電動(dòng)機(jī)能夠正常運(yùn)行。具體運(yùn)轉(zhuǎn)情況見表1。
3.3 無線通信程序設(shè)計(jì)
在本設(shè)計(jì)中,無線模塊PTR2000連接到單片機(jī)的USART2,首先配置接收數(shù)據(jù)輸入(RX)和發(fā)送數(shù)據(jù)輸出(TX)的引腳;串口數(shù)據(jù)傳輸頻率為1 Hz,通過定時(shí)器定時(shí)1 s進(jìn)行數(shù)據(jù)發(fā)送,當(dāng)定時(shí)器時(shí)間達(dá)到1 s時(shí),執(zhí)行定時(shí)器溢出中斷程序并執(zhí)行數(shù)據(jù)傳輸。通過串口接收中斷完成串行端口數(shù)據(jù)接收。當(dāng)串口USART2接收數(shù)據(jù)時(shí),串口USART2接收中斷。接收到數(shù)據(jù)后,程序退出串口USART2接收中斷,并清除定時(shí)器溢出中斷標(biāo)志。串口接收的數(shù)據(jù)保存在變量中[5]。
3.4 定位模塊程序設(shè)計(jì)
GPS模塊上電約1 min后,定位完成,此時(shí),定位信息將通過串口輸出。只要將串口輸出引腳與單片機(jī)相應(yīng)的串口引腳連接,就可以通過單片機(jī)讀取GPS模塊的定位信息。GPS模塊連接STM32單片機(jī)的USART3串行端口,當(dāng)串口接收到GPS模塊信息時(shí),程序進(jìn)入U(xiǎn)SART3串口接收中斷,接收到串口數(shù)據(jù)后,程序自動(dòng)退出串口接收中斷,接收到的GPS數(shù)據(jù)存儲(chǔ)在變量中,方便使用。
4 結(jié)束語
本文設(shè)計(jì)的可遙控智能小車是以STM32單片機(jī)為控制核心,實(shí)現(xiàn)小車的自主運(yùn)動(dòng)、避障、定位、通信以及在復(fù)雜環(huán)境下的人工遙控等功能,給出了具體的電路設(shè)計(jì)。智能小車通過無線通信模塊與上位機(jī)連接,上位機(jī)可以實(shí)時(shí)觀測小車的運(yùn)動(dòng)情況,在復(fù)雜環(huán)境下小車可能出現(xiàn)停滯、運(yùn)動(dòng)紊亂的情況,可改為人工遙控的模式,對(duì)智能小車發(fā)出控制指令,控制系統(tǒng)的設(shè)計(jì)功能基本實(shí)現(xiàn)。
參考文獻(xiàn)
[1] 周官喜. 基于STM32低功耗云臺(tái)控制系統(tǒng)設(shè)計(jì)[D]. 青島:青島理工大學(xué),2012.
[2]施小宇. 基于STM32的智能快遞系統(tǒng)研究與設(shè)計(jì)[J]. 電子技術(shù)與軟件工程,2014(1):132.
[3]夏啟. 混凝土水化熱監(jiān)控系統(tǒng)的開發(fā)與實(shí)現(xiàn)[D]. 天津:天津科技大學(xué),2017.
[4]王攀攀. 部分未知環(huán)境中移動(dòng)機(jī)器人動(dòng)態(tài)避障研究[D]. 哈爾濱:哈爾濱工業(yè)大學(xué),2012.
[5] 范政,何繼靖,朱永業(yè),等. 基于STM32的無線智能小車控制系統(tǒng)設(shè)計(jì)[J]. 輕工科技,2018,34(6):83.