基于MSP430的自主式移動機器人設(shè)計與實現(xiàn)
摘要:文章以MSP430系列單片機為核心,提出了一種輪式移動機器人的軟硬件設(shè)計方案,闡述了其通過傳感器網(wǎng)絡(luò)來進行避障、遍歷等自主控制,并實現(xiàn)機器人與PC機間無線控制的方法。
關(guān)鍵詞:機器人;MSP430;PWM;232通訊
1 引言
自主式移動機器人是指能根據(jù)任務(wù)及環(huán)境信息做出全局路徑規(guī)劃,可在行進中不斷感知局部環(huán)境信息并自主作出決策,從而能夠安全行駛并到達目標(biāo)的智能系統(tǒng)。移動機器人可廣泛應(yīng)用于工業(yè)、國防以及服務(wù)性行業(yè)。如自動割草機、洗塵機器人、教育機器人等。本文以MSP430單片機為核心介紹了一種移動機器人的設(shè)計雛形,該系統(tǒng)利用各種傳感器感知周圍環(huán)境,并在計算機與單片機之間實現(xiàn)無線通信,從而以無線方式控制移動機器人。
MSP430 是美國TI公司推出的16位高性能系列單片機,其高效16位精簡指令結(jié)構(gòu)可以確保任務(wù)的快速執(zhí)行,大多數(shù)指令可以在一個時鐘周期里完成,且具有高級語言編程能力,配套友好方便的集成開發(fā)環(huán)境足可加速軟件的開發(fā)。由于MSP430采用了JTAG技術(shù)、FLASH 在線編程技術(shù)、BOOT-STRAP 等諸多先進技術(shù),因此具有很高的性價比,并有超低的功耗和豐富的片上外圍資源,很適合作為移動設(shè)備的微控制器來用。
2 硬件結(jié)構(gòu)
筆者選用的MSP430F1232內(nèi)含8kB可重復(fù)編程快閃存儲器、256字節(jié)只讀存儲器(RAM)、多通道脈寬調(diào)制PWM計時器、看門狗計時器和USART通訊模塊等,采用28腳TSSOP封裝,因此易于進行小型化設(shè)計。MSP430F1232主要用來產(chǎn)生兩路PWM信號,以對傳感器信息進行處理。同時,筆者還選用電機驅(qū)動芯片L293D來驅(qū)動直流電機,并利用霍爾元件來檢測電機速度;此外還安裝了紅外避障和光敏傳感器以獲取環(huán)境信息,并利用語音電路ISD25120來進行交互,而通過微控制器的UART經(jīng)232接口芯片后利用無線模塊PTR2000可與PC機端的無線模塊進行通訊。圖1所示為其系統(tǒng)框圖。
2.1 PWM脈寬調(diào)制
MSP430單片機的Timer_A是一個非常有用的定時器,它可支持同時進行的多種時序控制、多個捕獲/比較功能以及多種輸出波形,也可以支持上述功能的組合。這里用Timer_A來產(chǎn)生兩路PWM信號,并分別接L293D的12EN和34EN,以用來控制兩個電機的起停、轉(zhuǎn)向及速度。定時器工作在增計數(shù)模式時,可由捕獲/比較寄存器CCR0確定周期T,而由CCR1和CCR2產(chǎn)生兩路PWM信號。輸出單元選擇模式2。改變CCR1和CCR2的值,即可改變PWM信號的占空比,從而改變電機轉(zhuǎn)速。
L293D的芯片電壓為5V,電機驅(qū)動電壓VCC2為11.4V可通過3節(jié)3.8V的鋰電池提供,5V電壓經(jīng)整流橋后可由穩(wěn)壓器LDO7805提供,MSP430F1232的3.3V供電電壓可由LM33穩(wěn)壓輸出。L293D與單片機的連接圖如圖2所示。
2.2 語音電路
語音電路采用120秒的語音芯片ISD25120來實現(xiàn),該芯片有多種封裝,本設(shè)計采用小巧的28SOIC封裝,它控制簡單,其P/T引腳為錄放控制端,CE引腳為放音/暫停控制端,PD為RESET信號,這些RE-SET信號端可接單片機的I/O口P2.0、P2.1、P2.2,地址位的最高兩位A8和A9均為高時,地址/模式輸入端為模式選擇,否則為地址輸入。在與MSP430F1232連接時,A6、A8、A9接P3.6,A0接P3.7,其余地址引腳接地,這樣就可方便地對ISD25120進行地址選段選擇或模式控制。
2.3 充電電路
充電電路采用無需控制器的智能快速充電器MAX1758來實現(xiàn),MAX1758可對1~4節(jié)鋰電池進行充電,輸入電壓范圍在4~28V,電池充電電壓可通過VADJ引腳進行設(shè)置,并通過外接電容設(shè)置預(yù)充和快充的充電時間,同時可通過LED來指示當(dāng)前的充電狀態(tài)。充電電源采用24V直流電源。
2.4 無線通信模塊
考慮到自主機器人的特點,計算機與機器人的通信采用無線通信方式較為適宜。筆者選用微小型、低功耗、高速率、19.2K無線收發(fā)數(shù)傳MODEM芯片PRT2000來完成計算機與機器的無線通信,該MODEM的工作頻率為國際通用的數(shù)傳頻段433MHz,采用FSK調(diào)制,可連接到計算機RS232接口。因為沒有信號時,PTR2000的串口會輸出隨機數(shù)據(jù),因此需要定義一個簡單的指令協(xié)議,設(shè)計時可加開始字符、校驗位、結(jié)束標(biāo)志等,校驗采用CRC校驗。傳輸協(xié)議定義為:
[開始字符][數(shù)據(jù)1][數(shù)據(jù)2][8位校驗][結(jié)束字符]
在各種校驗方法中,奇偶校驗容易實現(xiàn),但不太可靠,因其只能發(fā)現(xiàn)奇數(shù)個錯誤;校驗和不能發(fā)現(xiàn)次序錯誤,相比之下,CRC更可靠些。系統(tǒng)首先生成多項式G(X)=X8+X6+X2+1然后生成8位CRC校驗數(shù)據(jù)。
?。停樱校矗常埃疲保玻常仓屑傻母咚偻ㄓ猛剑惒绞瞻l(fā)器(USART)可設(shè)置成用于UART或串行外設(shè)接口(SPI)中的任一模式,本例采用UART異步模式。 MSP430的USART與PTR2000連接時,PTR2000的DO和DI直接與單片機的URXD0和UTXD0連接,計算機串口的RXD和TXD需經(jīng)電平轉(zhuǎn)換MAX232與PTR2000相連。計算機端可采用Visual Basic編寫程序,以實現(xiàn)對機器人的前進、后退、左轉(zhuǎn)、右轉(zhuǎn)、暫停及速度調(diào)節(jié)等基本控制。對于收發(fā)狀態(tài)的控制,單片機端可直接通過將一輸出口置1或置0來將無線收發(fā)模塊置于發(fā)射或接收狀態(tài),而對計算機串口的控制則可通過VB內(nèi)MSComm控件的RTSEnable屬性來實現(xiàn)。
3 軟件設(shè)計
系統(tǒng)軟件根據(jù)任務(wù)不同一般會有所差別。本系統(tǒng)軟件在啟動后先初始化,然后通過紅外傳感器以及霍爾元件等傳感器將環(huán)境循環(huán)掃描一周。需指出的是,完成一周需要有傳感器信號來指示,然后才能遍歷實驗環(huán)境,遍歷環(huán)境采用先橫向走遍整個環(huán)境,再縱向遍歷的方法。在無線控制信息時,系統(tǒng)將通過中斷進行相應(yīng)處理。機器人還可以通過傳感器實現(xiàn)循跡(黑線)行走和尋找光源等功能。在PC端,用VB編的一個簡單的機器人控制界面可非常方便的設(shè)定機器人的平移速度和旋轉(zhuǎn)速度,實時控制機器人前行、后退、左轉(zhuǎn)、右轉(zhuǎn)以及運動停止等。
圖3給出了單片機端的程序流程圖以及串行中斷子程序。
4 結(jié)束語
本文介紹了一種輪式移動機器人的設(shè)計方案,該系統(tǒng)的程序和PC端的無線控制相對獨立,無線控制只是完成一些簡單的動作控制。在此基礎(chǔ)上,可進一步研究移動機器人在未知環(huán)境中如何感知、學(xué)習(xí)、分析及處理周圍環(huán)境信息,并運用神經(jīng)網(wǎng)絡(luò)及遺傳算法等進行規(guī)劃來實現(xiàn)自學(xué)習(xí)功能的方法。這樣,人為指令就可以完全由計算機在分析、處理后自動發(fā)出,從而實現(xiàn)真正意義上的機器人自主行為。
評論