林鈺旋+陳森茂+史春笑



摘 要:APP遠程監(jiān)控機器人是基于Android系統(tǒng)編寫APP,通過手機APP發(fā)送指令,ARM接收指令,通過串口發(fā)送給藍牙小車進行運動控制。本文主要介紹監(jiān)控機器人系統(tǒng)中藍牙小車運動控制部分,本設(shè)計以K60芯片為控制核心,采用IRF3205作為電機驅(qū)動的MOS管,配以藍牙從機無線模塊,實現(xiàn)小車的運動控制,同時具有自動避障等功能。
關(guān)鍵詞:K60 藍牙遙控 電機驅(qū)動
中圖分類號:TP242 文獻標識碼:B 文章編號:1003-9082 (2017) 04-0216-03
一、引言
APP監(jiān)控機器人在家庭、工廠、醫(yī)護等需監(jiān)視的場合發(fā)揮著重要的作用,它可以有效避免一些意外事故的發(fā)生。互聯(lián)網(wǎng)、手機APP安卓系統(tǒng)的開發(fā),使得人們通過手機就可以輕松控制機器人的移動。無線遙控實現(xiàn)方法包括藍牙、紅外、射頻等幾種,其中藍牙技術(shù)具有一定優(yōu)勢,目前被廣泛應(yīng)用在信息家電方面,各種家電共用遙控,并在可組網(wǎng)與公眾互聯(lián)網(wǎng)中連接,共享有用信息。藍牙技術(shù)實現(xiàn)無線遙控具有很高的市場價值及廣闊的應(yīng)用前景。本設(shè)計通過結(jié)合ARM開發(fā)板,利用無線通信及K60藍牙處理、硬件測試,達到機器人實時監(jiān)控、運動的目的。
二、系統(tǒng)硬件設(shè)計
1.總體方案設(shè)計
本系統(tǒng)以K60單片機為核心控制器,通過接在K60主板上的藍牙從機接受來自ARM開發(fā)板的指令,傳給K60讓其做出相應(yīng)處理,通過PWM調(diào)制頻率,使電機驅(qū)動模塊工作。利用H橋電機驅(qū)動電路,控制兩個電機差速,從而改變輪子的轉(zhuǎn)向,達到控制小車運動的目的。通過超聲波避障模塊使小車安全行駛。整個藍牙小車模塊通過一個模塊電源供電,根據(jù)不同模塊的工作需求,電源模塊提供了3.3V、5V的電源。系統(tǒng)硬件框圖設(shè)計見圖1。
2.系統(tǒng)主要硬件模塊介紹
機器人小車硬件模塊主要有K60單片機、機器人小車底盤、藍牙串口模塊、電機驅(qū)動模塊、機器人小車電源模塊、7.2V鎳鎘電池。
2.1 K60單片機
K60芯片電源類引腳,BGA封裝22個,LQFP封裝27個,其中BGA封裝的芯片有五個引腳未使用。芯片使用多組電源引腳分別為內(nèi)部電壓調(diào)節(jié)器、I/O引腳驅(qū)動、A/D轉(zhuǎn)換等電路供電,內(nèi)部電壓調(diào)節(jié)器為內(nèi)核和振蕩器。為了電源穩(wěn)定,MCU內(nèi)部包含多組電源電路,同時給出多處電源引出腳,便于外接濾波電容。K60最小系統(tǒng)芯片上同時具有藍牙接收模塊,這樣在設(shè)計主板上就節(jié)省了引出藍牙從機的插槽。
設(shè)計K60單片機的整個主板硬件控制電路,其中包括K60最小核心板及電機驅(qū)動PWM的接口,K60硬件主板引腳功能說明見表1。K60最小系統(tǒng)的引腳及主板設(shè)計的原理圖見圖2。
2.2 機器人底盤及電機
為了方便機器人運動轉(zhuǎn)向,本設(shè)計選擇了兩個電機分別控制兩個車輪,一個萬向輪在底盤前面,這樣利用電機的差速驅(qū)動左右電機不同轉(zhuǎn)速,就可以實現(xiàn)小車的轉(zhuǎn)向,圖3所示是小車的3輪底盤。由于驅(qū)動機器人需要很大的轉(zhuǎn)矩,所以選擇扭矩大,負載能力強的大功率直流電機。
2.3藍牙串口模塊
在K60最小系統(tǒng)板上有通用的藍牙接口模塊,通過外接藍牙從機模塊,就可以實現(xiàn)藍牙從機接收外部信號,傳送給K60單片機做出相應(yīng)處理。本設(shè)計采用LQ-BTM藍牙從機,在與K60連接時要注意正確的通訊,BTM的RXD要與K60的TXD連接,K60的RXD要與BTM的TXD連接。藍牙從機接上K60后,LED燈常亮,表示藍牙連接狀態(tài),閃爍表示沒有藍牙連接。通過手機APP界面的藍牙端發(fā)送指令,從機接收信號指令傳到K60,就可以進行運動處理,藍牙接口正確通訊連接見圖4。
2.4電機驅(qū)動模塊
機器人小車采用兩個直流電機進行差速運動,電機驅(qū)動模塊是典型的H橋電路,工作原理見圖5。
它是由四個三級管和四個二極管組成的控制電路,由于它的形狀酷似字母H,所以電路得名“H橋驅(qū)動電路”。要使電機運轉(zhuǎn),必須使對角線上的一對三極管導(dǎo)通。假設(shè)當Q1管和Q4管導(dǎo)通時,電流就從電源正極經(jīng)Q1從左至右穿過電機,然后再經(jīng)Q4回到電源負極,該流向的電流將驅(qū)動電機往某一方向轉(zhuǎn)動;當三極管Q2和Q3導(dǎo)通時,電流將從右至左流過電機,從而驅(qū)動電機沿另一方向轉(zhuǎn)動,實現(xiàn)電機的正反轉(zhuǎn)。
根據(jù)H橋驅(qū)動電路,合理設(shè)計機器人小車電機驅(qū)動模塊,采用IRF3205共8個MOS管組成兩個電機的驅(qū)動電路,更好的實現(xiàn)電流、電壓的可逆,使小車更加穩(wěn)定運動。雙電機驅(qū)動模塊接口原理圖見圖6,電機驅(qū)動電路見圖7。
2.5電源模塊
電機驅(qū)動模塊需要5V電源,利用LM1117-5穩(wěn)壓芯片將來自外部7.2V的鎳鎘電池穩(wěn)壓成5V。同理利用L6932芯片,采用多電容濾波,使穩(wěn)壓后的3.3V電源更加穩(wěn)定。圖8所示是5V和3.3V穩(wěn)壓電路原理圖。
三、軟件設(shè)計實現(xiàn)
1.系統(tǒng)流程圖
本設(shè)計的系統(tǒng)流程圖見圖9,包含主程序流程圖及串口中斷服務(wù)函數(shù)。實現(xiàn)藍牙接收手機端發(fā)送過來的指令送給單片機進行處理,控制機器人小車運動,并實現(xiàn)自動避障功能,使機器人小車穩(wěn)定運動。利用IAR軟件編程,燒寫程序進入K60單片機。整個設(shè)計涉及到藍牙模塊的設(shè)置,電機驅(qū)動輸出頻率的控制,以及串口中斷服務(wù)函數(shù)設(shè)計。
2.電機驅(qū)動PWM控制
在K60單片機中,利用FTM產(chǎn)生PWM來控制電機輸出占空比,從而使電機能夠進行差速,進而達到轉(zhuǎn)向的目的。程序中利用FTM_PWM_Duty()函數(shù),來控制FTM產(chǎn)生PWM調(diào)制波進而產(chǎn)生不同占空比。電機驅(qū)動程序如下:
void Moto_Forward//前進
{FTM_PWM_Duty(FTM0, FTM_CH0,500);
FTM_PWM_Duty(FTM0, FTM_CH1,0);
FTM_PWM_Duty(FTM0, FTM_CH2,500);
FTM_PWM_Duty(FTM0, FTM_CH3,0);}
void Moto_Backward()//后退
{
FTM_PWM_Duty(FTM0, FTM_CH0,0);
FTM_PWM_Duty(FTM0, FTM_CH1,500);
FTM_PWM_Duty(FTM0, FTM_CH2,0);
FTM_PWM_Duty(FTM0, FTM_CH3,500);}
void Moto_TurnLeft()//左轉(zhuǎn)
{FTM_PWM_Duty(FTM0, FTM_CH0,0);
FTM_PWM_Duty(FTM0, FTM_CH1,0);
FTM_PWM_Duty(FTM0, FTM_CH2,0);
FTM_PWM_Duty(FTM0, FTM_CH3, 500);
}
void Moto_TurnRight()//右轉(zhuǎn)
{FTM_PWM_Duty(FTM0, FTM_CH0,500);
FTM_PWM_Duty(FTM0, FTM_CH1,0);
FTM_PWM_Duty(FTM0, FTM_CH2,0);
FTM_PWM_Duty(FTM0, FTM_CH3,0);}
3.USART串口中斷服務(wù)函數(shù)
通過打開串口接收中斷,進入中斷,執(zhí)行UART4中斷服務(wù)函數(shù),根據(jù)串口接收到的不同字符“E”、“A”、“B”、“C”、“D”在UART4中斷服務(wù)函數(shù)中執(zhí)行不同的電機驅(qū)動函數(shù),從而控制藍牙小車的運動。
void UART4_IRQHandler(void)
{char Buffer;
if(UART_Query(UART4)!= 0) //查詢是否接收到數(shù)據(jù)
{Buffer = UART_Get_Char(UART4);
switch(Buffer)
{case ‘E:
Moto_Stop();//停止
break;
case ‘A:
Moto_Forward();//前進
break;
case ‘B:
Moto_Backward();//后退
break;
case ‘C:
Moto_TurnLeft();//左轉(zhuǎn)
break;
case ‘D:
Moto_TurnRight();//右轉(zhuǎn)
break;}}}
四、機器人小車的調(diào)試
整個機器人系統(tǒng)安裝完成后,逐個模塊調(diào)試,最后組合各個模塊系統(tǒng)統(tǒng)一調(diào)試。在下載調(diào)試K60時,需要用到J-Link驅(qū)動程序,安裝完驅(qū)動,根據(jù)K60的型號,在驅(qū)動中進行相應(yīng)的設(shè)置。之后再在IAR開發(fā)環(huán)境中進行程序的燒寫。在工程中設(shè)置對應(yīng)的K60型號,之后就可以編譯,下載,調(diào)試。通過K60的電機PWM接口傳送給電機模塊不同的頻率,這時用示波器測量頻率波形是否正常,其占空比是否達到預(yù)期,這樣可以避免接入電機模塊后,燒壞電機。利用手機APP藍牙開發(fā)界面,在手機上發(fā)送“前進”、“后退”、“左轉(zhuǎn)”、“右轉(zhuǎn)”的指令就能控制機器人小車運動。
根據(jù)以下步驟完成硬件的調(diào)試:第一,檢查對應(yīng)模塊的原理圖接線是否正確;第二,檢查原理圖與所用器件的引腳是否吻合,進而排除邏輯上的錯誤;第三,用萬用表檢查是否出現(xiàn)虛焊,短路或者開路的現(xiàn)象,進而排除線路的問題和電源的故障情況;第四,利用IAR在下載調(diào)試K60過程中,最容易出現(xiàn)下載不了的情況,這時要注意Jlink的接線是否反,查看驅(qū)動Jlink固件有沒有解鎖。
五、小結(jié)
本項目設(shè)計并建立了一個可遠程控制的智能機器人監(jiān)控系統(tǒng),對此系統(tǒng)進行試驗證明:能夠遠程控制機器人行走,并可實時的獲得機器人所在區(qū)域的監(jiān)控錄像,無人操控時具有自動避障功能,各個功能模塊正常工作,達到了預(yù)期效果。
參考文獻
[1]韓國棟.AltiumDesignerWinter09電路設(shè)計入門與提高[M].北京:化學(xué)工業(yè)出版社,2010:21-27.
[2]張興.電力電子技術(shù)[M].北京:科學(xué)出版社,2010:58-77.
[3]于少東.基于K60的智能車控制系統(tǒng)設(shè)計[J].四川理工學(xué)院學(xué)報(自然科學(xué)版).2014:27(5):1-4.
[4]周興超.可移動檢控機器人的研究[D].遼寧:沈陽理工大學(xué),2009.
[5]譚浩強.C程序設(shè)計教程第2版[M].北京:清華大學(xué)出版社,2010:256-261.
[6]張偉.單片機原理及應(yīng)用[M].西安:機械工業(yè)出版社,2002:153-202.