?

一款基于STM32單片機的六足巡檢機器人設計

2023-03-02 09:23徐琬婷梅源周欣悅
關鍵詞:循跡高電平舵機

徐琬婷,梅源,周欣悅

(蕪湖職業技術學院汽車與航空學院,安徽 蕪湖 241006)

0 引言

近年來,機器人技術的發展越來越成熟,巡檢機器人的應用領域也越來越廣泛。傳統的巡檢機器人大多采用輪子或履帶結構,雖然運動速度較快,但運動范圍局限在二維平面,無法在復雜的地形情況下移動,從而導致在實際的應用中有一定的限制[1]。為了解決機器人運動局限的問題,本設計采用了六足機器人,它采用每一足三舵機的結構,使得六足機器人的每一足的自由度大幅提升,步態更為豐富,更適應于起伏不平的地形,從而替代人工,完成更多的危險、繁重的任務。本文主要研究了STM32單片機控制原理、紅外模塊循跡原理、攝像頭檢測原理以及無線通信原理,設計出來的六足機器人具有可循跡、避障、檢測等功能,經過系統調試,六足機器人可滿足關鍵技術指標,完成巡檢任務。

1 系統的總體架構

1.1 性能要求

六足智能巡檢機器人采用STM32單片機為主控制器。通過舵機控制板來控制總線舵機轉動,從而實現六足巡檢機器人移動功能[2]。利用兩路循跡模塊使六足巡檢機器人自動按照指定路線運動,WiFi攝像頭用于錄制視頻并同步上傳至手機以達到實時巡檢的功能。超聲波測距模塊檢測循跡路線的障礙物,實現自主避障功能[3]。為了更好地實現控制,它還能夠與手機和手柄進行無線控制,并通過無線同步模塊與計算機進行無線通信[4]。

1.2 系統總體架構

六足巡檢機器人具有自動循跡、同步視頻、無線控制和自動避障等功能。它可針對各種復雜環境,采用不同的步態,使六足機器人能夠更好地完成巡檢任務。硬件主要包含主控芯片、舵機控制板、總線舵機、威發(wireless fidelity,WiFi)攝像頭、循跡模塊、超聲波模塊、無線傳輸模塊等部分組成,系統的總體框圖如圖1所示。

圖1 系統總體框圖

圖1中的超聲波測距模塊檢測進路中的障礙物從而實現自主避障;WiFi攝像頭對特定區域進行巡視,監控現場環境,將現場視頻傳輸給手機App,進行識物和自動巡檢;舵機控制板主要控制18個舵機的運動,六足巡檢機器人每足配有3個舵機,可通過不同的控制算法來改變姿態進行控制,從而實現步態變換,適應不同地形;循跡模塊利用紅外循跡模塊檢測定線,并進行循跡追蹤;藍牙模塊和無線手柄實現了對六足機器人的多種無線控制方式;無線同步模塊也解決了六足機器人與計算機之間的通信問題,使系統調試更加便利[6]。

系統啟動后,控制器控制系統進行姿態復位,復位后進入自動模式。WiFi攝像頭自動開啟并將同步視頻傳輸至手機App,循跡模塊啟動,按照定線開始自動巡檢。超聲波測距模塊通過測距查找障礙物,檢測到前方有障礙物時,自動避障。系統設置了計算機控制、手機控制和手柄控制3種控制模式均可以控制六足機器人的高、中、低姿態以及高、中、低速。調試時,可設置為手動控制模式,直接通過串口向單片機發送指令來控制六足機器人的運動。

2 系統硬件設計

2.1 主控模塊

六足機器人的主控模塊采用了STM32F103C8T6單片機,它是一種嵌入式微控制器的集成電路,集成了256 kb字節的FLASH存儲器和高達48 kb字節的動態隨機存取存儲器(static random access memory,SRAM),既能存儲大量用戶程序和數據,又能夠搭載操作系統。它以ARM為核心的32位微控制器,工作頻率最高可達72 MHz,存儲器的零等待周期訪問時可達1.25 DMIPS/MHz,能很好地滿足六足機器人系統的實時性,不僅具有時鐘、復位、電源管理及數據備份功能,還具有低功耗模式[8]。同時還具有看門狗功能,可以有效地增強系統的穩定性。自帶3個12位模數轉換器和2通道12位AD轉換器,8個定時器以及13個通信接口。STM32F103C8T6其通用IO口多達51個,應用在六足機器人上,能很好地滿足系統高性能和低功耗的需求[9]。

