摘 要:文章介紹了一種利用重力感應(yīng)技術(shù)來(lái)控制動(dòng)作的智能遙控小車(chē),并賦予了小車(chē)一定的對(duì)不同路況進(jìn)行智能感知并采取簡(jiǎn)單應(yīng)對(duì)措施的能力。本設(shè)計(jì)主要利用ADXL345傳感器實(shí)現(xiàn)智能感知,通過(guò)脈寬調(diào)制(PWM)方式對(duì)電機(jī)轉(zhuǎn)速進(jìn)行調(diào)節(jié),從而實(shí)現(xiàn)對(duì)小車(chē)的動(dòng)作控制。我們通過(guò)改變遙控器的姿態(tài),即可實(shí)現(xiàn)小車(chē)的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)。
關(guān)鍵詞:重力感應(yīng);ADXL345傳感器;智能感知
引言
重力感應(yīng)技術(shù)在我們的日常生活中得到了越來(lái)越廣泛的應(yīng)用,例如,工業(yè)機(jī)器人、定點(diǎn)設(shè)備、醫(yī)療器械、智能電動(dòng)車(chē)、手機(jī)和平板電腦都用到了該技術(shù)。其獨(dú)有的三維姿態(tài)變化控制方式,能夠帶給操作者更加直觀的感受。文章所介紹的智能車(chē)不僅能通過(guò)手中的遙控器控制小車(chē),還能讓小車(chē)在一定程度上對(duì)不同平整度地形進(jìn)行感知,實(shí)現(xiàn)自身對(duì)轉(zhuǎn)速的控制。
1 總體硬件
硬件系統(tǒng)確定包括:
(1)手持遙控設(shè)備。手持遙控設(shè)備由ADXL345三軸加速度傳感器、STM32單片機(jī)、無(wú)線(xiàn)模塊、LCD屏組成。ADXL345傳感器為重力感應(yīng)單元,STM32作為控制單元,NRF24L01作為通信單元用于遙控器和小車(chē)之間的數(shù)據(jù)傳遞,TFTLCD實(shí)時(shí)顯示遙控器姿態(tài)變化相對(duì)應(yīng)的加速度、角度等參數(shù)。
(2)被控對(duì)象。被控對(duì)象由小車(chē)底盤(pán)、直流電機(jī)、L298N驅(qū)動(dòng)模塊、STM32最小系統(tǒng)、NRF24L01無(wú)線(xiàn)模塊以及ADXL345三軸加速度模塊組成。小車(chē)采用8節(jié)5號(hào)可充電鎳氫電池(共9.6V電源)供電,STM32最小系統(tǒng)板接入L298N驅(qū)動(dòng)板上的5V電源和GND接口,與9.6V供電電路共地。在小車(chē)車(chē)架左側(cè)的水平位置處固定好ADXL345三軸加速度傳感器模塊。
圖1 智能小車(chē)控制系統(tǒng)示意圖
由圖1可知,手持遙控器的姿態(tài)變化可以通過(guò)固定在遙控器上面的ADXL345三軸加速度傳感器檢測(cè)出來(lái)。單片機(jī)通過(guò)IIC模擬接口讀取姿態(tài)參數(shù)(轉(zhuǎn)角),在LCD屏上實(shí)時(shí)顯示出來(lái),并把相關(guān)指令傳遞到NRF24L01無(wú)線(xiàn)模塊,由該無(wú)線(xiàn)模塊發(fā)送給小車(chē)接收端,以實(shí)現(xiàn)對(duì)小車(chē)的動(dòng)作控制。固定在小車(chē)上的另一個(gè)ADXL345加速度傳感器也可以在小車(chē)行駛過(guò)程中感知z向加速度的變化,用于對(duì)不同地形、不同路面的平整度進(jìn)行感知與檢測(cè),以實(shí)現(xiàn)對(duì)小車(chē)行駛速度的控制。
2 軟件設(shè)計(jì)
控制系統(tǒng)的軟件設(shè)計(jì)主要是利用MDK5開(kāi)發(fā)軟件進(jìn)行STM32單片機(jī)的程序編寫(xiě)。手持遙控器部分的相關(guān)程序包括:姿態(tài)檢測(cè)子程序、姿態(tài)參數(shù)處理子程序、NRF24L01無(wú)線(xiàn)模塊通信子程序。被控小車(chē)部分的相關(guān)程序包括:路面檢測(cè)子程序、小車(chē)運(yùn)動(dòng)方式控制子程序。
2.1 姿態(tài)檢測(cè)子程序
手持遙控設(shè)備的傾斜方向由ADXL345傳感器來(lái)檢測(cè),手控器向不同方向的傾斜角度可通過(guò)重力加速度在檢測(cè)坐標(biāo)軸上的三個(gè)分量求得。
2.2 姿態(tài)參數(shù)處理子程序
STM32單片機(jī)對(duì)數(shù)據(jù)進(jìn)行讀取并解析,轉(zhuǎn)換為角度變化,對(duì)各軸所對(duì)應(yīng)的數(shù)據(jù)進(jìn)行判斷,根據(jù)不同的角度范圍,通過(guò)無(wú)線(xiàn)模塊向小車(chē)發(fā)送不同的控制指令,與此同時(shí)將角度值實(shí)時(shí)顯示在LCD屏上,如表1所示。
2.3 路面檢測(cè)子程序
小車(chē)上的ADXL345傳感器能夠在運(yùn)動(dòng)過(guò)程中靈敏檢測(cè)各軸方向上的加速度變化。由于小車(chē)在不同平整度的路面上行駛z軸方向上的加速度變化最明顯。通過(guò)對(duì)z軸加速度變化情況的獲取,即可判斷出加速度的變化。試驗(yàn)中,我們分別選擇了平滑水泥路面、普通磚塊路面、鵝卵石路面作不同平整度的比較,實(shí)時(shí)檢測(cè)z軸加速度的變化情況。在實(shí)驗(yàn)中發(fā)現(xiàn),平整路面上,z軸加速度維持在440mg左右;在磚塊路面上,約在430-510mg的范圍內(nèi)波動(dòng);在鵝卵石路面上,加速度變化范圍更大,最大已超過(guò)了600mg,最小達(dá)到320mg。
2.4 小車(chē)動(dòng)作控制子程序
STM32單片機(jī)定時(shí)器2和定時(shí)器3的四個(gè)通道可輸出8路PWM波,通過(guò)調(diào)節(jié)輸出的占空比,來(lái)控制電機(jī)的正反轉(zhuǎn)以及調(diào)速,進(jìn)而實(shí)現(xiàn)遙控器對(duì)小車(chē)的運(yùn)動(dòng)控制:前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止、加速、減速等。單片機(jī)根據(jù)小車(chē)對(duì)不同地形的智能感知,在平整路面(Az在440mg左右)上輸出占空比為80%的PWM波,430-510mg的范圍內(nèi)輸出60%的PWM波,600mg及以上輸出占空比為40%的PWM波。
3 功能實(shí)現(xiàn)
我們對(duì)本次設(shè)計(jì)進(jìn)行了相關(guān)試驗(yàn),基本功能都能夠得以實(shí)現(xiàn)。遙控器前傾,小車(chē)前進(jìn),而且將前傾角度分為三個(gè)區(qū)間,對(duì)應(yīng)小車(chē)的三種前進(jìn)速度。隨角度增大,小車(chē)加速;隨傾角減小,小車(chē)減速。遙控器左傾,小車(chē)左轉(zhuǎn),同樣將左傾角度分為三個(gè)區(qū)間,三個(gè)區(qū)間對(duì)應(yīng)小車(chē)的三種轉(zhuǎn)彎半徑:50cm,20cm,原地轉(zhuǎn)彎,如表2所示。可根據(jù)所在環(huán)境的空間大小自行選擇不同的轉(zhuǎn)彎方式。并且在惡劣路況下可實(shí)現(xiàn)適當(dāng)?shù)臏p速,可提高小車(chē)環(huán)境能力。
參考文獻(xiàn)
[1]唐海玲,趙春雨,宋家友.基于MMA7361加速度傳感器的重力感應(yīng)遙控小車(chē)的設(shè)計(jì)[J].研究動(dòng)態(tài),2013.
[2]李曉,劉公致,張鈺.基于重力感應(yīng)的無(wú)線(xiàn)智能小車(chē)[J].技術(shù)與應(yīng)用,2015.
[3]程斌杰,魏逢原,金孟加.基于加速度傳感器的智能小車(chē)路況自動(dòng)測(cè)量系統(tǒng)[J].機(jī)電工程,2012,29(10):1163-1166.