李志瑞++申慶超
摘 要:針對傳統智能小車遙控端是物理按鍵或觸摸屏按鍵控制的缺點,文中基于STM32設計了一款重力感應無線智能遙控小車,該系統由手持遙控端與智能小車組成。其中手持遙控端利用傾角傳感器ADXL345檢測傾角信息,經卡爾曼濾波之后,送入STM32進行處理并轉換為相應指令,通過nRF24L01模塊無線發送給智能小車,由STM32F103C8Tx控制電機驅動模塊L298N驅動小車前進、后退、左轉、右轉等。文中設計的重力感應無線智能遙控小車引入卡爾曼濾波實現精確控制,具有簡單、直觀、方便、易操作等特點,應用前景廣泛。
關鍵詞:STM32控制器;無線;重力感應;傾角
中圖分類號:TP39;TN92.5 文獻標識碼:A 文章編號:2095-1302(2017)10-00-03
0 引 言
隨著社會進步,電子消費產品的需求越來越高,遙控智能車輛以及在智能化車輛基礎上開發出來的產品已廣泛應用到自動化物流運輸等領域。目前,遙控智能車輛大多采用無線傳輸方式,而無線傳輸逐漸取代有線傳輸不僅是因為“無線”,更因為在安裝、增減節點方面都比有線方式方便、快捷,因此得到了廣泛的應用[1]。
本設計首先采集手持遙控端的傾角信息并進行處理、生成指令,然后無線發送給智能小車,賦予智能小車更靈活的運動狀態和更寬廣的運動范圍。設計靈活,操作方便,控制穩定,制作成本低,可應用于視線可觀察但人體涉及不到的區域,可制作成高端智能玩具,或應用于工業控制,與實際相結合,有良好的現實意義和市場經濟價值[2]。
1 系統硬件電路設計
采用整體設計的方法進行設計,系統硬件主要由兩大部分構成[3],即以NUCLEO-L053為控制核心的手持遙控端和以STM32F103C8Tx為控制核心的智能小車。手持遙控端是以ADXL345、OLED12864與nRF24L01為基礎的檢測傾角裝置,顯示參數裝置和無線發射裝置。采用的MCU為STM32L053R8T6,由ADXL345不斷檢測手持設備的姿態,在OLED上顯示傾角值,傳給MCU。MCU把處理好的數據轉為小車動作指令,最后通過nRF24L01模塊發射給小車。小車以nRF24L01和L298N為基礎,采用的MCU為STM32F103C8Tx,通過nRF24L01模塊接收遙控設備發送的數據包,然后把數據包傳給MCU進行處理,MCU把處理好的數據包轉換為相應指令,由STM32兩路定時器通道產生兩路PWM波控制電機驅動L298N,從而實現對小車運動狀態的調整。并結合NUCLEO-L053板載獨立按鍵對ADXL345校準和OLED再次初始化,從而增強產品的可靠性、穩定性、功能性優勢。
1.1 手持遙控端電路設計
按照模塊化設計思想[4],手持遙控端主要由傾角傳感器模塊ADXL345、遙控端控制模塊NUCLEO-L053、無線收發模塊 nRF24L01、液晶顯示模塊OLED12864、電源模塊等構成。傾角傳感器模塊ADXL345主要用于檢測手持遙控端的傾角狀態,并將傾角信息傳給遙控端控制模塊NUCLEO-L053進行處理,生成指令通過無線收發模塊nRF24L01發送給智能小車。液晶顯示模塊OLED12864進行角度、加速度等信息顯示,電源模塊給各功能模塊供電,保證這些模塊可正常工作。本設計引入卡爾曼濾波算法[5]對手持遙控端的狀態角度進行優化,能夠有效減少輸出信號的毛刺波動,避免小車運行過程中頻繁出現卡頓現象,從而讓小車的行駛更平滑。手持遙控端設計框圖如圖1所示。
傾角傳感器模塊使用ADI公司生產的基于iMEMS技術的3軸、數字輸出傾角傳感器ADXL345[6]。該模塊具有標準的I2C或SPI數字接口及高分辨率等特征,自帶32級FIFO存儲,是目前廣泛使用的數字傾角傳感器。傾角傳感器產生經過內部AD轉換電路后輸出的數字信號,計算導出加速度信息。在具體工作時,傾角傳感器會因微小振動產生噪聲,此時需要卡爾曼濾波與加速度計相互作用,調整參數將誤差降到最小。
卡爾曼濾波(Kalman Filtering)是一種利用線性系統狀態方程,通過系統輸入輸出觀測數據,對系統狀態進行最優估計的算法。在本設計中,主要對角度信息進行最優估計,分為如下4步:
(1)根據k-1時刻的最優角度值及偏差預估k時刻的角度值(估計值);
(2)根據k-1時刻的最優角度值偏差與k時刻的估計值偏差得到k時刻估計值的高斯白噪聲;
(3)根據k時刻測量值與估計值的協方差判定權重大小,得到最優角度值;
(4)根據k時刻的最優角度值及偏差預估k+1時刻的角度值(估計值)。通過循環迭代就可以得到最優的狀態角度估計值。
NUCLEO-L053為ST推出的一種基于Cortex-M0+內核的遙控端控制模塊[7],其CPU最高系統時鐘可達32 MHz,可充分滿足本設計所用的模塊時鐘頻率;內含 64 KB Flash和8 KB RAM,可提供足夠大的堆棧空間,滿足復雜程序;具有本設計所需的I2C、SPI、USB 全速接口,提供MCU和模塊間高速的通信方式;板載獨立按鍵和LED,可供用戶自定義使用。
無線收發模塊nRF24L01[8]工作在2.4 G的全球開放免許可ISM頻段,GFSK調制,工作速率高達2 Mb/s且抗干擾能力強,擁有多達125個可選頻道,可以滿足多點通信和調頻通信的需求。采用SPI方式進行手持遙控端無線收發模塊nRF24L01與控制模塊NUCLEO-L053之間的連接。ADXL345與控制模塊的連接如圖2所示。
1.2 智能小車電路設計
智能小車主要由無線收發模塊nRF24L01,小車控制模塊STM32F103C8Tx,電機驅動模塊L298N,電源模塊等組成。無線收發模塊接收手持遙控端發出的控制指令,傳送給小車控制模塊進行處理,由STM32F103C8Tx的定時器4產生對應的兩路PWM波,調節L298N驅動兩臺直流電機完成對應動作。智能小車的設計框圖如圖3所示。endprint
STM32F103C8Tx是目前應用非常廣泛的一款ARM芯片,采用Cortex-M3內核,擁有16 KB~1 MB Flash存儲,高達72 MHz的CPU運行速率,多種控制外設,USB全速接口和CAN等。在本設計中用來處理nRF24L01接收的數據包、控制L298N電機驅動模塊等。
電機驅動使用L298N驅動兩臺直流電機[9]。此款芯片具有工作電壓高,輸出電流大等特點,額定功率為25 W。本設計電機驅動使用6節AA電池,輸入電壓為9.5 V,可直接驅動兩臺電機。通過引腳A,B輸入定時器4產生的兩路PWM信號對電機進行調速控制。L298N模塊驅動電路如圖4所示。
為保證小車的運行速度,無需進行調速,全速行駛,加在L298N驅動上的電壓為6~12 V,而STM32需要的最大電壓為3.3 V,為了節省資源,減少電源模塊,需要降壓。選用AMS1117芯片降壓 [10]。電源模塊降壓電路如圖5所示。
2 系統軟件設計
本系統軟件程序設計由兩大部分組成,即手持遙控端軟件程序和智能小車軟件程序。手持遙控端軟件程序首先上電進行初始化,主要是ADXL345模塊初始化,然后系統正常工作。ADXL345模塊不斷檢測傾斜角度的改變,控制模塊對傾角傳感器姿態數據進行處理,將加速度數據轉換成傾角角度,并進行卡爾曼濾波,判斷傾斜角度是否超出閾值,若超過則發送小車運動指令。智能小車軟件程序接收手持遙控端的指令進行處理之后驅動小車,接收端對接收到的指令進行判斷,控制小車作出前進、后退、轉彎等動作。軟件程序流程如圖6所示。
完成軟硬件設計之后就開始對本設計進行系統整體測試工作。通過改變手持遙控端的傾角信息,可以在OLED上正常顯示傳感器姿態信息,無線收發裝置可以正常收發指令,控制智能小車的前進、后退、左轉、右轉等運動狀態。手持遙控端和智能小車的實物圖如圖7所示。
3 結 語
本文應用傾角信息采集模塊與無線數據傳輸模塊設計了一種重力感應無線智能遙控小車,并重點介紹了手持遙控端與智能小車的硬件電路與軟件程序設計。手持遙控端采集傾角信息,經卡爾曼濾波處理,控制模塊發出指令,通過無線方式控制智能小車完成相應動作。經測試,所設計的重力感應無線智能遙控小車操作靈活,使用方便,且具有較高的穩定性與廣闊的應用前景。
參考文獻
[1]張鵬,丁承君,閆彬.基于STM32的重力遙控智能車的控制系統設計[J].科技創新與應用,2016(2):77-77.
[2]樊龍.基于STM32的智能儀表數據采集系統的設計[D].太原:太原理工大學, 2014.
[3]李志瑞,申慶超.基于STM32的無線重力感應遙控系統設計[J].微型機與應用,2016,35(7):33-34.
[4]崔陽,郭旭東,羊壽南.基于STM32的無線智能車控制與數據采集系統設計[J].傳感器世界,2015,21(7):28-32.
[5]彭丁聰.卡爾曼濾波的基本原理及應用[J].軟件導刊,2009(11):32-34.
[6] Analog Devices Inc. ADXL345 Datasheet[EB/OL].[2008-11-01].http://www.alldatasheet.com/datasheet-pdf/pdf/254714/AD/ADXL345.html.
[7] STMicroelectronics.NUCLEO-L053R8Datasheet[EB/OL]. http://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-nucleo/nucleo-l053r8.html.
[8]訊通科技.nRF24L01中文資料[EB/OL].[2010-08-26]. https://wenku.baidu.com/view/f4a50f37ee06eff9aef80766.html.
[9] L298N中文資料[EB/OL].[2012-08-09]. https://wenku.baidu.com/view/f8fd41f2f61fb7360b4c6544.html?from=search.
[10] AMS1117 Datasheet[EB/OL].[2011-07-29].https://wenku.baidu.com/view/9f6fcab369dc5022aaea009d.html?from=search.endprint