如圖2所示是STM32F103C8T6單片機的原理。下面對單片機的相關引腳進行說明。

圖2 STM32F103C8T6單片機原理

VDD是+3.3 V電源引腳,VSS接電源負極或者地線。OSC_IN、OSC_OUT是外接晶振引腳,作為單片機的外部時鐘。通過分頻器和倍頻器可使系統時鐘達到72 MHz。BOOT0、BOOT1引腳用于設置BOOT模式,支持主閃存存儲器、系統存儲器和內置SRAM模式,通常設置為主閃存存儲器模式即可。PA0-PA15、PB0-PB15、PC0-PC15、PD0-PD2為通用IO口,共51個引腳。這些GPIO均可作為通用端口使用,具有8種模式,通過 7個相關寄存器來控制,并且每個IO都能夠進行外部中斷,同時還具有復用功能。STM32 單片機提供了相當豐富的外設,如串口、定時器、SPI總線等,性能很穩定[10]。SysTick定時器保證UCOSIII的運行,PA5、PA7控制超聲波模塊,串口1(PA9,PA10)與WiFi攝像頭相連接,串口3(PB10,PB11)與舵機控制板相連接,與藍牙模塊相連接,GPIO可直接與循跡模塊相連。

2.2 舵機模塊

本系統采用了ZX361D總線舵機來完成六足巡檢機器人的運動控制。各舵機模塊采用單總線串口通信方式,16個舵機采用串聯的方式進行級聯,具有多角度回讀、多視角工作和模式自動轉換等功能。ZX361D總線舵機控制方式簡單,內部裝有一個主控芯片,可以實現對PWM信號的實時控制,用戶可只需輸入一個指令即可自動完成對舵機信號的實時控制。ZX361D總線舵機的接線端口如圖3所示。由圖3可知,ZX361D有3個引腳。其中引腳1接地,引腳2接電源(供電電壓為5~8.4 V),引腳3接信號線并與STM32單片機進行通信。ZX361D工作時,需要一個20 ms的時基脈沖,時基脈沖高電平范圍為0.5~2.5 ms。

圖3 ZX361D總線舵機的引腳圖

以180°舵機為例,高電平時間與絕對角度的關系如表1所示。通過使用串口命令調節,ZX361D總線舵機可以自行完成PWM的調節來完成角度調節。它的總質量僅為59 g,在供電電壓為6 V的情況下,轉動速度可達0.16 s/60°,舵機精度為0.24°。通過ZX361D總線舵機的控制,可滿足六足機器人的高精度控制[11]。

表1 高電平時間與絕對角度關系表

2.3 攝像頭模塊

六足巡檢機器人利用攝像頭來完成識別和自動巡檢工作。WiFi攝像頭模塊采用720 P高清攝像頭,支持Ardroid和IOS雙系統,其分辨率可設置為QVGA、VGA和720 P模式,具有本地連接和遠程連接2種模式,能清晰地拍攝圖像。內嵌P2P云服務器使得遠程訪問更方便,視頻傳輸更為快速,有效傳輸距離可達50 m。模塊采用ARM926EJ-S作為CPU,搭載Linux-2.6.35.5操作系統,采用UART與單片機通訊,初始波特率為115 200[12]。

2.4 避障模塊

六足巡檢機器人采用HC-SR04超聲波傳感器來完成避障,它尺寸小、價格低、壽命長、使用效率高,檢測范圍為2~450 cm,測量精度可達3 mm,工作時電流為2.2 mA,工作溫度為-10~90 ℃。

工作時,測距模塊的控制口TRIG發送一個10 μs以上的高電平作為觸發信號,超聲波發射探頭開始循環發射8個40 KHz的脈沖,遇到障礙物時,信號將被返回,形成回響信號被接收探頭接收,ECHO端輸出高電平。發出的高電平與接收的高電平的時間,與機器人距離障礙物的距離成正比。通過單片機的定時器采集時間,將觸發信號時間設為0,測量ECHO端口高電平的時間,利用公式(1)來計算距離:

式中:S表示待測距離;T表示ECHO端口高電平時間;v表示聲速。

測距周期應該高于60 ms,以防止超聲波發射和接收相互干擾[13]。

2.5 循跡模塊

