肖玉笛
(西北民族大學,甘肅蘭州,730106)
本設計主要用于機器人智能探測與采集大型塑膠管道內的數據,用戶可以通過WiFi操控機器人或者可以機器人智能離線運行。在機器人運行圖中若發現管道存在破損或堵塞會將此時的管道圖像拍攝想來通過WiFi模塊傳遞給上位機等待人工處理。機器人也可進行智能離線運行,運行圖中使用圖像采集模塊對環境進行拍攝,并將圖像信息傳遞給MSP430進行處理從而判斷機器人接下來的運行情況,當檢測出圖像中有破損或很多雜質黏合的時候,即管道出現破損或者堵塞,此時機器人會將圖像信息拍攝下來儲存在TF卡中,并且在MSP430通過GPS模塊建立的管道平面圖中將該點標記為損壞或者堵塞,機器人返回后,用戶可以根據采集回來的數據進行進一步的分析,從而了解到管道里的情況,編導管道維修人員對管道進行維修與清理工作。
管道檢測機器人由上位機和下位機兩部分組成。系統的框圖如圖1所示,其中上位機與下位機通過WiFi模塊相連接,通過自己編寫的軟件,實時顯示機器人的控制界面,主要包括環境圖像信息、環境溫濕度信息、照明系統工作信息、機器人行走速度、轉彎顯示等功能。而下位機是由以下重要幾部分組成:(1)電源模塊:由于各個模塊的標準工作電壓的不同,所以需要一個電源模塊來將輸入的15V的直流電轉化為各個模塊的工作電壓。(2)驅動模塊:使用L298N電機驅動模塊,這是一款經典且兼顧性價比的驅動模塊。(3)圖像采集模塊:使用OPEN MV4可編程攝像頭。可以通過MicroPython語言,對攝像頭編程從而實現需要的邏輯。攝像頭還內置了部分圖像處理的算法,使用起來較為容易。(4)GPS模 塊:通 過HT1612Z3M3LD模塊將管道機器人的實時位置經MSP430處理后通過WiFi模塊傳遞給上位機。(5)LCD顯示模塊:將環境圖像信息、管道機器人的運行狀態信息、環境溫濕度、有害氣體含量等信息顯示在LCD顯示屏上便于人工對管道機器人的控制。(6)環境檢測模塊:通過溫濕度傳感器與有害氣體檢測傳感器檢測出的數據傳入MSP430等待處理。(7)WiFi模塊:將環境檢測模塊檢測的數據與圖像采集模塊采集的環境數據等通過ATK-ESP8266模塊傳遞給上位機。

圖1 系統框架圖
控制模塊采用的主控芯片為美國TI公司推出的超低功耗微處理器MSP430。它的主要資源有:60KB+256B的FLASH閃存、2KB的RAM、帶有PWM輸出功能及3個捕獲/比較寄存器的16位定時器、2個串行通信接口、2個8位的并行口并且帶有外中斷功能、4個8位并行端口、一個12位AD轉換器等模塊。MSP430及部分周邊電路示意圖如圖2所示。最小系統是由保證處理器可靠工作所必需的基本電路組成的,主要包括電源電路、時鐘電路、復位電路等。本系統需要使用+5V和+3.3V的直流穩壓電源,其中MSP430及部分外圍器件需要+3.3V電源,另外部分需要+5V電源。在本系統中,以+5V直流電壓為輸入電壓,+3.3V由+5V直接線性降壓。采用電源模塊輸出的+3.3V與+5V為系統供電。

