二輪自平衡車,顧名思義就是僅有兩個(gè)車輪,需要時(shí)刻主動(dòng)去保持平衡的車,不同于自行車摩托車等車輪前后排列的二輪平衡車,本文討論的是兩輪共軸的平衡車,如圖l所示。

圖1二輪平衡車示意圖
這樣的兩輪車可想而知如果不加控制,必然會(huì)向前或后傾斜并加速倒下,但是車輪的合理旋轉(zhuǎn)對(duì)車軸——即車身底部產(chǎn)生的扭矩與推力又可以阻止車身倒下的趨勢(shì)并糾正車身相對(duì)于平衡位置的角度偏差。這也就是自平衡的過(guò)程,而且由于平衡位置的脆弱性與擾動(dòng)的必然性,控制器必須時(shí)時(shí)擔(dān)負(fù)起檢測(cè)與糾偏作用。
目前二輪平衡車研究領(lǐng)域國(guó)內(nèi)外不僅已經(jīng)有了許多成功的理論研究及實(shí)踐成果,而且還出現(xiàn)了成功的商業(yè)化產(chǎn)品--Segway。而本文中討論的應(yīng)用于二輪平衡車開(kāi)發(fā)平臺(tái)的ZigBee模塊無(wú)線通信網(wǎng)絡(luò),可以很好地為控制算法的開(kāi)發(fā)與調(diào)試提供方便。
為開(kāi)發(fā)平臺(tái)增加人機(jī)界面十分重要,而顯示屏顯然不可能安裝在運(yùn)行中的小車上,這就必須有一臺(tái)固定的上位計(jì)算機(jī),上位機(jī)與小車MCU之間的數(shù)據(jù)交流由無(wú)線通信完成。本文選擇ZigBee無(wú)線模塊為通信基礎(chǔ),硬件核心為支持ZigBee協(xié)議的CC2530芯片,而具體選擇原因見(jiàn)下節(jié)。
一 ZigBee模塊及CC2530微控制器
無(wú)線通信技術(shù)在工業(yè)控制上發(fā)展極其迅速,已形成多個(gè)技術(shù)標(biāo)準(zhǔn)。ZigBee,GPRS數(shù)據(jù)網(wǎng)絡(luò),WLAN以及一些專用無(wú)線網(wǎng)絡(luò)技術(shù)。相較于傳統(tǒng)的有線通信技術(shù),無(wú)線通信技術(shù)無(wú)需布線,系統(tǒng)的架設(shè)更為簡(jiǎn)單,當(dāng)然在電磁環(huán)境復(fù)雜的一些工作環(huán)境下可靠性還是不如有線通信。
本文采用的ZigBee數(shù)傳模塊通信基于IEEE 802.1 5.4協(xié)議,占用免費(fèi)的2.4GHz頻道,具有低功耗、短距離、數(shù)據(jù)可靠性高、容量大、時(shí)延小、安全和成本低等技術(shù)特點(diǎn)。同時(shí)其通信節(jié)點(diǎn)的硬件高度集成化,非常適合本文中的小規(guī)模嵌入式系統(tǒng)。
本文ZigBee無(wú)線模塊通信具體實(shí)現(xiàn)對(duì)象的硬件基礎(chǔ)是德州儀器TI(Texas Instrument)生產(chǎn)的CC2530芯片及其配套天線模塊。CC2530芯片實(shí)質(zhì)上就是一塊集成了無(wú)線控制功能的8位單片機(jī),它不僅有通信控制功能,也可以控制外圍設(shè)備完成一些控制任務(wù),這樣一些嵌人式系統(tǒng)可以直接采用CC2530這樣的SoC(片上系統(tǒng))作為控制核心而無(wú)需添加專門(mén)的通信控制器,也就大大減化了系統(tǒng)設(shè)計(jì)。
CC2530僅僅是一個(gè)通信控制硬件,它的正常工作離不開(kāi)同樣由德州儀器提供的Z-Stack,ZigBee協(xié)議棧,ZigBee協(xié)議棧相當(dāng)于一套操作系統(tǒng)接管了底層硬件的控制,其內(nèi)含的一套源代碼可以實(shí)現(xiàn)ZigBee數(shù)傳模塊通信的各種功能,它們被封裝于一些函數(shù)中,開(kāi)發(fā)者只需調(diào)用這些函數(shù)即可實(shí)現(xiàn)相應(yīng)功能。
二、通信系統(tǒng)系統(tǒng)具體實(shí)現(xiàn)
2.1通信數(shù)據(jù)包格式。
構(gòu)建通信系統(tǒng),確定通信的具體內(nèi)容是必不可少的,二輪平衡車控制器想要直立,必須實(shí)時(shí)獲知車體傾角,同時(shí)輸出相應(yīng)的PWM信號(hào)控制電機(jī)旋轉(zhuǎn)以糾正傾角偏差。而這些信息也是開(kāi)發(fā)者想要實(shí)時(shí)獲取的,所以本文中的通信網(wǎng)絡(luò)需要實(shí)時(shí)將這些信息上傳至上位機(jī)。
需要注意的是由于本系統(tǒng)中車體傾角是由加速度傳感器檢測(cè)的重力加速度在車體豎直方向的投影大小推算出來(lái)的,角加速度信號(hào)也是需要傳感器進(jìn)行檢測(cè)的,而本文所用三軸加速度傳感器不論哪個(gè)方向都會(huì)受到的干擾——與被檢測(cè)信號(hào)疊加的機(jī)械振動(dòng),小車行駛的加速度等等,所以單純的加速度傳感器檢測(cè)值是無(wú)法使用的,而同類問(wèn)題的一般解決方案是外加一個(gè)不會(huì)被加速度干擾信號(hào)影響的較為準(zhǔn)確的陀螺儀傳感器來(lái)檢測(cè)角速度口]:陀螺儀的角速度是比較可信的,將其與被嚴(yán)重干擾的加速度傳感器信號(hào)進(jìn)行融合,并將融合后的信號(hào)作為濾波的參考,可以得出較為準(zhǔn)確的小車運(yùn)動(dòng)加速度信號(hào)。
所以最終確定的上傳系統(tǒng)狀態(tài)數(shù)據(jù)包內(nèi)容如表l所示。

