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