董靖川, 張 朝, 溫 洋, 竇一喜, 趙鵬飛, 王 星
(天津大學 機械工程學院, 天津 300354)
基于STM32的低碳避障實驗小車電控設計
董靖川, 張 朝, 溫 洋, 竇一喜, 趙鵬飛, 王 星
(天津大學 機械工程學院, 天津 300354)
采用單片機為核心的控制電路實現智能避障和能量管理。電控部分以STM32F103C8T6型32位ARM單片機為核心,配置了轉向舵機、離合器舵機作為執行元件,并通過超聲波傳感器組、光電測速傳感器、MEMS陀螺儀作為反饋元件,控制小車運行的軌跡和速度。充分利用STM32單片機內置的硬件定時器、USART及中斷功能實現了舵機的PWM控制及超聲波測距、陀螺儀讀數、測速等功能。測試表明,低碳避障實驗小車的電控裝置原理直觀、接口豐富、編程方便、操作簡單、運行可靠,能夠滿足機電工程類課程的創新實驗和工程實踐的教學需求。
低碳小車; STM32; 超聲波測距; 舵機
智能避障小車系統屬于一種簡單的輪式機器人[1],可廣泛應用于物流運輸[2]、室內清潔[3]、環境監測[4]、目標搜尋[5]等各種工業及日常生活場合。智能避障小車需要實現環境信息的自感知、行為決策、路徑規劃、自動駕駛等功能,并且涉及到機械設計、傳感器、電機、電路、自動控制、通信等方面的技術,屬于典型的智能化的機電產品。
本文研究的自動控制低碳避障實驗小車是一種以重力勢能作為唯一前進驅動力的新型智能控制實驗裝置,符合綠色、智能的現代機電產品設計理念。該平臺可以作為機械電子、自動化等相關專業高年級本科生的課程設計及綜合實訓的課題內容,使專業知識得到綜合應用。小車的電控系統采用32位ARM為核心的單片機實現全數字控制,配備超聲波傳感器、光電測速傳感器、MEMS陀螺儀、轉向舵機、離合器舵機等測控元器件,可以實現小車的全自主避障行駛及能量管理。
低碳避障實驗小車整車采用3輪結構,整體結構如圖1所示。車輛前部的小輪是轉向輪,后部的2個大輪中有一個是主動輪(驅動輪),另一個是從動輪。車輛行駛能量由車輛上方懸掛的1 kg重物的重力勢能提供,經滑輪系傳動,產生驅動力矩。后輪軸上安裝有單向軸承超越離合器[6],可以通過棘輪和離合器舵機的作用,選擇是否將驅動力傳遞到驅動輪上。具體原理:當離合器舵機桿與棘輪沒有接觸時,重物可以下落,并將驅動力矩通過單向軸承傳遞給主動輪,小車加速;當離合器舵機轉動,使舵機桿卡住棘輪時,重物停止下落,此時單向軸承不再傳遞扭矩,小車依靠慣性行駛。車輛前部轉向輪由轉向舵機控制轉角,實現車輛自動轉彎。
為實現障礙探測,在小車前方安裝有6個超聲波測距傳感器,組成超聲波傳感器組,其水平面上的分布如圖2所示。其中正前方平行安裝2路、左右垂直方向各安裝1路,左右45°各安裝1路。小車主動輪軸上安裝有光電測速碼盤,通過光電傳感器實現測速。此外控制板上還安裝有微機電(MEMS)陀螺儀,用于提供車輛轉角、速度信息。控制電路由6節AA型干電池供電,控制電路和電池安裝在小車底盤中央附近。

圖1 小車結構示意圖

