基于MSP430單片機(jī)的智能小車設(shè)計(jì)
智能小車涉及到高級(jí)計(jì)算機(jī)控制、電子機(jī)械、自動(dòng)化等諸多學(xué)科,隨著科技的不斷進(jìn)步,智能電子產(chǎn)品發(fā)展步驟不斷加快,各種應(yīng)用層次的機(jī)器人等大量出現(xiàn),目前應(yīng)用在智能小車或機(jī)器人的微控制器主要是8/16單片機(jī)或ARM和數(shù)字信號(hào)處理器DSP等。本設(shè)計(jì)采用TI公司生產(chǎn)的功耗低運(yùn)行速度快且價(jià)格便宜的MSP430F2274為核心,避障檢測(cè)采用測(cè)距精準(zhǔn)的超聲波傳感器,該傳感器采集小車周圍的環(huán)境信息并傳遞給MSP430進(jìn)行程序判斷處理,從而達(dá)到控制小車自動(dòng)避障的目的。
1 系統(tǒng)的總體結(jié)構(gòu)框圖
該系統(tǒng)主要由MSP430控制器,超聲波避障模塊,電機(jī)驅(qū)動(dòng),測(cè)速,語(yǔ)音模塊,溫度模塊,小車的機(jī)械運(yùn)動(dòng)部分采用四輪差速轉(zhuǎn)向式結(jié)構(gòu),前2個(gè)輪是驅(qū)動(dòng)輪,分別由電機(jī)控制其運(yùn)動(dòng),后兩輪為隨動(dòng)輪。采用MSP430F2274單片機(jī)作為主控制單元,小車裝有超聲波模塊來(lái)負(fù)責(zé)探測(cè)障礙物,做出避障決策。在小車的驅(qū)動(dòng)輪上裝有光電編碼器對(duì)小車進(jìn)行測(cè)速。為消除溫度對(duì)測(cè)距的影響,使用溫度傳感器模塊時(shí)刻檢測(cè)小車周圍的溫度情況并修正。在小車上裝配語(yǔ)音播報(bào)功能模塊,能知道小車的位置和運(yùn)行狀態(tài),總體結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)的總體框圖
2 智能小車的硬件設(shè)計(jì)
2.1 主控芯片
該設(shè)計(jì)是以MSP430F2274單片機(jī)為控制的核心部件。MSP430是一款16位的超低功耗單片機(jī),采用了精簡(jiǎn)指令集(RISC)結(jié)構(gòu),具有豐富的尋址方式,片內(nèi)資源豐富,處理能力強(qiáng)大、系統(tǒng)工作穩(wěn)定,主要是它具有多路PWM輸出,以作為該設(shè)計(jì)電機(jī)控制的有利資源,系統(tǒng)主控設(shè)計(jì)圖如圖2所示。
圖2 系統(tǒng)主控設(shè)計(jì)圖
2.2 超聲波模塊
避障是智能小車運(yùn)動(dòng)過(guò)程中最基本的功能,而避障首要是確定機(jī)器人自身與障礙物的距離并且定位。小車的避障探測(cè)模塊采用SRF08超聲波收發(fā)模塊,其波頻率為40 kHz,檢測(cè)距離范嗣為3 cm~6 m,SDA和SCL分別為控制端和接收端,設(shè)計(jì)共采用4個(gè)超聲波收發(fā)模塊分別安裝在小車的正前方,右前方和左前方和后方,4個(gè)模塊分別接在MSP430單片機(jī)的I/OP1.0、I/OP1.1、I/OP1.2、I/OP1.3、I/OP1. 4、I/OP1. 5、I/OP1.6、I/OP1.6端口上,采用I/O觸發(fā)測(cè)距,單片機(jī)給SDA提供25μs高電平信號(hào),模塊自動(dòng)發(fā)送8個(gè)40 Hz方波,并且檢測(cè)是否有返回信號(hào),若有返回信號(hào),SCL管腳輸出高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間,從而計(jì)算出超聲波從發(fā)射到接收所用的時(shí)間t,常溫下聲波在空氣中的傳播速度(其中T為攝氏溫度)
此時(shí)可得到是否避障的距離為s=vt/2。
2.3 測(cè)溫和電源模塊
為了使計(jì)算的距離更精確而不受溫度影響,該設(shè)計(jì)中加入了DS18B20溫度傳感器接在I/OP4.6上,實(shí)時(shí)檢測(cè)機(jī)器人周圍環(huán)境的溫度T(T的值要精確到小數(shù)點(diǎn)后3位),以修正聲速的傳播公式V,從而提高測(cè)距的精確度。由于MSP430工作電壓最大是3.3 V,電機(jī)驅(qū)動(dòng)采用12 V電壓,測(cè)速模塊和超聲波模塊采用5 V電壓,所以采用LM7812、LM7805和LM1117組成穩(wěn)壓電路。
2.4 語(yǔ)音模塊
語(yǔ)音電路采用ISD2560芯片為核心器件,結(jié)合外圍電路與單片機(jī)接口連接,進(jìn)行分段尋址,分析所測(cè)量數(shù)據(jù),并設(shè)計(jì)出語(yǔ)音元素,包括前方、左前方、右前方、后方、厘米等語(yǔ)音元素,然后分別錄制好語(yǔ)音元素,把這些信息存儲(chǔ)在ISD2560的存儲(chǔ)器單元內(nèi),測(cè)量的數(shù)據(jù)經(jīng)過(guò)軟件處理后,單片機(jī)發(fā)送語(yǔ)音地址和音控指令,通過(guò)和存儲(chǔ)在ISD2560內(nèi)的地址數(shù)據(jù)匹配,然后由語(yǔ)音電路通過(guò)揚(yáng)聲器播出測(cè)量數(shù)據(jù)的結(jié)果。語(yǔ)音芯片的地址碼接口A4、A5、A6、A7、A8分別接在I/OP2.2、I/OP3.0、I/OP3.1、I/OP3.2、I/OP3.3。
2.5 電機(jī)驅(qū)動(dòng)模塊
電機(jī)驅(qū)動(dòng)模塊是智能車的重要組成部分,它和電機(jī)共同組成智能小車的運(yùn)動(dòng)控制系統(tǒng)。該設(shè)計(jì)的驅(qū)動(dòng)輪是由2個(gè)M1和M2交流永磁同步電機(jī),因此采用的電機(jī)驅(qū)動(dòng)器是高電壓大電流高功率的L298N雙H橋集成電路,L289N可以驅(qū)動(dòng)兩個(gè)電機(jī),通過(guò)控制輸入端IN1-IN4信號(hào),來(lái)控制H橋的通斷,使得電機(jī)形成正反轉(zhuǎn)或停止,通過(guò)控制L298N的使能端EnA、EnB,采用技術(shù)成熟的PWM調(diào)速原理來(lái)控制電機(jī)的轉(zhuǎn)速,從而達(dá)到控制小車運(yùn)行的快慢和轉(zhuǎn)向的目的。為了防止在啟停電機(jī)的瞬間所形成的反饋電流損壞L298N,因此在L298N輸出端與電機(jī)之間加入8個(gè)二極管形成續(xù)流達(dá)到保護(hù)的作用,再則為了防止L298N輸出負(fù)載端電機(jī)對(duì)輸入端信號(hào)傳輸產(chǎn)生影響,以及對(duì)MSP430芯片產(chǎn)生不利的干擾,在L298N的信號(hào)輸入端通過(guò)連接TLP521可控制的光電電耦合器件,達(dá)到對(duì)L298N信號(hào)輸入前端的信號(hào)電路與負(fù)載的完全隔離,從而增加了電路的安全性,減少了電路信號(hào)干擾。本設(shè)計(jì)中的驅(qū)動(dòng)電機(jī)采用的是方波驅(qū)動(dòng)的交流永磁同步電機(jī),該電機(jī)的轉(zhuǎn)速與驅(qū)動(dòng)信號(hào)的頻率成正比,結(jié)構(gòu)簡(jiǎn)單,調(diào)速性能優(yōu)良,運(yùn)行可靠且便于維護(hù)。其電機(jī)驅(qū)動(dòng)和控制模塊電路如圖3所示。
圖3 電機(jī)驅(qū)動(dòng)模塊
2.6 測(cè)速模塊和PID控制
對(duì)速度的檢測(cè)、調(diào)節(jié)控制能夠保證小車穩(wěn)定的運(yùn)行,避免小車在避障時(shí)由于車速過(guò)高來(lái)不及躲避等問(wèn)題。該設(shè)計(jì)中采用256線光電編碼器作為速度檢測(cè),2個(gè)編碼器和電機(jī)同軸相連。它直接利用光電轉(zhuǎn)換原理輸出3組方波脈沖A、B和Z相,A、B兩組脈沖相位差90°,從而可方便地判斷出旋轉(zhuǎn)方向,而Z相為每轉(zhuǎn)一個(gè)脈沖,用于基準(zhǔn)點(diǎn)定位。在此采用M/T法測(cè)速,單片機(jī)通過(guò)定時(shí)器對(duì)電機(jī)速度進(jìn)行10 ms定時(shí)采樣,把采樣所得速度信息與給定的速度信息所得的速度差傳給PID控制器,來(lái)實(shí)現(xiàn)對(duì)電機(jī)速度的最佳閉環(huán)控制。從而在小車在前進(jìn)、后退、轉(zhuǎn)彎、剎車等動(dòng)作能快速響應(yīng)且超調(diào)量小,因此系統(tǒng)采用積分分離的PID控制算法,開(kāi)始取消積分作用,當(dāng)被調(diào)量相差不大時(shí)再引入積分作用,實(shí)現(xiàn)算法的具體步驟如下:
1)根據(jù)實(shí)際情況,人為的設(shè)定一個(gè)值w>0,E(k)=R(k)-H(k),其中R(k)為給定值,H(k)為測(cè)量值。
2)當(dāng)E(k)>w時(shí),采用PD控制調(diào)節(jié),可以避免超調(diào)過(guò)大,還可以使系統(tǒng)有較快的反應(yīng)。
3)當(dāng)E(k) 3 軟件的設(shè)計(jì) MSP430單片機(jī)實(shí)時(shí)監(jiān)控超聲波模塊傳送的信號(hào)并對(duì)其信號(hào)進(jìn)行避障決策判斷,小車在不需要做出避障時(shí)沿直線行駛或停止,并且等待定時(shí)器的中斷信號(hào)產(chǎn)生,當(dāng)需要避障時(shí),小車就向有障礙物相反的方向調(diào)整出(左轉(zhuǎn)、右轉(zhuǎn)、倒退并轉(zhuǎn)向)最佳的運(yùn)行路線,軟件主要采用C語(yǔ)言進(jìn)行編程。主控程序流程圖如圖4所示。 圖4 主控程序流程圖 在小車運(yùn)行的速度調(diào)控中加入PID算法來(lái)調(diào)控PWM對(duì)小車的運(yùn)行速度進(jìn)行決策控制,能夠很好的實(shí)現(xiàn)小車運(yùn)行的穩(wěn)定性和可靠性,PID調(diào)控PWM的程序流程圖如圖5所示。 圖5 PID調(diào)控PWM程序流程圖 4 實(shí)驗(yàn)結(jié)果 該智能小車做成后對(duì)其性能測(cè)試:小車的正常運(yùn)行速度約為0.11 m/s,在遇到的障礙物后做出的避障決策,跟程序中預(yù)先設(shè)定避障距離15 cm相差不多,根據(jù)試驗(yàn)的測(cè)量數(shù)據(jù),小車預(yù)先設(shè)定的避障距離和實(shí)際的情況上下浮動(dòng)0~3 cm,到達(dá)了預(yù)期設(shè)計(jì)的目標(biāo)。 5 結(jié)論 該設(shè)計(jì)采用的以MSP430單片機(jī)為平臺(tái)智能小車,能夠滿足控制要求,采用的超聲波避障、PID控制算法以及PWM速度控制,使得小車穩(wěn)定靈活可靠的運(yùn)行。后續(xù)研究為改進(jìn)小車實(shí)現(xiàn)更高智能化,采用ARM嵌入式、Linux操作系統(tǒng)和DSP,并加入各種智能傳感器等來(lái)實(shí)現(xiàn)小車的更高的人性化智能化。