王坤,張樂年
(南京航空航天大學(xué) 機(jī)電學(xué)院,江蘇 南京 210016)
基于LM3S微處理器的機(jī)械手無線控制系統(tǒng)
王坤,張樂年
(南京航空航天大學(xué) 機(jī)電學(xué)院,江蘇 南京 210016)
摘要:介紹了一種使用LM3S811微處理器與SM63無線模塊搭建的手持式無線遙控器,該遙控器正面設(shè)置多個(gè)實(shí)體按鍵,并對不同按鍵定義了不同的功能。使用該遙控器配合一套機(jī)械手控制系統(tǒng),實(shí)現(xiàn)了機(jī)械手的遠(yuǎn)程無線遙控。
關(guān)鍵詞:無線遙控;控制系統(tǒng);LM3S811微處理器
Wireless Control Manipulator System Based on Microprocessor
WANG Kun, ZHANG Lenian
(Nanjing University of Aeronautics and Astronautics, Nanjing 210016, China)
Abstract:This paper introduces a wireless remote controller equipped with LM3S811 microprocessor and SM63 wireless module, which is equipped with many physical keys in the front. The functions of the various keys are defined. This controller can be used with a manipulator control system to control the whole system.
Keywords:wireless remote control; control system; LM3S811 microprocessor
0引言
無線遙控器是利用無線信號對遠(yuǎn)程各種機(jī)構(gòu)進(jìn)行控制的遙控設(shè)備。這些信號被遠(yuǎn)程接收設(shè)備接收后,可以通過指令驅(qū)動(dòng)各種相應(yīng)的電子設(shè)備去完成各種相應(yīng)的操作,如閉合電路、移動(dòng)手柄、開啟電動(dòng)機(jī)等,之后再通過機(jī)械系統(tǒng)完成所需要的操作。作為一種與紅外遙控器相補(bǔ)充的遙控器種類,在車庫門,電動(dòng)門、道閘遙控控制,防盜報(bào)警器,工業(yè)控制以及無線智能家居等領(lǐng)域得到了廣泛的應(yīng)用。
1無線遙控器硬件設(shè)計(jì)
無線遙控器控制系統(tǒng)結(jié)構(gòu)如圖1所示。系統(tǒng)包括兩個(gè)部分——控制端和執(zhí)行端。控制端包括手控盒和無線發(fā)送模塊,手控盒上設(shè)計(jì)了多個(gè)實(shí)體按鍵,用來給執(zhí)行端發(fā)送不同的動(dòng)作指令。執(zhí)行端包括單片機(jī)控制核心、無線接收模塊、電動(dòng)機(jī)和機(jī)械手,響應(yīng)控制端指令執(zhí)行不同的動(dòng)作。
圖1 控制系統(tǒng)結(jié)構(gòu)圖
控制端采用LM3S811+SM63的架構(gòu),當(dāng)按下或釋放不同按鍵時(shí),LM3S811內(nèi)部程序判斷按鍵值并將相應(yīng)指令通過串口發(fā)送至SM63無線模塊,無線模塊與發(fā)出無線信號,執(zhí)行端連接SM63模塊的單片機(jī)等控制元件接收到信號后,解析協(xié)議,將動(dòng)作指令轉(zhuǎn)換成電動(dòng)機(jī)控制信號發(fā)送給電動(dòng)機(jī),由電動(dòng)機(jī)驅(qū)動(dòng)機(jī)械手在相應(yīng)方向上的動(dòng)作。此系統(tǒng)可以應(yīng)用于多種工業(yè)控制系統(tǒng)中,如工業(yè)機(jī)器人控制,閥門控制,設(shè)備參數(shù)設(shè)定等場合,具有鮮明的實(shí)用價(jià)值。
1.1LM3S系列芯片簡介
LM3S811 ARM微控制器是Luminary公司推出的一款結(jié)構(gòu)簡單、性能出眾且?guī)в蠥RM Codex-M3處理器內(nèi)核的32位微控制器,它擁有與8位和16位器件相同的價(jià)格,卻能為用戶提供32位器件的性能。Codex-M3處理器是首個(gè)基于ARMv7M架構(gòu),主要針對汽車車身系統(tǒng)、工業(yè)控制系統(tǒng)以及無線網(wǎng)絡(luò)等對成本和功耗極端敏感的嵌入式應(yīng)用領(lǐng)域,是以實(shí)現(xiàn)高系統(tǒng)性能為目的而專門設(shè)計(jì)的ARM內(nèi)核。
其電源電壓為3.3 V,最高時(shí)鐘頻率50 MHz,64 kHz的單周期FLASH;3個(gè)32位通用定時(shí)器,可分成6個(gè)16位定時(shí)器使用;一組同步串行接口(SSI),2個(gè)異步串行接口(UART);4通道模數(shù)轉(zhuǎn)換器(ADC),1組模擬比較器和I2C接口;3個(gè)脈寬調(diào)制信號(PWM)模塊,32個(gè)通用輸入輸出管腳(GPIO)及硬件看門狗等。
SM63低電壓型無線模塊是一種半雙工無線通信模塊,可實(shí)現(xiàn)無線信號的點(diǎn)對點(diǎn),點(diǎn)對多傳輸,具有體積小、低成本、低功耗、發(fā)送數(shù)據(jù)量大、傳輸距離遠(yuǎn)的優(yōu)點(diǎn)。
遙控器中,將LM3S811的UART0串口分配給SM63無線模塊,二者間連接電路如圖2所示。
圖2 LM3S811與SM63模塊連接圖
1.2按鍵電路設(shè)計(jì)
按鍵部分采用實(shí)體按鍵,硬件電路設(shè)計(jì),如圖3所示。
圖3 按鍵電路設(shè)計(jì)圖
KEY0-KEY6引腳與LM3S811輸入輸出口的PB0-PB6相連,當(dāng)按鍵未按下時(shí),由于有3.3V上拉電源,PB口輸入為高電平,當(dāng)某一按鍵按下時(shí),對應(yīng)PB口輸入變?yōu)榈碗娖讲⒂|發(fā)中斷,當(dāng)有中斷發(fā)生時(shí),主函數(shù)使用查詢方式獲得鍵值,發(fā)出相應(yīng)命令碼。其中,PB口中斷觸發(fā)方式有上升沿、下降沿或雙邊沿觸發(fā),如果改為雙邊沿觸發(fā),即可實(shí)現(xiàn)按下和彈起對應(yīng)不同動(dòng)作,如電動(dòng)機(jī)的啟動(dòng)和停止。
2程序設(shè)計(jì)
控制程序在Keil μVision4環(huán)境中使用C語言編寫,便于維護(hù)和移植。另外,使用J-LINK連接到JTAG下載口,可對遙控器進(jìn)行在線調(diào)試。
函數(shù)流程如下:
圖4 遙控器程序流程圖
按鍵按下判斷時(shí)使用延遲檢測方法:即當(dāng)檢測到按鍵狀態(tài)變化時(shí),延遲一定時(shí)間再次讀取按鍵狀態(tài),若確實(shí)變化了,再開始響應(yīng),否則視為誤操作,不動(dòng)作。此方法可以改善因按鍵抖動(dòng)引起的誤操作。當(dāng)按鍵按下后,啟動(dòng)計(jì)時(shí),若在時(shí)間到達(dá)1.5s之前松開按鍵,則視為短按,此時(shí)遙控器向單片機(jī)發(fā)送短距命令,單片機(jī)控制電動(dòng)機(jī)走完該圈數(shù)時(shí)自動(dòng)停止;若在時(shí)間到達(dá)1.5s后,按鍵仍未松開,則視為長按,此時(shí)遙控器向單片機(jī)發(fā)送長距命令,單片機(jī)控制電動(dòng)機(jī)持續(xù)轉(zhuǎn)動(dòng),當(dāng)按鍵松開時(shí),遙控器發(fā)送停止命令,電動(dòng)機(jī)停止。
中斷檢測及通信部分程序如下:
//中斷檢測
void GPIO_Port_B_ISR( void )// B口中斷服務(wù)函數(shù)
{
uint32 ulStatus;
uint8 stateKey;
ulStatus = GPIOPinIntStatus( GPIO_PORTB_BASE, TRUE );// 讀取中斷狀態(tài)
GPIOPinIntClear( GPIO_PORTB_BASE, ulStatus );// 清除中斷狀態(tài)
if( ulStatus & KEY0 )
{
stateKey = Generate_Input_Read(0);// 讀取KEY0鍵狀態(tài)
if( !stateKey )// KEY0鍵按下
{
SysCtlDelay( 2000 * ( SysMainOSC / 300000 ));//延時(shí)20ms再檢測
stateKey = Generate_Input_Read(0);
if( !stateKey )// KEY0鍵按下
{
KeyDownNum = 0;//為定時(shí)器指示按鍵號
//do something
TimerEnable( TIMER1_BASE, TIMER_A );//開始檢測按鍵時(shí)間
}
}
else// KEY0鍵松開
{
…
}
}
else if( ulStatus & KEY1 ) // KEY1鍵按下
{
…// 同KEY0鍵
}
…// 同上
}
//通信部分:串口初始化和發(fā)送字符:
uint8 Uart0Init( uint32 ulBaudRate, uint8 ucPrio )
{
if( ulBaudRate > 115200 )// 波特率> 115200,返回
return(FALSE);
SysCtlPeripheralEnable( SYSCTL_PERIPH_UART0 );// 使能串口0外圍設(shè)備
SysCtlPeripheralEnable( SYSCTL_PERIPH_GPIOA );// 使能GPIOA
GPIOPinTypeUART(GPIO_PORTA_BASE,
GPIO_PIN_0 | GPIO_PIN_1); // 設(shè)置PA0,PA1為RXD0,TXD0
//配置串口參數(shù):串口地址,波特率,數(shù)據(jù)長度為8位,1位停止位,無校驗(yàn)
UARTConfigSet(UART0_BASE,
ulBaudRate,
UART_CONFIG_WLEN_8|
UART_CONFIG_STOP_ONE|
UART_CONFIG_PAR_NONE);
UARTFIFOLevelSet( UART0_BASE, // 設(shè)置收發(fā)FIFO中斷觸發(fā)深度
UART_FIFO_TX2_8, // 發(fā)送FIFO為2/8深度(4B)
UART_FIFO_RX2_8 ); // 接收FIFO為6/8深度(4B)
IntPrioritySet( INT_UART0, ucPrio ); // 設(shè)置中斷優(yōu)先級
// IntEnable( INT_UART0 ); // 使能串口0系統(tǒng)中斷
UARTIntEnable(UART0_BASE,
UART_INT_RX |
UART_INT_RT);// 使能串口0接收中斷和接收超時(shí)中斷
UARTEnable(UART0_BASE);// 使能串口0發(fā)送和接收
return(TRUE);
}
void SendToUart0( uint8*pucBuffer,uint16 usByte )// 發(fā)送數(shù)據(jù)
{
while( usByte )
{
if( UARTSpaceAvail(UART0_BASE) )// 確定發(fā)送FIFO中是否還有任何可用的空間
{
UARTCharNonBlockingPut( UART0_BASE, *pucBuffer++ );// 發(fā)送一個(gè)字符到指定端口
usByte--;
}
}
}
3控制協(xié)議
通信協(xié)議是通信雙方的一種約定,約定包括對數(shù)據(jù)格式、同步方式、傳送速度、傳送步驟、檢糾錯(cuò)方式以及控制字符定義等問題做出的統(tǒng)一規(guī)定,通信雙方必須共同遵守。無線通信協(xié)議的設(shè)計(jì)應(yīng)遵循簡單、有效、可靠的原則。
本系統(tǒng)中遙控器控制指令根據(jù)機(jī)械手系統(tǒng)需要設(shè)計(jì)為17位byte類型字符,除包頭包尾外,其余各位用來指定單片機(jī)、指定電動(dòng)機(jī)以及設(shè)置電動(dòng)機(jī)的運(yùn)行方向、速度、圈數(shù)等,具體各個(gè)位代表意義如表1所示。
表1 通信協(xié)議各位定義
4結(jié)語
使用LM3S811微控制器與SM63無線通信模塊相結(jié)合,實(shí)現(xiàn)了通過實(shí)體按鍵對遠(yuǎn)端機(jī)械手的無線控制,實(shí)際現(xiàn)場使用效果很好,靈活方便,并且節(jié)省了部分成本。此系統(tǒng)可以通過改變遙控器端的控制程序、機(jī)械手端的控制芯片和控制方式以及二者之間的通信協(xié)議,推廣到各種需要無線遙控的工業(yè)控制場合。
參考文獻(xiàn):
[1] 黃志偉. 32位ARM微控制器系統(tǒng)設(shè)計(jì)與實(shí)踐—基于Luminary Micro LM3S系列[M]. 北京:北京航空航天大學(xué)出版社,2010.
[2] Luminary Micro LM3S811數(shù)據(jù)手冊[S]. Luminary Micro公司.
[3]來清民. ARM Cortex-M3嵌入式系統(tǒng)設(shè)計(jì)和典型實(shí)例—基于LM3S811[M]. 北京:北京航空航天大學(xué)出版社,2013.
[4] Theodore S.Rappaport.無線通信原理與應(yīng)用[M]. 北京:電子工業(yè)出版社,2012.
[5]10mV/50mV-ISM低電壓無線收發(fā)模塊[S]. 上海:上海上志電子信息技術(shù)有限公司.
收稿日期:2014-12-18
中圖分類號:TP241
文獻(xiàn)標(biāo)志碼:B
文章編號:1671-5276(2015)04-0161-03
作者簡介:王坤(1988-),男,江蘇徐州人,碩士研究生,研究方向?yàn)闄C(jī)電一體化。