圖2 超聲波傳感器組的布置
小車的電控系統硬件功能框圖如圖3所示。控制電路核心采用基于32位ARM Cortex-M3核心的STM32F103C8T6單片機,采用LQFP48封裝,內含64 KB Flash和20 KB SRAM存儲器,主頻可達72 MHz,并集成了豐富的片上外設[7]。該單片機采用3.3 V電壓供電,IO管腳能夠承受5 V電平,因此可以方便地連接各種5 V或3.3 V電壓的電路模塊。電池輸出經過電源轉換電路轉換為3.3 V為單片機供電。按鍵、LED 指示燈連接到單片機的通用輸入/輸出(GPIO)管腳進行訪問。程序下載接口采用SWD串行模式,接線少、速度快,既可實現程序下載,也可進行在線仿真調試。時鐘采用外部8 MHz石英振蕩器,由復位及時鐘控制模塊(RCC)的鎖相環(PLL)電路產生72 MHz主頻,實現高性能程序處理。2臺舵機采用定時器TIM3的通道1、2的脈沖寬度調制(PWM)模式進行角度控制。測速編碼器信號采用定時器TIM2的外部脈沖計數功能實現。超聲波傳感器選用了數字接口形式,由GPIO管腳進行控制。MEMS陀螺儀模塊帶有串行接口,連接到單片機的UART1接口上進行讀寫。由于充分利用了單片機自帶的片上外設,因此主控板電路結構簡單、工作可靠且成本較低。

圖3 電控系統硬件功能框圖
舵機是一種伺服電機,可以實現電機角度的位置控制,從而實現轉向,廣泛應用于智能小車、機器人、航模等領域。舵機結構一般包含小型直流電機、減速齒輪組、舵盤、位置反饋電位計、控制電路等,可以構成完整、緊湊的閉環位置伺服系統。在本文的避障實驗小車中,舵機用于轉向輪方向以及單向軸承離合器的控制。
常用舵機采用脈寬調試(PWM)信號控制,旋轉角度范圍為180°。PWM信號周期為20 ms,脈沖寬度為0.5~2.5 ms,對應舵盤0~180°轉角[8],如圖4所示。舵機的控制電路將PWM信號脈沖寬度作為指令,轉化為電壓信號,與位置反饋電位計的電壓進行比較,獲得偏差大小,放大后驅動電機向減少偏差的方向運動,實現定位。STM32系列單片機的定時器具有PWM工作模式,可以直接由硬件產生舵機的PWM控制波形。本設計采用TIM3定時器的輸出通道1和輸出通道2產生PWM控制信號。

圖4 舵機PWM控制波形
超聲波測距傳感器的原理:通過超聲波發射器向某一方向發射超聲波,超聲波遇到障礙物后發生反射,返回到超聲波傳感器。當聲波在空氣中的傳播速度已知的情況下,通過檢測超聲波發射與接收間的時間間隔可以計算出超聲波傳播距離,從而獲得傳感器與障礙物間的距離。超聲波測距具有方向性好、非接觸式測量、適用的反射材質廣泛等優點,廣泛應用于各類距離測量儀器、避障機器人及汽車倒車雷達等場合。
低碳智能避障小車采用6個SR-04型超聲波傳感器模塊組成超聲波傳感器組,檢測多個不同方向上的障礙物,為智能避障決策算法提供依據。SR-04測距模塊測量范圍為2~400 cm,精度可達3 mm,含有完整的超聲波發射器、接收器和控制電路。該模塊與單片機連接時只需要“觸發(TRIG)”和“回響(ECHO)”2個IO信號,時序如圖5所示。具體流程:單片機GPIO口產生一個持續時間10 μs以上的TRIG高電平信號,觸發SR-04模塊啟動一次檢測;SR-04模塊發送8個頻率40 kHz的超聲波脈沖信號,同時對返回信號進行檢測;若有超聲波信號返回,則ECHO口輸出一個高電平,高電平持續時間為超聲波發射到返回的總傳播時間,單片機可對高電平時間進行測量。假設檢測到ECHO信號高電平時間為techo,聲速為vs(15 ℃下約為340 m/s),則測試距離d為[9]
d=(techo×vs)/2