表1上位機(jī)與小車通信數(shù)據(jù)格式
同時(shí)上位機(jī)下行數(shù)據(jù)包格式暫定為PID控制器的三個(gè)參數(shù)。
2.2通信系統(tǒng)工作流程
本文中上位機(jī)與小車之間的通信系統(tǒng)總體工作流程如圖2所示:

圖2通信系統(tǒng)總體工作框圖
需要注意的是在小車上嵌入式ZigBee模塊中上傳小車工作狀態(tài)進(jìn)行ZigBee數(shù)據(jù)采集的任務(wù)優(yōu)先級(jí)高于接收上位機(jī)下行的PID參數(shù)的任務(wù)優(yōu)先級(jí)。
通信系統(tǒng)有許多形式,協(xié)議也不盡相同,但都至少必須有協(xié)調(diào)器(Coordinator)和終端(Endpoint),協(xié)調(diào)器就是通信的發(fā)起者,也就是通信網(wǎng)絡(luò)的建立者,當(dāng)網(wǎng)絡(luò)建立好之后,協(xié)調(diào)器就由網(wǎng)絡(luò)的建立者變?yōu)榫W(wǎng)絡(luò)的管理者,也就是類似于路由器(router)的功能:網(wǎng)絡(luò)終端(Endpoint)在網(wǎng)絡(luò)中不需要承擔(dān)太多任務(wù),只需要加入網(wǎng)絡(luò)即在網(wǎng)絡(luò)上注冊(cè)并被分配地址。
雖然本系統(tǒng)的通信節(jié)點(diǎn)只有兩個(gè),但也必須包含協(xié)調(diào)器(Coordinator)與終端(Endpoint):那么剩下的問(wèn)題就是哪個(gè)ZigBee無(wú)線模塊作為協(xié)調(diào)器發(fā)起通信:由上文可以看出,網(wǎng)絡(luò)中協(xié)調(diào)器需要發(fā)起通信,構(gòu)建網(wǎng)絡(luò),之后要轉(zhuǎn)為網(wǎng)絡(luò)的管理者,它的系統(tǒng)開(kāi)銷必然大于只是作為參與者加入網(wǎng)絡(luò)的終端。本文中的兩塊CC2530芯片中顯然嵌入于小車上的那塊承擔(dān)了ZigBee數(shù)據(jù)采集濾波與系統(tǒng)控制的任務(wù),可見(jiàn)其本來(lái)承擔(dān)任務(wù)就相對(duì)比較繁重。而僅僅是作為上位計(jì)算機(jī)通信終端的ZigBee無(wú)線模塊,由于除了實(shí)現(xiàn)無(wú)線通信功能外只需與計(jì)算機(jī)定期進(jìn)行USB通信,所以可以說(shuō)是相對(duì)清閑的,所以本文中就由與計(jì)算機(jī)相連的ZigBee無(wú)線模塊擔(dān)任協(xié)調(diào)器承擔(dān)構(gòu)建網(wǎng)絡(luò)的任務(wù),參見(jiàn)圖3。

圖3上位機(jī)通信模塊流
本文中ZigBee數(shù)傳模塊具體實(shí)現(xiàn)對(duì)象的硬件基礎(chǔ)是德州儀器TI(Texas Instrument)生產(chǎn)的CC2530芯片及其配套天線模塊:CC2530芯片實(shí)質(zhì)上就是一塊集成了無(wú)線控制功能的8位單片機(jī),它不僅有通信控制功能,也可以控制外圍設(shè)備完成一些控制任務(wù),這樣一些嵌入式系統(tǒng)可以直接采用CC2530這樣的SoC(片上系統(tǒng))作為控制核心而無(wú)需添加專門(mén)的通信控制器,也就大大減化了系統(tǒng)設(shè)計(jì)。
而作為控制器的ZigBee無(wú)線模塊只需要作為終端加入網(wǎng)絡(luò)并定時(shí)發(fā)送系統(tǒng)狀態(tài)數(shù)據(jù)并接收上位機(jī)修改的控制器參數(shù)。參見(jiàn)圖4:

圖4 網(wǎng)絡(luò)終端通信模塊流程
三、結(jié)語(yǔ)
本文中的ZigBee數(shù)傳模塊通信系統(tǒng)成功實(shí)現(xiàn)了上位機(jī)與二輪平衡車之間的ZigBee數(shù)據(jù)采集交流,與上位機(jī)一起為二輪平衡車的開(kāi)發(fā)提供了合適的人機(jī)界面,大大方便了小車控制器結(jié)構(gòu)與參數(shù)的調(diào)試:上傳的數(shù)據(jù)也可以讓開(kāi)發(fā)者更直觀地了解小車的工作狀態(tài)。 |