六足巡檢機器人采用TCRT5000紅外循跡傳感器來完成紅外線的檢測并實現循跡。模塊上的紅外發射二極管不斷發射紅外線,當發射出的紅外線沒有被反射回來或被反射回來但強度不夠大時,紅外接收管便處在關斷狀況,U1A電壓比較器的輸出高電平,指示燈一直處于熄滅狀態,被檢測物體出現在檢測范圍內時,紅外線被反射回來且強度足夠大,紅外接收管處于飽和狀態,U1A電壓比較器的輸出低電平,指示燈被點亮。它的檢測反射距離為1~25 mm,工作電壓為3.3~5 V,其中DO為數字開關量輸出,抗干擾能力強,可以通過此功能巡線,AO輸出為模擬信號輸出(不同距離輸出不同的電壓),六足巡檢機器人可根據此端口的輸出,來判斷機器人與定線之間的距離。

2.6 藍牙模塊

六足巡檢機器人利用DX-BT18無線通信藍牙模塊來完成手機無線控制。它采用串口與單片機之間通信,通信電平為3.3 V,通信距離可達30~40 m。內嵌BT4.2 Dual-Mode協議線,支持BT3.0 SPP標準協議和BT4.2 BLE協議,無線工作頻段為2.4 GHz ISM band,調制方式是GFSK。該模塊能夠與Windows、Linux、Andriod以及IOS系統的設備直接連接,并支持后臺程序常駐運行。它外形采用了郵票孔封裝,自帶LED燈,可通過LED燈的亮滅,直觀地判斷藍牙的連接狀態。它具備藍牙2.0高速率透傳的優勢,并外設專業射頻屏蔽罩,可有效屏蔽外界電磁波對內部電路的影響,原理如圖4所示。

圖4 DX-BT18藍牙模塊原理

3 系統軟件設計

六足巡檢機器人的軟件主流程如圖5所示.在主函數中,首先對系統進行初始化,初始化后設置六足巡檢機器人的控制模式,主要包含4種控制模式,分別是自動控制模式、手機控制模式、手柄控制模式以及計算機串口控制模式。選擇好模式后,為操作系統創建任務,操作系統將通過優先級調度算法和輪轉調度算法來對這些任務進行合理的調度。最后開啟操作系統,發起一次調度,將當前程序計數器(PC)所保存的地址入棧,將優先級最高的任務的地址傳給PC,從而結束主函數,開始執行各個任務。當設置為自動模式時,六足巡檢機器人將會沿著地面上黑線行走,攝像頭將會拍攝視頻并同步上傳至手機App。如果操作檢測到障礙,系統將控制六足巡檢機器人避開障礙物。當設置為其他模式可選擇利用手機或手柄以及串口控制,通過按鍵或固定的指令控制六足機器人做出各種運動姿態。

圖5 主程序流程圖

3.1 避障程序設計

避障任務在μC/OSIII系統中優先級設置為3,當避障任務進入運行狀態時,堆棧彈出避障程序入口地址到PC中。在避障程序中,STM32單片機向超聲波測距模塊發送一個10 μs高電平的觸發信號,超聲波模塊開始發射探測信號,并接收端檢測回響信號。當未檢測到回響信號時,則再次發送觸發信號;當檢測到回響信號,則計算出與障礙物的距離。六足機器人通過距離來繞過障礙物,任務執行后,再重新返回到主路線繼續行進。避障子程序的流程如圖6所示。

圖6 避障子程序流程圖

3.2 數據傳輸程序設計

數據傳輸任務在μC/OSIII系統中優先級設置為3,與優先級同為3的避障任務之間采用時間片輪轉調度算法進行調度,當數據傳輸任務進入運行狀態時,堆棧彈出數據傳輸程序入口地址到PC中。STM32單片機接收來自手機藍牙的數據,并通過USART3將數據發送給舵機控制板,從而控制六足巡檢機器人的運動。與此同時,單片機將接收來自舵機控制板的返回數據并用USART3打印出該數據。數據傳輸程序的流程如圖7所示。

圖7 數據傳輸程序流程圖

3.3 六足機器人步態設計

六足機器人擁有豐富的步態,其中以三角步態最富有標志性。六足機器人6條腿的分別如圖8所示,左側的前、中、后足分別記為1、2、3腳,右側的前、中、后足分別記為6、5、4腳。六足機器人的1、3、5腳和2、4、6腳分別構成一組。當六足機器人前進時,可選擇一組腳作為支撐相,另一組腳作為擺動相。首先擺動相的腿抬起向前擺動,支撐相的腿支撐六足機器人本體,并通過舵機使機器人身體前移,移動完成后擺動相的腿立即落下,然后交換支撐相與擺動相重復上升過程即可實現六足機器人不斷向前運動。