圖5 超聲波測距時序
本文的避障小車前進速度采用對射式紅外光電傳感器和自制的光柵碼盤實現測速。槽型紅外光電傳感器一端發射紅外信號,另一端接收該信號,若槽內紅外光線沒有遮擋,則傳感器輸出低電平;若遮擋槽內光線,則輸出高電平。自制的圓形光柵碼盤采用不透明材料,沿圓周附近等間隔加工一圈鏤空光柵,碼盤同心安裝在后主動輪軸上,并使光柵部分插入紅外光電傳感器的槽中。當后輪轉動時,光柵使紅外光線不斷遮擋/透過,則通過傳感器檢測、整形后,輸出一串頻率與轉速成正比的脈沖信號。通過對該脈沖信號頻率進行測量,即可換算得到小車前進的實時車速。
微機電(MEMS)陀螺儀模塊以MPU-6050傳感器為核心,并帶有串口輸出功能,可以方便地與單片機接口。MPU-6050傳感器集成了先進的3軸陀螺儀、3軸加速度計以及數字運動處理器(DMP)硬件加速引擎。模塊內部集成了姿態解算器和卡爾曼濾波算法[10],能夠在動態環境中穩定輸出三維的加速度、角速度、姿態角數據。加速度量程和分辨率分別為±16g和6.1×10-5g,角速度量程和分辨率分別為±2000°/s和0.007 6°/s,姿態測量穩定度為0.01°。
在智能避障小車中,陀螺儀模塊可用于慣性導航,與單片機UART1串口連接。模塊每幀數據含有3個數據包,分別為加速度包、角速度包和角度包。每個數據包10個字節,含有包頭、數據標識、數據、校驗和等部分。當串口波特率設定為115 200時,每隔10 ms發送一個數據幀,數據輸出刷新頻率可達100 Hz。
STM32系列單片機片上外設豐富、功能多樣、寄存器繁多,手工編寫驅動程序相對復雜。STM32CubeMx軟件是ST公司為STM32系列單片機開發的一套圖形化配置工具[11],只要通過參數化的圖形界面進行簡單的配置,即可以自動生成C語言的驅動程序,含有所有初始化及標準功能使用的軟件編程接口(API),從而大大提高了開發速度,驅動代碼也可更加清晰、可靠。本文所述的小車控制器驅動程序借助STM32CubeMx工具設計、配置。
在STM32CubeMx工具中首先選擇控制板所用的單片機型號STM32F103C8T6,軟件會自動進入配置畫面,顯示單片機管腳功能信息,同時在左側用樹形列表列出片上外設的配置情況。需要設定的單片機基本配置包括:RCC模塊的高速時鐘(HSE)配置為外部晶振;SYS模塊的DEBUG選項設置為Serial Wire串行模式,以支持SWD接口的程序下載及調試。另外,在時鐘配置畫面中,需要輸入外部晶振頻率8 MHz、系統時鐘頻率配置72 MHz、APB1外設36 MHz、APB2外設72 MHz、定時器模塊時鐘72 MHz,其他參數由系統自動計算即可。
外設配置方面,將定時器TIM2的時鐘源設定為外部時鐘ETR2模式,作為測速傳感器輸入,計數模式為增計數器,計數周期為0xFFFF。將定時器TIM3的CH1 和CH2通道設定為PWM模式,作為2臺舵機的控制信號。將計數模式設定為增計數,預分頻器(PSC)設定為71,使定時器基準頻率為1 MHz(周期為1 μs),計數周期設定為19999,即PWM周期為20 ms,同時開啟TIM3中斷,作為20 ms周期實時控制程序入口。在軟件中,設置TIM3脈沖寬度為1 500~2 500,對應1.5~2.5 ms的高電平時間,使舵機在0~180°范圍旋轉。TIM4設定為內部時鐘,預分頻為71(1 MHz),周期為0xFFFF,作為測量超聲波傳感器ECHO高電平信號持續時間的基準,分辨率為1 μs。USART1配置為異步模式,按照MEMS陀螺儀模塊設定波特率為115 200,字長8位,無校驗,停止位1位。與超聲波傳感器TRIG信號相連的管腳需要設定為GPIO的輸出模式,與ECHO信號相連的管腳設定為GPIO的EXTI中斷信號輸入模式,設置為下降沿觸發的中斷。與按鍵、LED相連的管腳分別設定為普通的GPIO模式。完成上述配置工作后,點擊Generate code選單即可完成C語言代碼的自動生成。
在STM32CubeMx生成的代碼基礎上封裝了一層接口以便于程序編寫。主要內容有:
(1) 初始化函數。將SR04超聲波傳感器模塊的TRIG信號置為低電平,啟動3個定時器。
(2) 舵機輸出函數。輸入參數為舵機期望的旋轉角度,自動計算出對應的PWM高電平時間并更改TIM3對應通道的比較寄存器數值。
(3) 超聲波觸發函數。拉高對應組的TRIG信號15 μs,然后等到ECHO信號由低變高,記錄TIM4當前值作為ECHO信號上升沿時刻,并打開ECHO管腳的EXTI中斷。
(4) 超聲波中斷函數。進入此函數表明ECHO信號下降沿到來,記錄TIM4當前值作為ECHO下降沿時刻,并與ECHO信號上升沿時刻進行比較,得到超聲波傳播時間。
(5) 超聲波距離計算函數。根據測量的超聲傳播時間(單位μs)計算障礙物距離(單位ms)。
(6) 測速函數。周期調用此函數,讀取TIM2的計數值,根據2次計數值得差可以得到單位時間的脈沖數,再轉換為小車的前進速度。
(7) MEMS陀螺儀函數。對UART1接收的數據包,進行校驗,轉換,獲得小車三維加速度、速度、角度信息。
低碳避障實驗小車的實時控制程序包含背景任務程序和中斷處理程序2部分。主程序在完成初始化工作后,在無限循環中不斷調用執行背景任務程序。由于背景任務程序優先級最低,隨時可能被中斷處理程序打斷,因此適合執行非實時性的事務處理,如按鍵、LED的交互等。中斷處理程序包含串口接收中斷和實時控制終端。串口接收中斷用于接收MEMS陀螺儀模塊的數據包,每次接收一個字節并存入接收緩沖區內,供實時控制中斷讀取。實時控制中斷是最核心的實時任務,基于TIM3定時器的PWM周期溢出中斷,也就是每間隔20 ms進入一次該中斷,并完成一次控制流程,其流程如圖6所示。實時中斷首先獲取各個傳感器獲得的測量結果,然后調用用戶編寫的控制算法,實現避障、導航、能量管理等功能,并計算出舵機的角度指令,最后更新舵機的PWM輸出數值。實時中斷是周期執行的,因此可以在小車行進過程中實現連續的實時控制。

