牛旭,楊蕾,李旭
(中原工學(xué)院 電子信息學(xué)院,河南 鄭州 450007)
機(jī)器人技術(shù)興起于20世紀(jì)60年代,隨著電子技術(shù)的飛速發(fā)展,機(jī)器人技術(shù)也日趨成熟,并且給人們的生產(chǎn)和生活帶來(lái)了深刻影響。移動(dòng)機(jī)器人是機(jī)器人大家庭中重要的一員,按照移動(dòng)方式可以分為足式移動(dòng)機(jī)器人、履帶式移動(dòng)機(jī)器人、輪式移動(dòng)機(jī)器人等類型。其中輪式移動(dòng)機(jī)器人是應(yīng)用最為廣泛的一種機(jī)器人(兩輪自平衡車就是輪式移動(dòng)機(jī)器人的一種),它更加智能化,發(fā)展前景更為廣闊。
現(xiàn)如今,新冠病毒依舊危害著全世界人民,雖然疫情得到了有效控制,但是醫(yī)務(wù)人員因?yàn)榉N種原因還是要冒著很大的風(fēng)險(xiǎn)沖在疫情前線。這個(gè)時(shí)候就體現(xiàn)出平衡車的益處,它可以負(fù)載著藥品將其直接送到新冠輕癥患者手上,降低醫(yī)護(hù)人員感染的概率。目前,以傳統(tǒng)機(jī)動(dòng)車為主的出行方式所帶來(lái)的大氣污染和交通擁堵等問(wèn)題越發(fā)突出。短途出行的環(huán)境友好型替代品——雙輪智能平衡車逐漸走入人們的視野,智能平衡車以其體積小、操作方便、環(huán)境友好等優(yōu)點(diǎn)得以迅速普及,故此我們?cè)O(shè)計(jì)基于多傳感器的雙輪平衡車遙控系統(tǒng),這樣可使我們的平衡車更具實(shí)用性、獨(dú)創(chuàng)性。在某些危機(jī)情況下,利用遙控系統(tǒng)控制平衡車,讓它代替我們身處險(xiǎn)境完成相關(guān)工作。
一個(gè)完整的無(wú)線遙控系統(tǒng)通常包括發(fā)射部分、接收部分和執(zhí)行部分,三者缺一不可。發(fā)射部分包括操作桿(或指令鍵)、調(diào)制電路、指令編碼電路、發(fā)射傳感器和放大電路。遙控端發(fā)送指令,經(jīng)由指令編碼電路進(jìn)行指令編碼,使其在信道中傳輸,調(diào)制電路要將指令編碼信號(hào)加載到高頻載波上,由于信道傳輸中存在損耗,放大電路對(duì)調(diào)制信號(hào)進(jìn)行功率放大,最后經(jīng)由發(fā)射傳感器實(shí)現(xiàn)指令信號(hào)的發(fā)送。接收部分包括接收傳感器、放大電路、解調(diào)電路和指令譯碼電路。接收部分是發(fā)射部分的逆過(guò)程,實(shí)現(xiàn)指令的解讀。執(zhí)行部分一般為在驅(qū)動(dòng)電路和各種執(zhí)行電路接收到發(fā)射部分的正確指令后,驅(qū)動(dòng)電路聯(lián)結(jié)執(zhí)行電路完成相應(yīng)的操作。
本設(shè)計(jì)方案在遙控系統(tǒng)可行性的前提下進(jìn)行探索,采用模塊化的設(shè)計(jì)邏輯。本次設(shè)計(jì)中整體系統(tǒng)核心控制單元采用STM 單片機(jī),拓展連接ESP8285Wi-Fi 模塊和電機(jī)驅(qū)動(dòng)模塊TB6612FNG。ESP8285 模塊與設(shè)備之間需要路由器作為連接中介,模塊從路由器接入互聯(lián)網(wǎng),可對(duì)設(shè)備進(jìn)行遠(yuǎn)程遙控,從而實(shí)現(xiàn)遙控端與單片機(jī)的關(guān)聯(lián),并且在整個(gè)操作過(guò)程中雙輪平衡車始終保持平衡站立。通過(guò)遙控端發(fā)送指令,ESP8285Wi-Fi 模塊在接收到指令后,進(jìn)行解調(diào)、譯碼等處理,再通過(guò)內(nèi)部路由器串口端將指令傳遞給單片機(jī),利用直流驅(qū)動(dòng)電機(jī)芯片TB6612FNG,聯(lián)結(jié)直流電機(jī)驅(qū)動(dòng)平衡車完成相應(yīng)的指令操作,如實(shí)現(xiàn)驅(qū)動(dòng)小車前進(jìn)行駛、后退行駛和左右轉(zhuǎn)彎等基礎(chǔ)遙控功能,從而實(shí)現(xiàn)雙輪平衡車遙控系統(tǒng)方案設(shè)計(jì)。
整體系統(tǒng)以差速驅(qū)動(dòng)電路為主體,這部分主要由單片機(jī)拓展板、電機(jī)驅(qū)動(dòng)模塊、兩個(gè)直流電機(jī)、A/D 轉(zhuǎn)換以及定時(shí)計(jì)數(shù)器組成。PWM 調(diào)速系統(tǒng)主要提供兩項(xiàng)功能:(1)完成整體系統(tǒng)的轉(zhuǎn)向控制。(2)完成整體系統(tǒng)的轉(zhuǎn)速控制,從而實(shí)現(xiàn)整體遙控系統(tǒng)的差速驅(qū)動(dòng)。單片機(jī)通過(guò)PWM 技術(shù)對(duì)模擬輸入信號(hào)進(jìn)行數(shù)字編碼(輸入模擬電壓值,輸出的PWM 信號(hào)為數(shù)字信號(hào)),可以模擬產(chǎn)生路脈寬可調(diào)的電平信號(hào),從而實(shí)現(xiàn)0~2占空比輸入,并由直流電機(jī)驅(qū)動(dòng)芯片對(duì)電機(jī)施加線性電壓,實(shí)現(xiàn)電機(jī)轉(zhuǎn)動(dòng)。為電機(jī)驅(qū)動(dòng)設(shè)置一個(gè)基準(zhǔn)電平,在單片機(jī)輸入電平信號(hào)后,通過(guò)二者的對(duì)比來(lái)控制電機(jī)的轉(zhuǎn)向與轉(zhuǎn)速,當(dāng)輸入電平為正且大于基準(zhǔn)電平時(shí)電機(jī)加速,反之電機(jī)減速;當(dāng)輸入電平為負(fù)時(shí)電機(jī)反轉(zhuǎn)。本設(shè)計(jì)方案采用差速驅(qū)動(dòng),平衡車雙輪各安裝一個(gè)直流電機(jī),實(shí)現(xiàn)左、右輪的差速控制。利用左右車輪電機(jī)的轉(zhuǎn)動(dòng)方向和轉(zhuǎn)速不同來(lái)完成不同的動(dòng)作,車體的轉(zhuǎn)彎就是依照此原理實(shí)現(xiàn)的。通過(guò)手機(jī)控制端發(fā)送控制指令,單片機(jī)分析處理后調(diào)用相關(guān)函數(shù)來(lái)實(shí)現(xiàn)前進(jìn)、轉(zhuǎn)彎、后退等任務(wù)。
本方案主要元器件包括STM32 單片機(jī)、STM32F103C8T6核心板、電源模塊、TB6612FNG 電機(jī)驅(qū)動(dòng)模塊、ESP8285Wi-Fi 模塊、BT06 藍(lán)牙模塊、雙輪平衡車。整體系統(tǒng)核心控制單元為STM 單片機(jī),通過(guò)STM32 拓展板連接外設(shè)模塊電路。直流電機(jī)驅(qū)動(dòng)模塊的核心為TB6612FNG 芯片,同時(shí)控制兩路直流電機(jī),實(shí)現(xiàn)差速驅(qū)動(dòng)。ESP8285Wi-Fi 模塊作為指令中轉(zhuǎn)站連接遙控端和單片機(jī),完成遙控系統(tǒng)設(shè)計(jì)。
電源和單片機(jī)開關(guān)開啟后,ESP8285Wi-Fi 模塊進(jìn)入STA模式,通過(guò)遙控端發(fā)送指令,ESP8285Wi-Fi 模塊在接收到指令后,進(jìn)行解調(diào)、譯碼等處理,再通過(guò)內(nèi)部路由器串口端將指令傳遞給單片機(jī),利用TB6612FNG 電機(jī)驅(qū)動(dòng)模塊聯(lián)結(jié)兩個(gè)直流電機(jī),實(shí)現(xiàn)差速驅(qū)動(dòng),完成相應(yīng)的操作。硬件整體設(shè)計(jì)框圖如圖1所示。
圖1 硬件整體設(shè)計(jì)框圖
雙輪平衡車是智能移動(dòng)機(jī)器人系列的典型裝置,其運(yùn)作原理是通過(guò)檢測(cè)平衡車傾斜角度和運(yùn)行方向,提前調(diào)整兩個(gè)直流電機(jī)的轉(zhuǎn)向和轉(zhuǎn)速,從而使雙輪平衡車保持獨(dú)立平衡狀態(tài)。雙輪平衡車獨(dú)立平衡的實(shí)現(xiàn)有賴于比例和微分控制,而完成雙輪平衡車行進(jìn)方向及速度控制則是采用了比例和積分控制,正是基于三種控制算法的最終總疊加,才使雙輪平衡車能保持獨(dú)立平衡,整體系統(tǒng)始終處于一種動(dòng)態(tài)的穩(wěn)定之中。
該平衡車主要包括STM32 核心模塊、直流電機(jī)驅(qū)動(dòng)模塊、Wi-Fi 模塊和BT06 藍(lán)牙模塊。其中STM32 核心模塊為核心控制模塊,直流電機(jī)驅(qū)動(dòng)模塊驅(qū)動(dòng)電機(jī)控制小車行動(dòng),Wi-Fi 模塊主要用于實(shí)現(xiàn)遠(yuǎn)程控制,藍(lán)牙模塊用于實(shí)現(xiàn)串口與藍(lán)牙設(shè)備之間的數(shù)據(jù)傳輸。對(duì)四個(gè)模塊的介紹如下:
(1)STM32 核心模塊。該模塊是一款基于ARM Cortex-M 內(nèi)核STM32 系列的32 位微控制器,程序存儲(chǔ)器容量是64 KB,需要電壓2 V~3.6 V。外圍設(shè)備包括DMA、電機(jī)控制PWM、PWM、溫度傳感器。接口類型為CAN、
I2C、SPI、UART、USB。
(2)直流電機(jī)驅(qū)動(dòng)模塊。本方案選用TB6612FNG 驅(qū)動(dòng)模塊,TB6612FNG 驅(qū)動(dòng)模塊能夠同時(shí)輸出兩路控制信號(hào),對(duì)兩個(gè)直流電機(jī)進(jìn)行智能控制。該模塊以連續(xù)電流的形式輸出電流時(shí),單通道最高可輸出1.2 A,模塊啟動(dòng)脈沖電流峰值在2.2 A~3 A 之間。具有反轉(zhuǎn)、正轉(zhuǎn)、加速、減速等4種電機(jī)控制模式,可通過(guò)調(diào)整輸入脈沖信號(hào)的占空比來(lái)控制兩路電機(jī)的轉(zhuǎn)向及轉(zhuǎn)速,從而達(dá)到差速驅(qū)動(dòng)。
(3)Wi-Fi 模塊。本方案使用ESP8285Wi-Fi 模塊實(shí)現(xiàn)手機(jī)遙控端與單片機(jī)的連接,采用STA 模式可實(shí)現(xiàn)無(wú)限遠(yuǎn)的遙控距離。ESP8285Wi-Fi(UART—Wi-Fi 串口模塊)專門為硬件聯(lián)網(wǎng)設(shè)計(jì),在Wi-Fi 與串口設(shè)備之間的數(shù)據(jù)交換中,不會(huì)發(fā)生數(shù)據(jù)的丟失和變化,輸入即輸出,并且符合無(wú)線網(wǎng)絡(luò)標(biāo)準(zhǔn)。與同類產(chǎn)品相比,具有超低功耗和遠(yuǎn)距離傳輸?shù)葮O具競(jìng)爭(zhēng)力的優(yōu)勢(shì)。
(4)BT06 藍(lán)牙模塊。BT06 藍(lán)牙模塊專門為智能無(wú)線數(shù)據(jù)傳輸而打造,遵循V3.0 藍(lán)牙規(guī)范。本模塊支持UART接口,并支持SPP 藍(lán)牙串口協(xié)議,具有成本低、體積小、功耗低、收發(fā)靈敏性高等優(yōu)點(diǎn),只需配備少許外圍元件就能實(shí)現(xiàn)其強(qiáng)大功能。
軟件設(shè)計(jì)的核心是雙輪平衡車遙控狀態(tài)下的差速驅(qū)動(dòng)部分,包括前進(jìn)行駛模塊、后退行駛模塊、左右轉(zhuǎn)彎模塊、電機(jī)停止模塊,采用PWM 方式對(duì)直流電機(jī)進(jìn)行控制(PWM調(diào)速相當(dāng)于在一定周期內(nèi)設(shè)置判決門限,確定脈沖占空比,從而達(dá)到對(duì)轉(zhuǎn)速的控制)。
在操作過(guò)程中通過(guò)調(diào)整電機(jī)的轉(zhuǎn)向和轉(zhuǎn)速來(lái)實(shí)現(xiàn)前進(jìn)行駛、后退行駛、左右轉(zhuǎn)彎、停止等功能。當(dāng)兩個(gè)電機(jī)均為正轉(zhuǎn)且速度一致時(shí),平衡車表現(xiàn)為前進(jìn);當(dāng)兩個(gè)電機(jī)均為正轉(zhuǎn)但左輪電機(jī)速度小于右輪電機(jī)速度時(shí),平衡車表示為左轉(zhuǎn);當(dāng)兩個(gè)電機(jī)均為正轉(zhuǎn)但左輪電機(jī)速度大于右輪電機(jī)速度時(shí),平衡車表現(xiàn)為右轉(zhuǎn);當(dāng)兩個(gè)電機(jī)均為反轉(zhuǎn)且速度一致時(shí),平衡車表現(xiàn)為后退;當(dāng)兩個(gè)電機(jī)速度均為0 時(shí),平衡車表現(xiàn)為停止。手機(jī)控制端發(fā)出相應(yīng)指令后,平衡車會(huì)做出相應(yīng)的動(dòng)作。
在程序整體設(shè)計(jì)中,首先進(jìn)行系統(tǒng)的初始化設(shè)置,其中包括各引腳配置、函數(shù)聲明以及傳輸協(xié)議,然后進(jìn)入循環(huán)結(jié)構(gòu),對(duì)小車的遙控控制進(jìn)行了模塊化處理。遙控系統(tǒng)體系設(shè)計(jì)流程圖如圖2所示,初始時(shí)平衡車為獨(dú)立平衡站立狀態(tài),按遙控端開啟遙控控制后,相當(dāng)于單片機(jī)收到指令分析處理后進(jìn)入中斷程序,通過(guò)遙控端控制雙輪平衡車動(dòng)作。由于采用了模塊化設(shè)計(jì)邏輯,并且STM 單片機(jī)使用的編程語(yǔ)言為C 語(yǔ)言,因此本次設(shè)計(jì)中Wi-Fi 模塊和藍(lán)牙模塊電機(jī)驅(qū)動(dòng)部分采用相同的中斷程序。二者接口為同一位置,因此只能采用一種遙控方式,同時(shí)在遙控控制過(guò)程中調(diào)用平衡程序,保證平衡車在遙控控制過(guò)程中平衡運(yùn)行。通過(guò)遙控端發(fā)送指令,Wi-Fi 模塊(藍(lán)牙模塊)接收到指令后,進(jìn)行解調(diào)、譯碼等處理,然后利用串口通信將處理過(guò)的指令信息傳遞給單片機(jī),單片機(jī)分析處理后調(diào)用指令對(duì)應(yīng)的庫(kù)函數(shù),驅(qū)動(dòng)雙輪平衡車執(zhí)行相應(yīng)的操作。
圖2 遙控系統(tǒng)設(shè)計(jì)流程
本方案基于雙輪平衡車平臺(tái),連接ESP8285Wi-Fi 無(wú)線模塊,實(shí)現(xiàn)真正意義上的物聯(lián)網(wǎng)控制。在初次Wi-Fi 配置成功后,在后面遙控距離沒(méi)有限制,只要是在有網(wǎng)絡(luò)的地方即可遙控平衡車。以STM32 拓展板為核心控制單元的整體遙控系統(tǒng)如圖3所示,實(shí)驗(yàn)環(huán)境為空曠無(wú)雜物的場(chǎng)地,該遙控系統(tǒng)基本能夠?qū)崿F(xiàn)設(shè)計(jì)任務(wù)指標(biāo)。
圖3 系統(tǒng)整體實(shí)物圖
啟動(dòng)平衡車,使其保持整體直立5 s 左右,系統(tǒng)進(jìn)行初始化。雙輪平衡車調(diào)用平衡程序,保持平衡站立,Wi-Fi 無(wú)線模塊上的藍(lán)色指示燈常亮,表示模塊進(jìn)入待連接狀態(tài),手機(jī)遙控端連接無(wú)線模塊發(fā)出的熱點(diǎn),輸入對(duì)應(yīng)的IP 和端口地址,指示燈閃亮,表示已連接。此時(shí)相當(dāng)于中斷進(jìn)入遙控程序中,與此同時(shí)調(diào)用平衡程序,手機(jī)遙控端發(fā)出指令后,單片機(jī)調(diào)用相應(yīng)的遙控程序模塊,通過(guò)PWM 調(diào)速函數(shù),實(shí)現(xiàn)左右電機(jī)的差速驅(qū)動(dòng),從而實(shí)現(xiàn)平衡車的遙控控制。藍(lán)牙模塊應(yīng)用原理同上,把Wi-Fi 模塊換成藍(lán)牙模塊,在系統(tǒng)啟動(dòng)后,基于手機(jī)配對(duì)通過(guò)藍(lán)牙遙控平衡車,藍(lán)牙遙控方式有三種,分別為按鍵遙控、重力遙控和搖桿遙控。藍(lán)牙遙控內(nèi)容包含前后左右行駛、旋轉(zhuǎn)、PID 調(diào)試等。
本文設(shè)計(jì)一款基于多傳感器的雙輪平衡車遙控系統(tǒng),多次的實(shí)驗(yàn)表明,在四周空曠無(wú)遮擋物的環(huán)境下,整體遙控系統(tǒng)可實(shí)現(xiàn)遠(yuǎn)距離遙控(ESP8285Wi-Fi 模塊設(shè)置為STA模式,在STA 模式下可實(shí)現(xiàn)長(zhǎng)距離遙控,遙控距離可達(dá)數(shù)千米之遠(yuǎn))。在復(fù)雜的工作環(huán)境中,該系統(tǒng)可控制平衡車代替人類進(jìn)行危險(xiǎn)的工作,具有一定的應(yīng)用推廣價(jià)值和現(xiàn)實(shí)意義。