基于MSP430的自主式移動機器人設計與實現
2013/11/21 10:01:39
MSP430系列單片機為核心,提出了一種輪式移動機器人的軟硬件設計方案,闡述了其通過傳感器網絡來進行避障?遍歷等自主控制,并實現機器人與PC機間無線控制的方法?
1 引言
自主式移動機器人是指能根據任務及環境信息做出全局路徑規劃,可在行進中不斷感知局部環境信息并自主作出決策,從而能夠安全行駛并到達目標的智能系統?移動機器人可廣泛應用于工業?國防以及服務性行業?如自動割草機?洗塵機器人?教育機器人等?本文以MSP430單片機為核心介紹了一種移動機器人的設計雛形,該系統利用各種傳感器感知周圍環境,并在計算機與單片機之間實現無線通信,從而以無線方式控制移動機器人?
MSP430是美國TI公司推出的16位高性能系列單片機,其高效16位精簡指令結構可以確保任務的快速執行,大多數指令可以在一個時鐘周期里完成,且具有高級語言編程能力,配套友好方便的集成開發環境足可加速軟件的開發?由于MSP430采用了JTAG技術?FLASH 在線編程技術?BOOT-STRAP等諸多先進技術,因此具有很高的性價比,并有超低的功耗和豐富的片上外圍資源,很適合作為移動設備的微控制器來用?
2 硬件結構
筆者選用的MSP430F1232內含8kB可重復編程快閃存儲器?256字節只讀存儲器(RAM)?多通道脈寬調制?PWM計時器?看門狗計時器和USART通訊模塊等,采用28腳TSSOP封裝,因此易于進行小型化設計?MSP430F1232主要用來產生兩路PWM信號,以對傳感器信息進行處理?同時,筆者還選用電機驅動芯片L293D來驅動直流電機,并利用霍爾元件來檢測電機速度;此外還安裝了紅外避障和光敏傳感器以獲取環境信息,并利用語音電路ISD25120來進行交互,而通過微控制器的UART經232接口芯片后利用無線模塊PTR2000可與PC機端的無線模塊進行通訊?圖1所示為其系統框圖?
MSP430單片機的Timer_A是一個非常有用的定時器,它可支持同時進行的多種時序控制?多個捕獲/比較功能以及多種輸出波形,也可以支持上述功能的組合?這里用Timer_A來產生兩路PWM信號,并分別接L293D的12EN和34EN,以用來控制兩個電機的起停?轉向及速度?定時器工作在增計數模式時,可由捕獲/比較寄存器CCR0確定周期T,而由CCR1和CCR2產生兩路PWM信號?輸出單元選擇模式2?改變CCR1和CCR2的值,即可改變PWM信號的占空比,從而改變電機轉速?
L293D的芯片電壓為5V,電機驅動電壓VCC2為11.4V?可通過3節3.8V的鋰電池提供,5V電壓經整流橋后可由穩壓器LDO7805提供,MSP430F1232的3.3V供電電壓可由LM33穩壓輸出?L293D與單片機的連接圖如圖2所示?
語音電路采用120秒的語音芯片ISD25120來實現,該芯片有多種封裝,本設計采用小巧的28SOIC封裝,它控制簡單,其P/T引腳為錄放控制端,CE引腳為放音/暫停控制端,PD為RESET信號,這些RE-SET信號端可接單片機的I/O口P2.0?
2.1?
2.2,地址位的最高兩位A8和A9均為高時,地址/模式輸入端為模式選擇,否則為地址輸入?在與MSP430F1232連接時,A6?A8?A9接P3.6,A0接P3.7,其余地址引腳接地,這樣就可方便地對ISD25120進行地址選段選擇或模式控制?
2.3 充電電路
充電電路采用無需控制器的智能快速充電器MAX1758來實現,MAX1758可對1~4節鋰電池進行充電,輸入電壓范圍在4~28V,電池充電電壓可通過VADJ引腳進行設置,并通過外接電容設置預充和快充的充電時間,同時可通過LED來指示當前的充電狀態?充電電源采用24V直流電源?
2.4 無線通信模塊
考慮到自主機器人的特點,計算機與機器人的通信采用無線通信方式較為適宜?筆者選用微小型?低功耗?高速率?19.2K無線收發數傳MODEM芯片PRT2000來完成計算機與機器的無線通信,該MODEM的工作頻率為國際通用的數傳頻段433MHz,采用FSK調制,可連接到計算機RS232接口?因為沒有信號時,PTR2000的串口會輸出隨機數據,因此需要定義一個簡單的指令協議,設計時可加開始字符?校驗位?結束標志等,校驗采用CRC校驗?傳輸協議定義為:
[開始字符][數據1][數據2][8位校驗][結束字符]
在各種校驗方法中,奇偶校驗容易實現,但不太可靠,因其只能發現奇數個錯誤;校驗和不能發現次序錯誤,相比之下,CRC更可靠些?系統首先生成多項式G(X)=X8+X6+X2+1?然后生成8位CRC校驗數據?
MSP430F1232中集成的高速通用同步-異步收發器(USART)可設置成用于UART或串行外設接口(SPI)中的任一模式,本例采用UART異步模式?MSP430的USART與PTR2000連接時,PTR2000的DO和DI直接與單片機的URXD0和UTXD0連接,計算機串口的RXD和TXD需經電平轉換?MAX232與PTR2000相連?計算機端可采用VisualBasic編寫程序,以實現對機器人的前進?后退?左轉?右轉?暫停及速度調節等基本控制?對于收發狀態的控制,單片機端可直接通過將一輸出口置1或置0來將無線收發模塊置于發射或接收狀態,而對計算機串口的控制則可通過VB內MSComm控件的RTSEnable屬性來實現?
3 軟件設計
系統軟件根據任務不同一般會有所差別?本系統軟件在啟動后先初始化,然后通過紅外傳感器以及霍爾元件等傳感器將環境循環掃描一周?需指出的是,完成一周需要有傳感器信號來指示,然后才能遍歷實驗環境,遍歷環境采用先橫向走遍整個環境,再縱向遍歷的方法?在無線控制信息時,系統將通過中斷進行相應處理?機器人還可以通過傳感器實現循跡(黑線)行走和尋找光源等功能?在PC端,用VB編的一個簡單的機器人控制界面可非常方便的設定機器人的平移速度和旋轉速度,實時控制機器人前行?后退?左轉?右轉以及運動停止等?
4 結束語
本文介紹了一種輪式移動機器人的設計方案,該系統的程序和PC端的無線控制相對獨立,無線控制只是完成一些簡單的動作控制?在此基礎上,可進一步研究移動機器人在未知環境中如何感知?學習?分析及處理周圍環境信息,并運用神經網絡及遺傳算法等進行規劃來實現自學習功能的方法?這樣,人為指令就可以完全由計算機在分析?處理后自動發出,從而實現真正意義上的機器人自主行為?
1 引言
自主式移動機器人是指能根據任務及環境信息做出全局路徑規劃,可在行進中不斷感知局部環境信息并自主作出決策,從而能夠安全行駛并到達目標的智能系統?移動機器人可廣泛應用于工業?國防以及服務性行業?如自動割草機?洗塵機器人?教育機器人等?本文以MSP430單片機為核心介紹了一種移動機器人的設計雛形,該系統利用各種傳感器感知周圍環境,并在計算機與單片機之間實現無線通信,從而以無線方式控制移動機器人?
MSP430是美國TI公司推出的16位高性能系列單片機,其高效16位精簡指令結構可以確保任務的快速執行,大多數指令可以在一個時鐘周期里完成,且具有高級語言編程能力,配套友好方便的集成開發環境足可加速軟件的開發?由于MSP430采用了JTAG技術?FLASH 在線編程技術?BOOT-STRAP等諸多先進技術,因此具有很高的性價比,并有超低的功耗和豐富的片上外圍資源,很適合作為移動設備的微控制器來用?
2 硬件結構
筆者選用的MSP430F1232內含8kB可重復編程快閃存儲器?256字節只讀存儲器(RAM)?多通道脈寬調制?PWM計時器?看門狗計時器和USART通訊模塊等,采用28腳TSSOP封裝,因此易于進行小型化設計?MSP430F1232主要用來產生兩路PWM信號,以對傳感器信息進行處理?同時,筆者還選用電機驅動芯片L293D來驅動直流電機,并利用霍爾元件來檢測電機速度;此外還安裝了紅外避障和光敏傳感器以獲取環境信息,并利用語音電路ISD25120來進行交互,而通過微控制器的UART經232接口芯片后利用無線模塊PTR2000可與PC機端的無線模塊進行通訊?圖1所示為其系統框圖?
MSP430單片機的Timer_A是一個非常有用的定時器,它可支持同時進行的多種時序控制?多個捕獲/比較功能以及多種輸出波形,也可以支持上述功能的組合?這里用Timer_A來產生兩路PWM信號,并分別接L293D的12EN和34EN,以用來控制兩個電機的起停?轉向及速度?定時器工作在增計數模式時,可由捕獲/比較寄存器CCR0確定周期T,而由CCR1和CCR2產生兩路PWM信號?輸出單元選擇模式2?改變CCR1和CCR2的值,即可改變PWM信號的占空比,從而改變電機轉速?
L293D的芯片電壓為5V,電機驅動電壓VCC2為11.4V?可通過3節3.8V的鋰電池提供,5V電壓經整流橋后可由穩壓器LDO7805提供,MSP430F1232的3.3V供電電壓可由LM33穩壓輸出?L293D與單片機的連接圖如圖2所示?
語音電路采用120秒的語音芯片ISD25120來實現,該芯片有多種封裝,本設計采用小巧的28SOIC封裝,它控制簡單,其P/T引腳為錄放控制端,CE引腳為放音/暫停控制端,PD為RESET信號,這些RE-SET信號端可接單片機的I/O口P2.0?
2.1?
2.2,地址位的最高兩位A8和A9均為高時,地址/模式輸入端為模式選擇,否則為地址輸入?在與MSP430F1232連接時,A6?A8?A9接P3.6,A0接P3.7,其余地址引腳接地,這樣就可方便地對ISD25120進行地址選段選擇或模式控制?2.3 充電電路
充電電路采用無需控制器的智能快速充電器MAX1758來實現,MAX1758可對1~4節鋰電池進行充電,輸入電壓范圍在4~28V,電池充電電壓可通過VADJ引腳進行設置,并通過外接電容設置預充和快充的充電時間,同時可通過LED來指示當前的充電狀態?充電電源采用24V直流電源?
2.4 無線通信模塊
考慮到自主機器人的特點,計算機與機器人的通信采用無線通信方式較為適宜?筆者選用微小型?低功耗?高速率?19.2K無線收發數傳MODEM芯片PRT2000來完成計算機與機器的無線通信,該MODEM的工作頻率為國際通用的數傳頻段433MHz,采用FSK調制,可連接到計算機RS232接口?因為沒有信號時,PTR2000的串口會輸出隨機數據,因此需要定義一個簡單的指令協議,設計時可加開始字符?校驗位?結束標志等,校驗采用CRC校驗?傳輸協議定義為:
[開始字符][數據1][數據2][8位校驗][結束字符]
在各種校驗方法中,奇偶校驗容易實現,但不太可靠,因其只能發現奇數個錯誤;校驗和不能發現次序錯誤,相比之下,CRC更可靠些?系統首先生成多項式G(X)=X8+X6+X2+1?然后生成8位CRC校驗數據?
MSP430F1232中集成的高速通用同步-異步收發器(USART)可設置成用于UART或串行外設接口(SPI)中的任一模式,本例采用UART異步模式?MSP430的USART與PTR2000連接時,PTR2000的DO和DI直接與單片機的URXD0和UTXD0連接,計算機串口的RXD和TXD需經電平轉換?MAX232與PTR2000相連?計算機端可采用VisualBasic編寫程序,以實現對機器人的前進?后退?左轉?右轉?暫停及速度調節等基本控制?對于收發狀態的控制,單片機端可直接通過將一輸出口置1或置0來將無線收發模塊置于發射或接收狀態,而對計算機串口的控制則可通過VB內MSComm控件的RTSEnable屬性來實現?
3 軟件設計
系統軟件根據任務不同一般會有所差別?本系統軟件在啟動后先初始化,然后通過紅外傳感器以及霍爾元件等傳感器將環境循環掃描一周?需指出的是,完成一周需要有傳感器信號來指示,然后才能遍歷實驗環境,遍歷環境采用先橫向走遍整個環境,再縱向遍歷的方法?在無線控制信息時,系統將通過中斷進行相應處理?機器人還可以通過傳感器實現循跡(黑線)行走和尋找光源等功能?在PC端,用VB編的一個簡單的機器人控制界面可非常方便的設定機器人的平移速度和旋轉速度,實時控制機器人前行?后退?左轉?右轉以及運動停止等?
4 結束語
本文介紹了一種輪式移動機器人的設計方案,該系統的程序和PC端的無線控制相對獨立,無線控制只是完成一些簡單的動作控制?在此基礎上,可進一步研究移動機器人在未知環境中如何感知?學習?分析及處理周圍環境信息,并運用神經網絡及遺傳算法等進行規劃來實現自學習功能的方法?這樣,人為指令就可以完全由計算機在分析?處理后自動發出,從而實現真正意義上的機器人自主行為?
提交
查看更多評論
其他資訊
2025中歐綠色建筑工業化論壇9月北京啟幕 全球智慧共推建筑產業“雙碳”轉型
喜訊!華強電子網榮獲“2025年中國產業互聯網創新企業”
深入實施“人工智能+”行動 浪潮軟件集團看好人工智能+工業質檢廣闊前景,持續布局線纜行業智能質檢
海爾新增2家卓越級智能工廠,總數品類行業雙第一
深度剖析格力打破磁懸浮壓縮機國外壟斷,底氣來自對自主創新的堅守!

投訴建議