圖8 六足機器人結構簡圖

4 系統調試

4.1 手機控制調試六足機器人

首先使用手機藍牙助手向STM32單片機發送前進運動命令、再由單片機將命令發送給舵機控制板進而控制六足機器人的運動。圖9為手機藍牙助手操作界面,當按下前進按鈕時,會向單片機發出$DKT:45,0!命令。該命令包含舵機PWM占空比和動作延遲時間2項數據。舵機動作延遲時間統一設置為500 ms。調試針對不同的地形完成調試,采集數據101次,手機平均最遠控制距為46.7 m,巡線、避障、攝像頭采集信號功能正常,達到技術指標。

圖9 手機藍牙助手操作

4.2 六足機器人手柄調試

手柄配置中分有兩種模式,分別是綠燈模式和紅燈模式。綠燈模式主要控制低速和中姿態動作,紅燈模式下主要控制高姿態及翻轉動作。等待配對成功后綠燈常亮,此時為綠燈模式,按下 MODE鍵可切換為紅燈模式。以調試六足機器人左轉為例說明調試過程,當六足機器人上電正常運行后,按下 “LL”鍵無線手柄會發送$DKT:49,0!命令至無線手柄接收器,由舵機控制器讀取接收器中的命令,再輸出與命令相對應的動作組數據來控制舵機左轉45°角。同理,當按下“RL”鍵,無線手柄會發送$DKT:48,0!至接收器,將會使六足機器人左轉90°角,經過測試,手柄控制有效距離可達53 m,避障、循跡功能正常。圖10為無線手柄按鍵配置圖。

圖10 無線手柄配置圖

配置的各種控制按鈕,控制六足機器人的運行,按鍵及具體功能如下表2所示。

表2 手柄控制功能表

4.3 六足機器人計算機串口調試

以調試六足機器人右移為例說明調試過程,當六足機器人上電正常運行后,在計算機串口助手中發送字符“RL”加上換行回車即可控制六足機器人完成右移運動。并且串口助手會顯示用戶所發出的動作和動作所對應的命令。圖11為六足機器人右移時,串口通信數據,其中波特率為115 200,所用的串口為COM5,串口通信的數據是8位,停止位為1表示數據傳輸完畢。

圖11 串口助手

5 結束語

本文提出了一種基于STM32單片機控制的六足巡檢機器人的系統,它通過外加紅外循跡、超聲波模塊、攝像頭、藍牙等模塊實現了自動巡跡、避障、監控、無線控制等功能。通過調試結果表明,采用舵機為主要驅動器的六足機器人,每一足精度可達到0.24°,系統避障精度可達3 mm,可利用手機和手柄遙控完成六足巡檢機器人的無線控制,有效控制距離可以達到40 m以上。另外,系統可根據單片機發出的脈寬調制(pulse width modulation,PWM)值完成步姿控制及速度切換,從而可以適用于更多的巡檢場合。相比于傳統的輪式和履帶式機器人,它的速度沒有輪式和履帶的速度快,但是系統的平衡性和穩定性是最強的,可以根據不同的控制方式完成不同的步態,更適合復雜的路面。從控制的復雜程度來說,六足巡檢機器人由于需要18個舵機同時控制調整姿態,所以它的控制算法較為復雜。從耗能上來看,輪式機器人的效率最高,更適應于平坦的地面。而六足機器人由于驅動較多,且需要互相配合,能耗相對較高,效率也相對有限,但具備靈活的移動能力,可以攀爬和越障。

六足機器人具備高穩定性、靈活性,機動性,適應于各種復雜地形的巡檢,后續將對六足巡檢機器人的硬件部分再進行優化,并在控制算法上做進一步的研究,從而提高整個系統的協調性、運行效率及功耗,并將它推廣到更多領域,如海洋探索,極端環境下的科學研究,智能運輸等。

猜你喜歡
循跡高電平舵機
基于DFT算法的電力巡檢無人機循跡檢測系統設計
一種基于FPGA的PWM防錯輸出控制電路
TS-03C全固態PDM中波發射機開關機控制電路原理及故障分析
含齒隙彈載舵機的全局反步模糊自適應控制
基于單片機的智能循跡小車的設計
基于dsPIC單片機的飛艇舵機控制實現
智能差分循跡小車設計
基于高速同步485總線通信的多通道舵機控制器設計
DM 50KW中波廣播發射機欠推動故障分析
PDM 1kW中波廣播發射機保護電路分析
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合