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