圖2 MSP430及部分周邊電路示意圖
MSP430的所有外圍模塊的控制都可通過特殊寄存器來實現,故其程序的編寫較為簡單。編程開發時通過專用的編程器CCS或者通用編輯器Keil4即可,編程語言可以選擇匯編語言或者C語言。本設計中采用的是C語言來編程。
MSP430主要功能為:對圖像采集模塊的圖像信息進行處理讓其顯示在LCD顯示模塊中、為驅動模塊提供電機運作的PWM信號、對GPS模塊的信息進行處理與回應、對環境采集模塊的傳感器傳輸來的信息進行處理并讓其顯示在LCD模塊中方便人工進行控制。將LCD顯示的圖像數據、溫濕度傳感器檢測的數據、電機的轉速等數據通過WiFi模塊傳給上位機讓人工了解管道的情況。
電源可為管道機器人提供動力,并且為控制系統及傳感器供電,本系統采用的是由15V直流電池經過穩壓后進行升壓降壓從而達到各個模塊的標準工作電壓的需要。本模塊采用Buck-Boost變換器即升降壓斬波電路來實現。該電路由一個IGBT、一個大電感、一個二極管、一個濾波電容構成。電路極為簡單,只需要調節給IGBT的PWM信號波即可實現升壓與降壓的功能。值得注意的是,由于電路的構造,使負載電壓的極性為上負下正與電源電壓極性正好相反,因此該電路也叫做反極性斬波電路,使用時為了保證輸出電壓極性與其他模塊一致,接入時將電源線與地線反接即可。
驅動模塊采用的是L298N直流電機驅動模塊。此電機驅動模塊性價比極高,最大功率為20W,足夠驅動兩個電機使用,并且還有多種供電模式,可選擇版內供電或者外接電池供電,可用供電范圍為5~35V,完全滿足本管道機器人的使用,通過的邏輯電流僅0~36mA,而MSP430的I/O輸出電流約為0~32mA完全滿足需要。L298N使用極為簡單只需給模塊供電后,將MSP430與L298N共地,使用杜邦線傳輸PWM信號即可驅動電機運作。缺點是體積較大,功耗優化不好。L298N采用的是H橋雙路驅動,可以同時驅動兩個電機運作,本管道機器人只需要兩個L298N即可實現。
圖像采集模塊使用的是OPEN MV4可編程攝像頭,OPEN MV4內置了STM32H743VI處理器,它具有400 MHz的頻率,有1MB的RAM,有2MB的FLASH閃存。因此可以在模塊內就內置攝像頭的驅動程序和一部分的功能程序,這就極大地簡化了主控芯片的負荷,只需要給STM32H743VI一段可執行的程序即可。而OPEN MV4內置有SD卡,SD卡又可以看作一個文件系統,當給模塊上電時,SD卡的文件系統就會自動取代STM32H743V中內置的Flash文件系統,每次上電,就會運行SD卡中的main.py文件,即給OPEN MV4內置的功能主函數。此攝像頭模塊使用的是Python編程,Python作為一門擴展性極強的語言應用于嵌入式是毫無問題的,而對于OPEN MV4的編程由于官方提供了大部分的攝像頭基礎功能的函數,如圖像數據的采集處理、圖像的識別處理,圖像文件的傳輸等,這就讓其使用起來簡化的很多。
GPS模塊采用的是HT1612Z3M3LD模塊,具有北斗與GPS雙模定位功能,它的體積極小,定位精度高,由于此模塊采用了AT6558R低功耗芯片,所以其功耗低,靈敏度高,由于模塊使用了0.5PRM的高精度TCXO來完成正交誤差等誤差補償,使其定位的精度變得很高,就算在信號很差的管道中也能保持良好的定位功能。內置有LNA低噪聲信號放大器,使得其抗干擾性與定位的精準度進一步提高。GPS模塊通過實時定位將位置信息傳遞給MSP430處理后可以顯示在LCD模塊中或者用于構建管道的平面圖等,也可以將位置信息通過WiFi模塊發送給上位機,方便人工操控管道機器人的。
本模塊采用的是由ALIENTEK公司推出7寸RGB接口電容觸摸屏模塊ATK-7016。該模塊分辨率為1024×600,且最高支持24位真彩顯示。由于該模塊沒有內置顯存,因此在使用時需提供給它外部RAM來作為模塊的顯存使用。該模塊具有觸摸功能,最多可支持5點同時觸摸,因此具有較好的操控效果。該模塊尺寸為100mm×180mm,正好可以放置在管道機器人的上部當作人工操作顯示屏來使用,主要用來顯示環境圖像、環境數據、管道機器人運行數據等。
環境檢測模塊主要有溫度、濕度、有害氣體檢測等。本模塊中溫濕度的測量使用的是數字溫濕度傳感器DHT11,它是由一個電阻式感濕元件、一個NTC測溫元件和一個用于計算與校驗溫濕度數值的八位的單片機組成,因此它具有很高的抗干擾性,既有較高的精度。測量的濕度范圍為:20%~90%RH溫度范圍為:0℃~50℃,完全滿足本管道機器人的使用。它的體積極小,功耗極低。每個傳感器都內置有標準校準系數,在測量結果送入八位單片機后進行校準數據計算,再通過串口傳入MSP430中處理即可。本模塊中有害氣體的檢測使用的是MQ135空氣質量檢測傳感器,它使用二氧化錫作為氣敏材料,由于二氧化錫在清潔空氣中電導率低,而空氣被污染時,二氧化錫的電導率會上升,所以可以將電導率與空氣中有害物質的含量成一個函數關系而計算出有害氣體的濃度。通過一個簡單的外圍電路即可實現。它可以用于檢測氨氣、硫化物、苯系蒸汽、煙霧等有害氣體,檢測的濃度范圍為:10~1000ppm。溫濕度與有害氣體的濃度檢測數據均被MSP430處理后直接顯示在LCD顯示屏上,并通過WiFi模塊將數據傳輸給上位機讓人工對數據進行記錄,從而可以避免人工進入不利于人類進去的管道中。
WiFi模塊的是ATK-ESP8266,它是由ALIENTEK公司開發的一款UART-WiFi模塊, 該模塊采用串口與其他設備進行通信,內置有TCP/IP協議棧,實現了串口數據與WiFi之間的轉換。使用該模塊,將傳統的串口數據通過WIFI來進行傳輸,本管道機器人中主要使用WIFI來傳輸圖像信息與人工發出的控制信息等。該模塊兼容了3.3V與5V的系統,可以非常方便地連接上管道機器人。該模塊的工作頻率為2.4GHz,發射功率約為11~18dbm,板載有PCB天線,因此體積較小約為29mm×19mm,該尺寸放置在管道機器人的右后方剛剛好。主要使用的無線標準為IEEE 802.11b,最高支持54Mbps的無線傳輸速率,完全可以滿足本管道機器人的數據傳輸要求,該模塊的WiFi工作模式有:WiFi STA、WiFi AP、WiFi STA+WiFi AP三種工作模式,從而使得模塊可以快速構建WiFi數據傳輸的方案,方便管道機器人與上位機之間的連接。本模塊作用主要是通過WiFi模塊將LCD顯示的信息與環境信息傳遞到上位機,從而通過人工判斷小車接下來的運行情況與記錄環境的數據等。
系統的程序框圖如圖3所示,首先管道機器人進行初始化,初始化完畢后等待人工通過上位機發送運行信息,若為人工控制,則管道機器人完全由人工通過WIFI來控制其運行。此時只需如果能夠通過同步來的圖像與環境的各種信息來進行遙控機器人運行即可。若十秒內沒有收到上位機發來的運行信息或者運行信息為機器人智能控制,則機器人會根據圖像信息判斷前方是否堵塞而選擇繼續運行或者將堵塞的圖片信息發送給上位機等待人工處理的結果,若此時存在第二個通道,則機器人會直接進入第二通道繼續進行管道的勘探與測量工作。若此時沒有發生堵塞,機器人會檢測環境空氣有害氣體含量,若有害氣體含量超過整定值,機器人會通過WiFi發送警報信息給上位機等待人工處理。機器人運行過程中的所有圖像信息、環境溫濕度信息、機器人運行狀態信息等都會在LCD顯示屏中顯示出來。并且WiFi模塊會實時將LCD顯示屏上的信息傳遞給上位機。由于WiFi存在極限控制距離,當機器人即將超出控制距離時,會等待人工信號,若需要傳遞來運行信號為撤退,則機器人會通過由GPS模塊得到位置信息通過MSP430構建管道平面圖并撤離。若傳遞來運行信號為離線智能運行,則機器人會啟動離線智能運行模式,會自動判斷是否有路線通過,并且將所拍攝的圖像信息與環境數據儲存在TF儲存卡中,等待返回后人工處理。

