郭海麗
(衡水學(xué)院電子信息工程學(xué)院,河北衡水 053000)
如今的自平衡車已成為人們出行的交通工具,平衡車涵蓋了嵌入式技術(shù)和現(xiàn)代工業(yè)設(shè)計技術(shù),是電子技術(shù)的結(jié)晶。平衡車可以在很小空間中運(yùn)作,也可以成為出行的代步工具,其具有低功耗、環(huán)保、方便、高效等特點(diǎn),受到人們越來越廣泛的關(guān)注。自平衡車沒有其他交通工具的固有機(jī)械構(gòu)造,通過軟件程序與硬件結(jié)合的方式實(shí)現(xiàn)其穩(wěn)定性,所用算法多種多樣,實(shí)現(xiàn)的效果越來越顯著。雙輪自平衡車將單片機(jī)技術(shù)、自動控制及控制算法有機(jī)的結(jié)合到一起,是研究控制程序以及傳感器應(yīng)用的理想平臺。本設(shè)計通過利用STM32 主控芯片和MPU6050 芯片,實(shí)現(xiàn)兩輪小車的自平衡,并通過2.4G 無線傳輸模塊實(shí)現(xiàn)對小車方向的控制。
通過改變所用電機(jī)的轉(zhuǎn)動速度及方向?qū)崿F(xiàn)小車的自平衡,而且可以用無線遙控進(jìn)行控制,達(dá)到以下要求。
(1)可通過串口屏對小車狀態(tài)進(jìn)行無線調(diào)節(jié),控制小車運(yùn)動。
(2)用可調(diào)電阻控制小車上機(jī)械臂的運(yùn)動,用來拿取并放置物體。
以穩(wěn)定、安全、可靠為設(shè)計原則。平衡車已逐漸進(jìn)入人們的生活,所以其車體的穩(wěn)定性至關(guān)重要,其他一切操作都要在保證車體穩(wěn)定的前提下進(jìn)行,在設(shè)計時要保證車體重心在車輪中軸線上。同時提高對角度測量的準(zhǔn)確性,以此保證車體的穩(wěn)定。隨后完成小車的前后運(yùn)動及對機(jī)械臂抓取物體的控制等。
小車整體從機(jī)械結(jié)構(gòu)上看,自下而上依次為電機(jī)驅(qū)動層、應(yīng)用控制層、整體受力層。電機(jī)驅(qū)動層直接控制電機(jī)輪子的運(yùn)動,驅(qū)動電機(jī)使其實(shí)現(xiàn)正反轉(zhuǎn)及加減速,以此來達(dá)到小車的平衡狀態(tài)。當(dāng)然電機(jī)驅(qū)動層只是被動接受命令,真正的指令由控制層發(fā)出。它通過安裝在小車車體及車輪電機(jī)上的傳感器來獲取到小車當(dāng)前的狀態(tài)。經(jīng)處理運(yùn)算后發(fā)出正確的命令來驅(qū)動電機(jī)運(yùn)動,所以該層為小車控制的核心。受力層顧名思義為整個車體的承重部分。受力層如果穩(wěn)定堅固,小車本身能承載的重量也越重。
該系統(tǒng)以STM32F103RCT6 單片機(jī)為整個系統(tǒng)的核心,通過集成加速度與角度的六軸傳感器MPU6050 來獲取小車當(dāng)前狀態(tài)。MPU6050 該芯片采用IIC 通信,減少STM32 芯片IO 口的占用。小車整體主要由主控部分、電源模塊、無線傳輸模塊、六軸傳感器姿態(tài)采集模塊、平衡相關(guān)驅(qū)動等組成。系統(tǒng)結(jié)構(gòu)框圖如圖1 所示。
主控芯片和周圍器件組成的電路是控制的核心。其作用相當(dāng)于人類的頭腦,一切命令都由它傳遞。本設(shè)計所用的主控芯片是STM32F103RCT6。單片機(jī)最小系統(tǒng)由復(fù)位、下載、系統(tǒng)時鐘及整流濾波等4 部分組成。
圖1 系統(tǒng)整體結(jié)構(gòu)
本系統(tǒng)采用12 V 可充電鋰電池組進(jìn)行供電,通過降壓模塊逐級降壓,得到系統(tǒng)各模塊的工作所需電壓。各模塊之間電壓不同,電機(jī)運(yùn)轉(zhuǎn)所需要的電壓為12 V,顯示電路、舵機(jī)驅(qū)動芯片需要5 V 電壓驅(qū)動,STM32 需要3.3 V 的電壓。因此為避免各電源間互相干擾,設(shè)計中采取了電容濾波措施。
NRF24L01 無線通信模塊的通信方式為SPI 通信,該模塊功耗非常低,且對環(huán)境要求相對較小。處于發(fā)射模式時,工作電流僅為9 mA;處于接收模式時,工作電流為12.3 mA。由于此模塊對電源及信號要求較高,所以在供電部分及天線端添加濾波電容。保證信號傳輸?shù)目煽啃?。另外,該芯片天線周圍不能有金屬(敷銅、走線等),NRF24L01 模塊電路如圖2 所示。
圖2 NRF24L01 模塊電路
本設(shè)計中的MPU6050 傳感器是整個設(shè)計尤為重要的一部分,相當(dāng)于人的雙眼,用于獲取當(dāng)前車體的狀態(tài),它的準(zhǔn)確程度直接決定小車整體的穩(wěn)定性。其中INT 引腳每5 ms 產(chǎn)生一次中斷,將其直接接入單片機(jī)IO 口,為程序提供5 ms 間隔的中斷。通過IIC 接口直接輸出經(jīng)過處理的四元數(shù),無需額外轉(zhuǎn)換,使用起來更加方便,MPU6050 傳感器電路如圖3 所示。
圖3 MPU6050 傳感器電路
軟件設(shè)計部分主要由MPU6050 芯片、人機(jī)交互界面、數(shù)據(jù)采集、電機(jī)驅(qū)動等構(gòu)成。軟件部分通過MPU6050 每5 ms 提供的外部中斷執(zhí)行控制函數(shù)。本設(shè)計軟件總體流程如圖4 所示,系統(tǒng)上電后先執(zhí)行初始化。然后進(jìn)入主循環(huán)。一旦有外部中斷產(chǎn)生,則開始檢測處理,控制電機(jī)保持小車平衡,驅(qū)動舵機(jī)控制機(jī)械臂運(yùn)動。
圖4 系統(tǒng)軟件流程
本設(shè)計以STM32F103RCT6 單片機(jī)為主控芯片,實(shí)現(xiàn)了對小車的平衡控制;且可以用遙控控制小車運(yùn)動,及機(jī)械臂抓取物體的功能。上電后小車保持平衡狀態(tài),用手輕輕推動小車,車體經(jīng)過晃動后仍能保持平衡狀態(tài)。通過無線遙控發(fā)送前進(jìn)后退指令控制小車,小車在接收到命令后可以做出正確的響應(yīng)。同時也可用遙控分別控制車上4 個舵機(jī)的運(yùn)動,來抓取物體。經(jīng)過多次反復(fù)的測試,小車平衡性良好,對遙控指令可以及時準(zhǔn)確地做出響應(yīng),整體系統(tǒng)穩(wěn)定性強(qiáng),具有一定的實(shí)際應(yīng)用價值。