孫亞飛 深圳信息職業(yè)技術(shù)學(xué)院機(jī)電工程學(xué)院
雙輪扭扭車是近年來國內(nèi)外迅速發(fā)展起來的一類代步工具,具有騎行方便、綠色環(huán)保、便于攜帶等特點,深受廣大青少年的喜愛,具有廣泛的應(yīng)用市場。
采用STM32F103系列微處理器及MPU6050姿態(tài)傳感器,設(shè)計并開發(fā)了一款雙輪扭扭車控制系統(tǒng),為各類扭扭車的開發(fā)提供一套可靠的控制系統(tǒng)。
下面以前進(jìn)控制為例,對扭扭車的平衡原理進(jìn)行說明。如圖1所示,當(dāng)騎行者腳部控制扭扭車向前傾斜一定角度時,扭扭車的姿態(tài)傳感器會實時采集左右兩邊車輪的姿態(tài)信息(角度和角速度),經(jīng)過主電路板控制器的處理,輸出相應(yīng)的電機(jī)控制量,驅(qū)動電機(jī)轉(zhuǎn)動向前行駛,抵消騎行者向前傾斜的姿勢,從而保持騎行者身體的平衡。
圖1 雙輪扭扭車平衡原理分析
此后,扭扭車的姿態(tài)傳感器定時采集左右兩邊車輪的姿態(tài)信息(角度和角速度),通過驅(qū)動電機(jī)轉(zhuǎn)動,使扭扭車的轉(zhuǎn)速能夠有效保證騎行者的身體平衡,并產(chǎn)生一定移動速度。
另外,在每一次定時采集姿態(tài)信息的循環(huán)中,還需要對電機(jī)控制量進(jìn)行PID閉環(huán)控制,使得電機(jī)的轉(zhuǎn)速達(dá)到所需控制轉(zhuǎn)速。與前進(jìn)控制方式相似,后退、左轉(zhuǎn)、右轉(zhuǎn)均通過對左右兩個車輪的不同轉(zhuǎn)速控制來實現(xiàn)移動和平衡。
基于雙輪扭扭車的平衡原理分析,本項目所設(shè)計的控制系統(tǒng)方案如下圖2所示。
首先由姿態(tài)傳感器測得左右兩個車輪的原始姿態(tài)信息,并將處理得到的姿態(tài)信息發(fā)送給主控芯片,主控芯片用此姿態(tài)信息計算出電機(jī)驅(qū)動信號,發(fā)送給電機(jī)驅(qū)動模塊產(chǎn)生電機(jī)驅(qū)動電流,驅(qū)動左右電機(jī)轉(zhuǎn)動,電機(jī)轉(zhuǎn)速測量傳感器測得左右電機(jī)的轉(zhuǎn)速,并將其發(fā)送給主控芯片,從而對電機(jī)轉(zhuǎn)速進(jìn)行PID閉環(huán)控制。之后,用定時中斷方式持續(xù)對雙輪扭扭車的姿態(tài)進(jìn)行測量和平衡控制,實現(xiàn)雙輪扭扭車的各種運(yùn)動控制。
圖2 雙輪扭扭車控制系統(tǒng)方案
基于圖2所示的控制系統(tǒng)方案,雙輪扭扭車控制系統(tǒng)硬件電路由三塊電路板構(gòu)成,包括一塊主板電路和兩塊副板電路,其硬件電路框圖如下圖3所示。
圖3 雙輪扭扭車硬件框圖
其主板電路主要由主控模塊,驅(qū)動模塊,霍爾信號采集模塊等構(gòu)成;副板電路則主要由主控模塊與姿態(tài)檢測模塊等構(gòu)成。
這樣設(shè)計電路板可以最大限度的合理運(yùn)用平衡車自身空間,為后期平衡車的外觀設(shè)計提供一定空間,使其在實用性之上更具美觀。
主電路板采用了STM32F103RCT6主控芯片,其最高工作頻率為72MHz,并集成了256KB Flash存儲器和20KB SRAM存儲器,且能夠產(chǎn)生多路PWM的高級定時器。
主電路板主要由如下電路模塊構(gòu)成:主板主控芯片模塊、主板電源模塊、電機(jī)驅(qū)動電路模塊等。主電路板的電路原理圖如圖4所示,所開發(fā)的主電路板實物圖如圖5所示。
圖4 主電路板電路原理圖
圖5 主電路板實物圖
副電路板采用了STM32F103C6T6主控芯片,該主控芯片集成了32KB的Flash存儲器,主要用于將采集到的姿態(tài)信息通過串口傳送到主控制板的主控芯片上,進(jìn)行姿態(tài)控制。
副電路板主要由如下電路模塊構(gòu)成:副板主控芯片模塊、副板電源模塊、姿態(tài)檢測模塊等。副電路板的電路原理圖如圖6所示,所開發(fā)的副電路板實物圖如圖7所示。
圖6 副電路板原理圖
圖7 副電路板實物圖
基于STM32的雙輪扭扭車控制系統(tǒng)的軟件開發(fā)包括主板應(yīng)用程序開發(fā)和副板應(yīng)用程序開發(fā)兩部分。
主板應(yīng)用程序總體框架由配置模塊和控制模塊兩部分構(gòu)成。其中,配置模塊是指在程序運(yùn)行前,需要預(yù)先對部分硬件電路進(jìn)行初始化配置的軟件程序模塊,如:時鐘配置模塊,I/O口配置模塊,串口配置模塊等;控制模塊是指在程序運(yùn)行過程中,通過對這些軟件程序的調(diào)用,實現(xiàn)一定的控制功能的程序模塊,如PID算法模塊等。
主板應(yīng)用程序主流程圖如下圖8所示,其工作流程為:
第一步:系統(tǒng)初始化和配置設(shè)置;
第二步:電機(jī)進(jìn)入伺服鎖定狀態(tài);
伺服鎖定實質(zhì)上是一種制動模式。當(dāng)伺服電機(jī)驅(qū)動器選擇速度控制模式時,由于無法進(jìn)行閉環(huán)位置控制,因此,伺服電機(jī)的停止位置是隨機(jī)的,且停止后也無保持力矩。這時,如負(fù)載存在外力作用(如重力),就可能導(dǎo)致伺服電機(jī)停止后,產(chǎn)生運(yùn)動而偏離停止點。
第三步:等待副板的控制信號;
副板的控制信號通過串口發(fā)送給主板,一共分為三種信號。
第一種為停止信號,接收到這個信號后,主板主控芯片關(guān)閉用于計算電機(jī)轉(zhuǎn)速的定時器3和4,并使電機(jī)進(jìn)入伺服鎖定狀態(tài)。
第二種為電機(jī)啟動信號,主板將電機(jī)伺服鎖定狀態(tài)解除。
第三種為接著修改副板的控制信號,并調(diào)用電機(jī)閉環(huán)啟動函數(shù),使電機(jī)開始轉(zhuǎn)動,從而使主控芯片接收到變化的霍爾信號來控制電機(jī)。第三種由主板主控芯片修改,主要控制PID算法的運(yùn)算得出電機(jī)所需的控制量。
第四步:控制信號輸出控制量達(dá)到控制雙輪扭扭車前進(jìn)、后退和轉(zhuǎn)向的目的。
本控制程序是通過中斷來實時完成各種控制任務(wù)的,其主函數(shù)部分相對簡單,用while循環(huán)來保持程序持續(xù)運(yùn)行。
圖8 主板程序主流程圖
副電路板應(yīng)用程序主要用于將測量得到的姿態(tài)信息進(jìn)行處理后發(fā)送給主電路板,用于平衡處理。
副電路板應(yīng)用程序總體框架也由配置模塊和控制模塊兩部分構(gòu)成。其中,配置模塊是指在程序運(yùn)行前,需要預(yù)先對部分硬件電路進(jìn)行初始化配置的軟件程序模塊,如:IIC配置模塊、串口配置模塊等;控制模塊是指在程序運(yùn)行過程中,通過對這些軟件程序的調(diào)用,實現(xiàn)一定的控制功能的程序模塊,如卡爾曼濾波算法模塊、MPU6050配置模塊等。
其主流程圖如下圖9所示,其工作流程為:
第一步:副電路板主控芯片STM32F103通過定時中斷讀取MPU6050姿態(tài)傳感器采集的原始姿態(tài)信息;
第二步:對此姿態(tài)信號進(jìn)行卡爾曼濾波處理,計算出精確的姿態(tài)信號,用作電機(jī)目標(biāo)控制量;
第三步:將此電機(jī)目標(biāo)控制量通過串口發(fā)送給主電路板,用作平衡控制。
整個扭扭車控制系統(tǒng)中共有兩個副板,每個副板通過主板控制左右電機(jī)中的一個狀態(tài)。
圖9 副板程序主流程圖
將上述所開發(fā)的控制系統(tǒng)安裝在雙輪扭扭車架上,對其控制功能進(jìn)行測試和驗證,具體如圖10所示。
圖10 雙輪扭扭車控制系統(tǒng)測試
測試結(jié)果表明:所開發(fā)的控制系統(tǒng)能對雙輪扭扭車的左右兩個車輪進(jìn)行獨立的運(yùn)動控制,且在可控的傾角范圍類,左右兩個車輪的轉(zhuǎn)速隨平衡車左右兩邊的傾角不同而變化,滿足雙輪扭扭車的運(yùn)動控制要求。
本項目設(shè)計并開發(fā)了一款基于STM32F103系列微處理器的雙輪扭扭車控制系統(tǒng)。采用一塊主電路板和兩塊副電路板來構(gòu)建該控制系統(tǒng)的硬件平臺,在此基礎(chǔ)上設(shè)計相應(yīng)的控制軟件,從而實現(xiàn)對各類扭扭車的運(yùn)動控制。實驗測試結(jié)果表明,所設(shè)計的控制系統(tǒng)能有效實現(xiàn)雙輪扭扭車的穩(wěn)定運(yùn)行和平衡控制。
[1]陳偉、延文杰等.兩輪自平衡機(jī)器人控制系統(tǒng)設(shè)計[J].傳感器與微控制器,2008,27(4):117-120.
[2]周柱、孟文等.基于STM32的智能小車設(shè)計[J].技術(shù)與市場,2011,18(6):1-2(4).
[3]張志強(qiáng).基于STM32的雙輪平衡車[J].電子設(shè)計工程,2011,19(13):103-106.
[4]季鵬飛、朱燕等.基于STM32的兩輪自平衡小車控制系統(tǒng)設(shè)計[J].電子科技,2014,27(11):96-99(105).
[5]魏文、段晨東等.基于數(shù)據(jù)融合的兩輪自平衡小車控制系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2013,39(5):79-81.