圖3 系統程序框圖
如圖4所示為部分主程序,程序中展現了LCD的顯示程序與WiFi的接收與傳遞信息的程序,在一個正常運行的死循環內,會將溫濕度傳感器傳遞來的信息分別儲存到兩個字符數組WenDu_Str與ShiDu_Str中,有害氣體檢測模塊傳遞來的信息經MSP430處理后變成字符數據儲存在YouHaiQiTi_Str中,之后通過LCD顯示函數LCD_ShowString將其顯示在LCD顯示屏上。由于圖像信息較為復雜,并不是單獨的字符數據,所以在此編寫了一個子程序Tu_LCD()來進行將圖像信息顯示在LCD顯示屏上的功能。WIFI()函數的功能是主動將數據發送給上位機。并且在程序運行狀態中,接收WIFI信號與接收環境檢測模塊傳遞來的溫濕度等信息都是通過中斷函數來接收的,在此處不過多展示。

圖4 部分程序示意圖
本設計中的管道機器人功能尤為強大,不僅實現了自動智能運行,又實現了復雜情況人工控制。兩種運行方式足以適應絕大部分管道地形,而有害氣體的檢測功能極大地保障了管道維修人員的人身安全,通過小車的運行軌跡構建的管道平面數據極大地方便了管道維修人員對管道進行保養與維護。因此,在不久的將來管道檢測機器人將會完全代替人工進行管道的檢測,甚至可能還會出現管道維修機器人,可完全代替人工進行這項成本高危險系數大的工作。