圖6 實時控制中斷流程
低碳避障實現小車電控平臺具有豐富的傳感器和強大的運算能力,可以靈活設計不同的控制算法實現各種任務。實驗小車的功能的實現如下:
(1) 小車能量管理。由于驅動小車的重物的重力勢能有限,為了延長小車行進距離,需要進行能量管理。設定2個臨界速度v1和v2,且v1 (2) 避障。超聲波距離傳感器可以探測到各個方向上障礙物的距離,某個方向上探測到障礙物距離比較近,則小車向相反方向轉向以避開。 (3) 導航。已知初始位置和方向,根據行駛過程中陀螺儀的角速度、角位移及行駛距離,可以計算小車的行進軌跡,從而實現慣性導航[12]。 (4) 沿墻行駛。設定一個與墻壁固定的距離,通過小車側面的超聲波傳感器測量到墻壁的距離,與設定的距離進行比較得到距離偏差,調整轉向輪角度以減少偏差。 將各種功能綜合應用還能夠實現各種更加復雜的任務,例如跨越坡道、搜索、清障、圖形繪制等。測試表明,該電控系統功能豐富、編程靈活、工作可靠、操作簡單,可以在大學生創新訓練及工程實踐等教學中推廣使用。圖7是低碳避障小車的實地測試場景。 圖7 低碳避障小車測試 針對重力驅動的低碳實驗小車的自動行駛需求,設計了一種以高性能的STM32F103C8T6型單片機為核心的電控裝置。電控系統配置了轉向輪舵機、離合器舵機、超聲波傳感器組、光電測速傳感器和MEMS陀螺儀。充分利用單片機的硬件定時器、計數器、PWM、外部中斷、USART等功能實現了與各傳感/執行元件的接口。根據各模塊的工作原理設計了控制器的硬件驅動程序,并在此基礎上,構建了實時控制程序框架。實際測試表明,該電控裝置原理直觀、接口豐富、編程方便、操作簡單、運行可靠,能夠適應多種不同控制任務的要求。在教學中的應用表明,這套實驗系統可以激發學生的興趣,綜合應用機電專業知識,可以滿足創新實驗和工程實踐的需求。 References) [1] 余熾業,宋躍,雷瑞庭. 基于STC12C5A60S2的智能循跡小車[J]. 實驗室研究與探索,2014,33(11):46-49, 121. [2] 趙韓,尹曉紅,吳焱明. 非完整約束AGV軌跡跟蹤的非線性預測控制[J]. 中國機械工程,2011(6):681-686. [3] 曾岑,陳進,蔣玉杰. 智能型室內清潔機器人的研究和發展探析[J]. 機械制造,2008(10):63-67. [4] 高寧,彭力,陳凱健. 糧倉環境檢測智能巡檢小車研制[J]. 現代電子技術,2010(1):153-155, 159. [5] 劉鵬飛. 基于無線傳感器網絡的聲源目標搜尋多機器人系統[D]. 哈爾濱:哈爾濱工業大學,2010. [6] 李鵬,扈文莊,曾莉. 單向離合器軸承的工作原理及應用[J]. 軸承,2001(9):10-12, 47. [7] 楊偉,肖義平. 基于STM32F103C8T6單片機的LCD顯示系統設計[J]. 微型機與應用,2014(20):29-31, 34. [8] 韓慶瑤,洪草根,朱曉光,等. 基于AVR單片機的多舵機控制系統設計及仿真[J]. 計算機測量與控制,2011(2):332-334, 349. [9] 張偉,陳迎,韓麗娜,等. 智能小車系統的設計[J]. 實驗室研究與探索,2011,30(9):53-57, 62. [10] 陳晨,趙文宏,徐慧鑫, 等. 基于卡爾曼濾波的MEMS陀螺儀漂移補償[J]. 機電工程,2013(3):311-313, 321. [11] 董靖川, 王太勇, 陸鋼慶, 等. 基于Simulink的開放式伺服控制實驗裝置設計[J]. 實驗技術與管理,2016, 33(9):126-129. [12] 黃洪加. 基于慣性傳感器的室內慣性導航與定位系統[J]. 單片機與嵌入式系統應用,2015(2):7-9,43. Design on electric control for low-carbon and obstacle-avoiding experimental car based on STM32 Dong Jingchuan, Zhang Zhao, Wen Yang, Dou Yixi,Zhao Pengfei, Wang Xing (School of Mechanical Engineering, Tianjin University, Tianjin 300354, China) By using SCM as the core control circuit, the intelligent obstacle avoidance and the energy management are realized. The electric control system is based on the STM32F103C8T6 32-bit ARM SCM as the core. The steering gear and the clutch actuator are configured as the actuating elements, and by using the ultrasonic sensor group, photoelectric speed sensor and MEMS gyroscope as the feedback elements, the car running trajectory and speed are controlled. The functions such as the PWM control of the steering gear and ultrasonic distance measuring, gyroscope reading, speed measurement, etc., are realized by using the STM32 SCM built-in hardware timer, USART and interruptive function. The test shows that the principle of the electronic control device of the carbon-free obstacle-avoiding experimental car is intuitive, the interface is rich, the programming is convenient, and the operation is simple and reliable, which can meet the teaching needs of the innovative experiment and engineering practice for the mechanical and electrical engineering courses. low-carbon car; STM32; ultrasonic distance measuring; steering gear 2017-05-17 國家自然科學基金項目(51605328);江蘇省工業裝備數字制造及控制技術重點實驗室開放研究基金課題(DM2015001);天津大學實驗室建設與管理改革項目 董靖川(1983—),男,天津,博士,工程師,研究方向為機電一體化及數控技術. E-mail:new_lightning@aliyun.com 10.16791/j.cnki.sjg.2017.12.011 TP273 A 1002-4956(2017)12-0045-05
5 結語