余凡, 王庭有,劉曉光, 周勇, 蔣曉明, 張浩
(1.昆明理工大學(xué)機電工程學(xué)院,云南昆明 650500;2.廣東省科學(xué)院智能制造研究所,廣東省現(xiàn)代控制技術(shù)重點實驗室,廣東廣州 510070)
近年來,隨著建筑行業(yè)的快速發(fā)展,需要定期對特定區(qū)域高樓外墻進行安全偵察,以此來排除潛在的安全隱患。目前這些高危工作大部分都是靠人工完成,人工作業(yè)勞動強度大,工作危險性高。人們希望由爬壁機器人代替人去完成這些工作,以減少工人工作的危險性,因此負(fù)壓爬壁機器人得以廣泛應(yīng)用和發(fā)展。負(fù)壓爬壁機器人(Negative Pressure Wall Climbing Robot,NPWCR)采用離心風(fēng)機轉(zhuǎn)動,使負(fù)壓腔內(nèi)產(chǎn)生負(fù)壓環(huán)境,利用內(nèi)外壓力差使它吸附在墻壁上以進行工作。此外,爬壁機器人在復(fù)雜高危環(huán)境下工作時可能存在控制線纜纏繞牽絆等問題,嚴(yán)重影響負(fù)壓爬壁機器人工作的安全性,因此安全可靠的無線控制就顯得尤為重要。
為解決上述問題,本文作者設(shè)計一款無纜負(fù)壓爬壁機器人,以代替人工對高樓進行安全偵測。負(fù)壓爬壁機器人的控制系統(tǒng)是以微控制器STM32F103RCT6 作為核心處理器,連接其他電源、驅(qū)動、通信、攝像等功能模塊,與上位機(工業(yè)便攜式計算機)實現(xiàn)通信,形成一個較為完整的控制系統(tǒng)。通過上位機發(fā)送指令到核心處理器,從而驅(qū)動爬壁機器人執(zhí)行機構(gòu)進行相應(yīng)動作,攝像模塊進行圖像獲取及處理,將視頻傳輸?shù)缴衔粰C,對工作區(qū)域?qū)崟r監(jiān)控。
負(fù)壓爬壁機器人的控制系統(tǒng)模塊主要包括:主控模塊、電源模塊、無線通信模塊、電機驅(qū)動模塊、風(fēng)機驅(qū)動模塊、攝像頭模塊等。主控模塊是控制系統(tǒng)的核心,用于處理指令,控制其他輔助模塊工作。電源模塊為整個控制系統(tǒng)提供工作電壓,保證各個模塊的正常供電。電機驅(qū)動模塊、風(fēng)機驅(qū)動模塊、攝像頭模塊等是執(zhí)行機構(gòu),通過主控模塊發(fā)送指令控制其進行工作。無線通信模塊用于上位機與機器人之間無線通信。控制系統(tǒng)框圖如圖1所示。
圖1 控制系統(tǒng)框圖
負(fù)壓爬壁機器人采用STM32F103RCT6單片機作為控制系統(tǒng)的核心處理器,它是一種嵌入式微控制器的集成電路。主控模塊電路原理如圖2所示。
圖2 主控模塊電路原理
主控芯片工作電壓為3.3 V,時鐘電路從PD0和PD1兩個端口接入,外部接8 MHz時鐘振蕩器,時鐘振蕩電路精確地確定振蕩頻率,它與主芯片內(nèi)部的振蕩電路配合,共同組成石英晶體諧振器,從而產(chǎn)生主板上各個系統(tǒng)所必需的時鐘信號。PA13和PA14為程序下載端口,RST為復(fù)位引腳。PB0、PB1、PB6、PB7是 PWM信號輸出引腳,用于對驅(qū)動電機轉(zhuǎn)速進行控制。PA0、PA1、PA8也是PWM信號輸出引腳,用于控制云臺舵機轉(zhuǎn)動角度控制和離心風(fēng)機轉(zhuǎn)速。PA2、PA3連接主控芯片和WiFi通信模塊,用于遠(yuǎn)程無線通信。
電源模塊為整個控制系統(tǒng)提供相應(yīng)的工作電壓。由于輪組驅(qū)動電機和風(fēng)機工作電壓都是24 V,選用24 V鋰電給機器人供電,并通過設(shè)計基于LM2596和ASM1117的降壓電路為控制系統(tǒng)提供所需的5 V和3.3 V電壓。電壓轉(zhuǎn)換電路如圖3 所示。
圖3 電源模塊電壓轉(zhuǎn)換電路
無線通信模塊的作用是實現(xiàn)負(fù)壓爬壁機器人與上位機之間的信息交互。在控制系統(tǒng)中選用ESP-12E WiFi模塊作為無線網(wǎng)絡(luò)發(fā)射端。模塊的21號引腳RXD0、22號引腳TXD0的兩個接口用于數(shù)據(jù)通信;RXD接收數(shù)據(jù)、TXD發(fā)送數(shù)據(jù),并分別與STM32引腳的RX2和TX2串口相連,用于數(shù)據(jù)通信。WiFi最小系統(tǒng)原理如圖4所示。
圖4 WiFi最小系統(tǒng)原理
電機驅(qū)動模塊用來驅(qū)動輪組電機轉(zhuǎn)動,帶動負(fù)壓爬壁機器人完成前進、后退、轉(zhuǎn)彎等動作。電機驅(qū)動芯片選用BTN7971B。STM32芯片發(fā)送PWM信號到三態(tài)輸出的八路緩沖器DM74LS244WM中,根據(jù)控制信號的狀態(tài),將總線上的地址代碼暫存起來,并輸出到電機驅(qū)動芯片BTN7971B,驅(qū)動電機運轉(zhuǎn)。電機驅(qū)動模塊電路原理如圖5所示,其中P9、P10為電機接口。
圖5 電機驅(qū)動模塊電路原理
負(fù)壓爬壁機器人的負(fù)載能力通過調(diào)節(jié)離心風(fēng)機轉(zhuǎn)速來改變。風(fēng)機電機選用無刷直流電機,通過脈沖寬度調(diào)制(PWM)調(diào)控其轉(zhuǎn)速,根據(jù)工作環(huán)境不同,調(diào)節(jié)風(fēng)機轉(zhuǎn)速,從而改變負(fù)壓腔內(nèi)外壓力差。風(fēng)機接入24 V工作電壓,通過定時器從主控芯片PA8口輸出PWM脈沖波,調(diào)節(jié)脈沖寬度大小以控制離心風(fēng)扇轉(zhuǎn)速。占空比越大,離心風(fēng)扇轉(zhuǎn)動得越快,產(chǎn)生的負(fù)壓就越大,負(fù)壓爬壁機器人負(fù)載能力就越大。
攝像模塊首先通過鏡頭采集圖像,再通過內(nèi)部處理器處理圖像信息,信息處理好后通過STM32將視頻傳輸?shù)缴衔粰C,以便進行遠(yuǎn)距離監(jiān)控偵察。攝像頭模塊主要包含攝像頭、圖像傳感器SENSOR、數(shù)字圖像處理器DSP、同步信號發(fā)生器、A/D 和D/A轉(zhuǎn)換電路和電源電路。攝像頭模塊工作電壓為5 V,通過控制主板為它供電??刂贫送ㄟ^無線局域網(wǎng)連接攝像頭獲取監(jiān)控信息,從而實現(xiàn)無線遠(yuǎn)程偵察監(jiān)控??刂浦靼錚A0和PA1口輸出一定脈沖寬度的PWM波,用于控制攝像頭舵機轉(zhuǎn)動。通過調(diào)節(jié)脈沖寬度調(diào)節(jié)內(nèi)部舵機的轉(zhuǎn)動角度,從而實時調(diào)節(jié)攝像頭的拍攝角度,來獲取周圍的環(huán)境信息。
負(fù)壓爬壁機器人控制系統(tǒng)程序設(shè)計采用模塊化設(shè)計思想,首先對各個模塊相關(guān)的應(yīng)用程序進行編寫,當(dāng)需要使用這些程序模塊時,直接在主程序調(diào)用各模塊的程序即可。
主程序主要完成系統(tǒng)中的各部分的初始化工作和各模塊子程序的調(diào)用以及時序邏輯控制工作。系統(tǒng)上電后,進行時鐘函數(shù)、中斷分組、串口、系統(tǒng)延時函數(shù)等各模塊函數(shù)的初始化。上位機與主控制板進行連接,當(dāng)上位機與主控制板連接成功時,LDE燈呈現(xiàn)常亮狀態(tài),連接失敗LDE燈呈現(xiàn)閃爍狀態(tài)。離心風(fēng)扇轉(zhuǎn)動使負(fù)壓腔內(nèi)外產(chǎn)生壓力差,機器人在內(nèi)外壓差作用下吸附在墻壁上。此時機器人等待控制端給予控制指令,WiFi信號連接成功后,攝像頭開始工作,進行圖像處理,并將數(shù)據(jù)傳輸給控制端。當(dāng)STM32芯片接收到上位機發(fā)送的控制指令時,控制系統(tǒng)啟動相應(yīng)控制程序,使機器人完成相應(yīng)工作。系統(tǒng)程序流程如圖6所示。
圖6 主程序流程
結(jié)合硬件電路設(shè)計,通過程序編寫在上位機和主控制板之間形成協(xié)議通信,實現(xiàn)上位機與爬壁機器人之間無線遠(yuǎn)距離通信。將無線通信模塊與核心處理器連接,進行串口初始化,系統(tǒng)進入配置模式,設(shè)置接收數(shù)據(jù)(RX2)和發(fā)送數(shù)據(jù)(TX2)的引腳。通過定時器定時發(fā)送數(shù)據(jù),定時器時間達(dá)到后,執(zhí)行定時器溢出中斷程序并完成數(shù)據(jù)傳輸。通信模塊進入RX模式,便可以接收數(shù)據(jù)。首先判斷數(shù)據(jù)是否有新的更新;然后,開始接收數(shù)據(jù),讀取外部狀態(tài)儲存器的值并清除MAX_RT中斷標(biāo)志,當(dāng)數(shù)據(jù)接收完成后將數(shù)據(jù)放入串口緩存器等待發(fā)送;當(dāng)通信模塊進入TX模式時,便可以發(fā)送指令,數(shù)據(jù)寫入到TX_BUT(待發(fā)送數(shù)據(jù)地址)中,系統(tǒng)自動讀取狀態(tài)儲存器的值,讀取完成后清除TX_DX中斷標(biāo)志;達(dá)到最大發(fā)射次數(shù)后,清除TX_FIFO寄存器完成發(fā)送,整個收發(fā)過程完成。后面不斷重復(fù)上述步驟,接收和發(fā)送新的數(shù)據(jù),從而實現(xiàn)上位機和主控制板之間的數(shù)據(jù)通信。無線通信數(shù)據(jù)收發(fā)流程如圖7所示。
圖7 無線通信數(shù)據(jù)收發(fā)流程
電機和離心風(fēng)機的驅(qū)動控制程序主要是對電機和離心風(fēng)機進行PWM調(diào)速控制,通過控制PWM 脈沖占空比來調(diào)節(jié)電機運轉(zhuǎn)速度。對于驅(qū)動電機運動控制,首先進行電機端口初始化,定義引腳輸出狀態(tài);其次,運用定時器編寫程序,輸出一個PWM脈沖波形用于對左右驅(qū)動電機轉(zhuǎn)速進行控制,在運動控制中定義L_Speed為電機左輪速度、R_Speed為電機右輪速度;當(dāng)小車需要前進或后退時,左右兩輪轉(zhuǎn)動方向和轉(zhuǎn)速相同,當(dāng)小車需要轉(zhuǎn)彎時,左右電機轉(zhuǎn)向相同轉(zhuǎn)速不同使用差速轉(zhuǎn)彎。
對于離心風(fēng)機轉(zhuǎn)速控制,當(dāng)系統(tǒng)上電后,風(fēng)機模塊初始化,系統(tǒng)進入風(fēng)機調(diào)速程序,對風(fēng)機轉(zhuǎn)速是否達(dá)到程序設(shè)定轉(zhuǎn)速進行判斷。當(dāng)轉(zhuǎn)速不足時增加轉(zhuǎn)速,達(dá)到設(shè)定轉(zhuǎn)速后,再執(zhí)行后面的操作。風(fēng)機轉(zhuǎn)速通過調(diào)節(jié)PWM脈沖寬度進行控制,風(fēng)機調(diào)速控制程序利用高級定時器1編寫,通過PA8口輸出20 kHz的PWM矩形波,輸出的脈沖占空比越大,風(fēng)機轉(zhuǎn)速就越大。當(dāng)負(fù)壓爬壁機器人工作時,通過控制端可以手動調(diào)節(jié)PA8口輸出的PWM脈沖占空比,從而控制風(fēng)機轉(zhuǎn)速,進而增大或者減小負(fù)壓腔內(nèi)的負(fù)壓。風(fēng)機初始化程序轉(zhuǎn)速設(shè)定為50%,在它工作過程中,可以根據(jù)工作環(huán)境,自行調(diào)節(jié)風(fēng)機轉(zhuǎn)速,以適應(yīng)不同的工作環(huán)境。PWM調(diào)速控制流程如圖8所示。
圖8 PWM調(diào)速控制流程
上位機軟件主要分為三大板塊:小車的運動控制部分、風(fēng)機的調(diào)速控制部分、攝像頭的視頻監(jiān)控部分。上位機軟件界面如圖9所示。
圖9 上位機軟件界面
上位機用于來操控爬壁機器人進行運動和控制執(zhí)行機構(gòu)進行相應(yīng)工作。打開負(fù)壓爬壁機器人開關(guān)電源,運行上位機軟件,連接無線網(wǎng)絡(luò),當(dāng)無線網(wǎng)絡(luò)連接成功后,上位機便可以向核心處理器發(fā)送控制信號,遠(yuǎn)程無線操控負(fù)壓爬壁機器人運動,同時可通過攝像頭獲取視頻信息,將視頻經(jīng)過處理后傳輸?shù)缴衔粰C顯示,以對周圍環(huán)境進行實時監(jiān)控。當(dāng)需要手動調(diào)節(jié)風(fēng)機轉(zhuǎn)速時,可以通過上位機風(fēng)機調(diào)速按鈕向主控芯片發(fā)送控制信號,進而調(diào)節(jié)風(fēng)機的轉(zhuǎn)速??赏ㄟ^控制上下舵機的轉(zhuǎn)動角度,來改變攝像頭的位置,擴大攝像頭的視覺監(jiān)控范圍,以便于從上位機獲得更多環(huán)境信息。
負(fù)壓爬壁機器人結(jié)構(gòu)框架采用尼龍塑料加工,整體更加輕盈,機器人質(zhì)量為1.6 kg、尺寸為240 mm×240 mm×96 mm,機器人運動機構(gòu)采用履帶傳動式,運動更加平穩(wěn)。對其各功能模塊進行測試,首先檢查各個模塊接線是否完好,開啟電源開關(guān),將爬壁機器人放置在墻壁上,通過上位機操控爬壁機器人運動,觀察其運動情況、風(fēng)機調(diào)速、視頻傳輸、云臺舵機等是否正常工作,并根據(jù)實際工作狀況修改程序以對機器人進行調(diào)整,直至其所有功能達(dá)到預(yù)期效果。在系統(tǒng)各個功能模塊調(diào)試完成后,進行整體實驗測試。
對負(fù)壓爬壁機器人的最大運行速度和最小轉(zhuǎn)彎半徑進行測試,結(jié)果如表1所示。
表1 負(fù)壓爬壁機器人速度測試結(jié)果
由表1可知:負(fù)壓爬壁機器人直線運動時,最大運行速度為0.11 m/s;原地轉(zhuǎn)彎運動時,最小轉(zhuǎn)彎半徑為0.17 m,最大運行速度為0.09 m/s。
利用卷尺和量角器對負(fù)壓爬壁機器人進行轉(zhuǎn)向測量,在相同轉(zhuǎn)動角度下,測試不同差速單位脈寬時機器人的轉(zhuǎn)彎狀況,結(jié)果如表2所示。
表2 負(fù)壓爬壁機器人轉(zhuǎn)向測試結(jié)果
由表2可知:負(fù)壓爬壁機器人在最小差速單位時運行速度為0.04 m/s、在最大差速單位時運行速度為0.08 m/s,爬壁機器人轉(zhuǎn)向速度可調(diào),轉(zhuǎn)彎靈活。
為測試所設(shè)計的負(fù)壓爬壁機器人在壁面的運動狀況,在生活中3種常見的壁面上進行測試,分別為玻璃壁面、粉刷墻面、瓷磚壁面。
經(jīng)過實驗測試,負(fù)壓爬壁機器人在玻璃壁面、白色粉刷墻面、瓷磚壁面(寬度約4 mm,深度約3 mm)三種壁面均可以穩(wěn)定吸附,并且運動靈活。負(fù)壓爬壁機器人整體具有穩(wěn)定的吸附性,在測試過程中控制系統(tǒng)一切正常,可以完成無線遠(yuǎn)距離偵察監(jiān)控工作。壁面測試如圖10—圖12所示。
圖10 玻璃壁面 圖11 粉刷墻面 圖12 瓷磚壁面
利用STM32核心控制器設(shè)計了一套負(fù)壓爬壁機器人控制系統(tǒng),詳細(xì)介紹了該控制系統(tǒng)的硬件與軟件設(shè)計過程,最后對負(fù)壓爬壁機器人整體進行了系統(tǒng)測試,驗證了所設(shè)計的爬壁機器人控制系統(tǒng)的可行性。該控制系統(tǒng)可以驅(qū)動負(fù)壓爬壁機器人在不同壁面靈活移動,具有良好的穩(wěn)定性。通過各種功能模塊共同作用,實現(xiàn)了負(fù)壓爬壁機器人的連續(xù)運動、無線通信、視頻實時監(jiān)控等功能,為開發(fā)多功能負(fù)壓爬壁機器人提供了參考。