引言
隨著社會(huì)進(jìn)步,電子消費(fèi)產(chǎn)品的需求越來越高,遙控智能車輛以及在智能化車輛基礎(chǔ)上開發(fā)出來的產(chǎn)品已廣泛應(yīng)用到自動(dòng)化物流運(yùn)輸?shù)阮I(lǐng)域。目前,遙控智能車輛大多采用無線傳輸方式,而無線傳輸逐漸取代有線傳輸不僅是因?yàn)椤盁o線”,更因?yàn)樵诎惭b、增減節(jié)點(diǎn)方面都比有線方式方便、快捷,因此得到了廣泛的應(yīng)用。
本設(shè)計(jì)首先采集手持遙控端的傾角信息并進(jìn)行處理、生成指令,然后無線發(fā)送給智能小車,賦予智能小車更靈活的運(yùn)動(dòng)狀態(tài)和更寬廣的運(yùn)動(dòng)范圍。設(shè)計(jì)靈活,操作方便,控制穩(wěn)定,制作成本低,可應(yīng)用于視線可觀察但人體涉及不到的區(qū)域,可制作成高端智能玩具,或應(yīng)用于工業(yè)控制,與實(shí)際相結(jié)合,有良好的現(xiàn)實(shí)意義和市場(chǎng)經(jīng)濟(jì)價(jià)值。
1、系統(tǒng)硬件電路設(shè)計(jì)
采用整體設(shè)計(jì)的方法進(jìn)行設(shè)計(jì),系統(tǒng)硬件主要由兩大部分構(gòu)成,即以NUCLEO-L053為控制核心的手持遙控端和以STM32F103C8Tx為控制核心的智能小車。手持遙控端是以ADXL345、OLED12864與nRF24L01為基礎(chǔ)的檢測(cè)傾角裝置,顯示參數(shù)裝置和無線發(fā)射裝置。采用的MCU為STM32L053R8T6,由ADXL345不斷檢測(cè)手持設(shè)備的姿態(tài),在OLED上顯示傾角值,傳給MCU。MCU把處理好的數(shù)據(jù)轉(zhuǎn)為小車動(dòng)作指令,最后通過nRF24L01模塊發(fā)射給小車。
小車以nRF24L01和L298N為基礎(chǔ),采用的MCU為STM32F103C8Tx,通過nRF24L01模塊接收遙控設(shè)備發(fā)送的數(shù)據(jù)包,然后把數(shù)據(jù)包傳給MCU進(jìn)行處理,MCU把處理好的數(shù)據(jù)包轉(zhuǎn)換為相應(yīng)指令,由STM32兩路定時(shí)器通道產(chǎn)生兩路PWM波控制電機(jī)驅(qū)動(dòng)L298N,從而實(shí)現(xiàn)對(duì)小車運(yùn)動(dòng)狀態(tài)的調(diào)整。并結(jié)合NUCLEO-L053板載獨(dú)立按鍵對(duì)ADXL345校準(zhǔn)和OLED再次初始化,從而增強(qiáng)產(chǎn)品的可靠性、穩(wěn)定性、功能性優(yōu)勢(shì)。
1.1、手持遙控端電路設(shè)計(jì)
按照模塊化設(shè)計(jì)思想,手持遙控端主要由傾角傳感器模塊ADXL345、遙控端控制模塊NUCLEO-L053、無線收發(fā)模塊nRF24L01、液晶顯示模塊OLED12864、電源模塊等構(gòu)成。傾角傳感器模塊ADXL345主要用于檢測(cè)手持遙控端的傾角狀態(tài),并將傾角信息傳給遙控端控制模塊NUCLEO-L053進(jìn)行處理,生成指令通過無線收發(fā)模塊nRF24L01發(fā)送給智能小車。液晶顯示模塊OLED12864進(jìn)行角度、加速度等信息顯示,電源模塊給各功能模塊供電,保證這些模塊可正常工作。本設(shè)計(jì)引入卡爾曼濾波算法對(duì)手持遙控端的狀態(tài)角度進(jìn)行優(yōu)化,能夠有效減少輸出信號(hào)的毛刺波動(dòng),避免小車運(yùn)行過程中頻繁出現(xiàn)卡頓現(xiàn)象,從而讓小車的行駛更平滑。手持遙控端設(shè)計(jì)框圖如圖1所示。
圖1 手持遙控端設(shè)計(jì)框圖
傾角傳感器模塊使用ADI公司生產(chǎn)的基于iMEMS技術(shù)的3軸、數(shù)字輸出傾角傳感器ADXL345。該模塊具有標(biāo)準(zhǔn)的I2C或SPI數(shù)字接口及高分辨率等特征,自帶32級(jí)FIFO存儲(chǔ),是目前廣泛使用的數(shù)字傾角傳感器。傾角傳感器產(chǎn)生經(jīng)過內(nèi)部AD轉(zhuǎn)換電路后輸出的數(shù)字信號(hào),計(jì)算導(dǎo)出加速度信息。在具體工作時(shí),傾角傳感器會(huì)因微小振動(dòng)產(chǎn)生噪聲,此時(shí)需要卡爾曼濾波與加速度計(jì)相互作用,調(diào)整參數(shù)將誤差降到最小。
卡爾曼濾波(KalmanFiltering)是一種利用線性系統(tǒng)狀態(tài)方程,通過系統(tǒng)輸入輸出觀測(cè)數(shù)據(jù),對(duì)系統(tǒng)狀態(tài)進(jìn)行最優(yōu)估計(jì)的算法。在本設(shè)計(jì)中,主要對(duì)角度信息進(jìn)行最優(yōu)估計(jì),分為如下4步:
(1)根據(jù)k-1時(shí)刻的最優(yōu)角度值及偏差預(yù)估k時(shí)刻的角度值(估計(jì)值);
(2)根據(jù)k-1時(shí)刻的最優(yōu)角度值偏差與k時(shí)刻的估計(jì)值偏差得到k時(shí)刻估計(jì)值的高斯白噪聲;
(3)根據(jù)k時(shí)刻測(cè)量值與估計(jì)值的協(xié)方差判定權(quán)重大小,得到最優(yōu)角度值;
(4)根據(jù)k時(shí)刻的最優(yōu)角度值及偏差預(yù)估k+1時(shí)刻的角度值(估計(jì)值)。通過循環(huán)迭代就可以得到最優(yōu)的狀態(tài)角度估計(jì)值。
NUCLEO-L053為ST推出的一種基于Cortex-M0+內(nèi)核的遙控端控制模塊,其CPU最高系統(tǒng)時(shí)鐘可達(dá)32MHz,可充分滿足本設(shè)計(jì)所用的模塊時(shí)鐘頻率;內(nèi)含64KBFlash和8KBRAM,可提供足夠大的堆??臻g,滿足復(fù)雜程序;具有本設(shè)計(jì)所需的I2C、SPI、USB全速接口,提供MCU和模塊間高速的通信方式;板載獨(dú)立按鍵和LED,可供用戶自定義使用。
無線收發(fā)模塊nRF24L01工作在2.4G的全球開放免許可ISM頻段,GFSK調(diào)制,工作速率高達(dá)2Mb/s且抗干擾能力強(qiáng),擁有多達(dá)125個(gè)可選頻道,可以滿足多點(diǎn)通信和調(diào)頻通信的需求。采用SPI方式進(jìn)行手持遙控端無線收發(fā)模塊nRF24L01與控制模塊NUCLEO-L053之間的連接。ADXL345與控制模塊的連接如圖2所示。
圖2 ?ADXL345與控制模塊連接圖
1.2、智能小車電路設(shè)計(jì)
智能小車主要由無線收發(fā)模塊nRF24L01,小車控制模塊STM32F103C8Tx,電機(jī)驅(qū)動(dòng)模塊L298N,電源模塊等組成。無線收發(fā)模塊接收手持遙控端發(fā)出的控制指令,傳送給小車控制模塊進(jìn)行處理,由STM32F103C8Tx的定時(shí)器4產(chǎn)生對(duì)應(yīng)的兩路PWM波,調(diào)節(jié)L298N驅(qū)動(dòng)兩臺(tái)直流電機(jī)完成對(duì)應(yīng)動(dòng)作。智能小車的設(shè)計(jì)框圖如圖3所示。
圖3 ?智能小車設(shè)計(jì)框圖
STM32F103C8Tx是目前應(yīng)用非常廣泛的一款ARM芯片,采用Cortex-M3內(nèi)核,擁有16KB~1MBFlash存儲(chǔ),高達(dá)72MHz的CPU運(yùn)行速率,多種控制外設(shè),USB全速接口和CAN等。在本設(shè)計(jì)中用來處理nRF24L01接收的數(shù)據(jù)包、控制L298N電機(jī)驅(qū)動(dòng)模塊等。
電機(jī)驅(qū)動(dòng)使用L298N驅(qū)動(dòng)兩臺(tái)直流電機(jī)。此款芯片具有工作電壓高,輸出電流大等特點(diǎn),額定功率為25W。本設(shè)計(jì)電機(jī)驅(qū)動(dòng)使用6節(jié)AA電池,輸入電壓為9.5V,可直接驅(qū)動(dòng)兩臺(tái)電機(jī)。通過引腳A,B輸入定時(shí)器4產(chǎn)生的兩路PWM信號(hào)對(duì)電機(jī)進(jìn)行調(diào)速控制。L298N模塊驅(qū)動(dòng)電路如圖4所示。
圖4 ?L298N模塊驅(qū)動(dòng)電路圖
為保證小車的運(yùn)行速度,無需進(jìn)行調(diào)速,全速行駛,加在L298N驅(qū)動(dòng)上的電壓為6~12V,而STM32需要的最大電壓為3.3V,為了節(jié)省資源,減少電源模塊,需要降壓。選用AMS1117芯片降壓[10]。電源模塊降壓電路如圖5所示。
圖5 降壓電路圖
2、系統(tǒng)軟件設(shè)計(jì)
本系統(tǒng)軟件程序設(shè)計(jì)由兩大部分組成,即手持遙控端軟件程序和智能小車軟件程序。手持遙控端軟件程序首先上電進(jìn)行初始化,主要是ADXL345模塊初始化,然后系統(tǒng)正常工作。ADXL345模塊不斷檢測(cè)傾斜角度的改變,控制模塊對(duì)傾角傳感器姿態(tài)數(shù)據(jù)進(jìn)行處理,將加速度數(shù)據(jù)轉(zhuǎn)換成傾角角度,并進(jìn)行卡爾曼濾波,判斷傾斜角度是否超出閾值,若超過則發(fā)送小車運(yùn)動(dòng)指令。智能小車軟件程序接收手持遙控端的指令進(jìn)行處理之后驅(qū)動(dòng)小車,接收端對(duì)接收到的指令進(jìn)行判斷,控制小車作出前進(jìn)、后退、轉(zhuǎn)彎等動(dòng)作。軟件程序流程如圖6所示。
圖6 軟件程序流程圖
完成軟硬件設(shè)計(jì)之后就開始對(duì)本設(shè)計(jì)進(jìn)行系統(tǒng)整體測(cè)試工作。通過改變手持遙控端的傾角信息,可以在OLED上正常顯示傳感器姿態(tài)信息,無線收發(fā)裝置可以正常收發(fā)指令,控制智能小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)等運(yùn)動(dòng)狀態(tài)。手持遙控端和智能小車的實(shí)物圖如圖7所示。
圖7 ?手持遙控端和智能小車實(shí)物圖
3、結(jié)語
本文應(yīng)用傾角信息采集模塊與無線數(shù)據(jù)傳輸模塊設(shè)計(jì)了一種重力感應(yīng)無線智能遙控小車,并重點(diǎn)介紹了手持遙控端與智能小車的硬件電路與軟件程序設(shè)計(jì)。手持遙控端采集傾角信息,經(jīng)卡爾曼濾波處理,控制模塊發(fā)出指令,通過無線方式控制智能小車完成相應(yīng)動(dòng)作。經(jīng)測(cè)試,所設(shè)計(jì)的重力感應(yīng)無線智能遙控小車操作靈活,使用方便,且具有較高的穩(wěn)定性與廣闊的應(yīng)用前景。
評(píng)論