1 系統(tǒng)的具體設(shè)計(jì)與實(shí)現(xiàn)
1.1 系統(tǒng)組成
系統(tǒng)組成如圖1所示,在系統(tǒng)設(shè)計(jì)中采用兩塊單片機(jī)(AT89S52)分別作為可移動(dòng)的聲源的檢測(cè)和控制核心。通過(guò)單片機(jī)(MCUl)對(duì)接收器接收到聲源信號(hào)的時(shí)間做處理,檢測(cè)出當(dāng)前小車的位置,然后通過(guò)無(wú)線發(fā)送給MCU2。MCU2根據(jù)當(dāng)前的位置控制電機(jī)的轉(zhuǎn)速及轉(zhuǎn)向,當(dāng)停止下來(lái)時(shí)給出相應(yīng)的聲光提示。
聲音導(dǎo)引系統(tǒng)框圖" src="http://files.chinaaet.com/images/20110825/819dd1e7-cfbc-4493-912a-facf999ace1d.jpg" style="WIDTH: 510px; HEIGHT: 242px" />
1.2 具體算法實(shí)現(xiàn)
1.2.1 設(shè)計(jì)與計(jì)算
該設(shè)計(jì)主要是根據(jù)接收器接收到聲源信號(hào)的時(shí)間間隔來(lái)確定當(dāng)前小車的位置S,如圖2所示。設(shè)S點(diǎn)到C點(diǎn)的距離為a。S點(diǎn)到A點(diǎn)的距離為b;S點(diǎn)到B點(diǎn)的距離為c。設(shè)S點(diǎn)的坐標(biāo)設(shè)為l,h),假設(shè)由單片機(jī)測(cè)得接收器A、接收器B和接收器C接收到信號(hào)的時(shí)間間隔計(jì)算出b與a的距離差為c1;b與c的距離差為 c2。由圖2中關(guān)系可得到如下方程:
則可根據(jù)測(cè)量的距離差△d=|c2-c1|求得相應(yīng)的小車的位置(l,h)。
1.2.2 誤差信號(hào)產(chǎn)生
該設(shè)計(jì)的誤差信號(hào)產(chǎn)生主要有三個(gè)方面:
檢波誤差 由聲源信號(hào)產(chǎn)生的半波損失,其誤差的大小與聲源信號(hào)發(fā)射的頻率有關(guān)。當(dāng)頻率越小時(shí),△d=|c2-c1|則越小。如頻率為5 kHz的聲源信號(hào),其周期為O.2 ms,則半波損失導(dǎo)致△d=0.1 ms×340 m/s=3.4 cm,所以頻率越大,半波損失越小。
單片機(jī)的測(cè)量時(shí)間產(chǎn)生的誤差 單片機(jī)晶振為24 MHz,內(nèi)部時(shí)鐘經(jīng)12分頻后,時(shí)鐘周期為O.5μs,測(cè)量時(shí)間誤差為±0.5μs,則會(huì)產(chǎn)生一定的誤差信號(hào)。
計(jì)算誤差 在計(jì)算聲源位置的過(guò)程中,數(shù)據(jù)有一定的取舍,則會(huì)產(chǎn)生一定的誤差。
1.2.3 控制理論簡(jiǎn)單算法
該設(shè)計(jì)的控制理論簡(jiǎn)單算法主要考慮三種方案:
方案一:根據(jù)計(jì)算出的△d=|c2-c1|的值來(lái)確定小車是否移動(dòng),當(dāng)移動(dòng)到△d=O時(shí),控制小車停止。
方案二:根據(jù)測(cè)得△d=|c2-c1|的具體值控制字PWM,PWM=K△d,其中k為比例調(diào)節(jié),△d越大,K越大,從而控制小車的速度。
方案三:PID控制算法
在連續(xù)運(yùn)動(dòng)控制系統(tǒng)中,將偏差的比例(P),積分(I)和微分(D)通過(guò)線性組合構(gòu)成控制量??刂葡到y(tǒng)中以驅(qū)動(dòng)電機(jī)轉(zhuǎn)速采樣信息為反饋量,采用增量式數(shù)字PID控制算法,通過(guò)輸出PWM信號(hào)對(duì)電機(jī)實(shí)現(xiàn)閉環(huán)控制。計(jì)算公式為:
式中:△un為第n次輸出增量;en為第n次偏差;en-1為第n-1次偏差;en-2為第n-2次偏差。增量式PID控制系統(tǒng)中的KP,KI,KD參數(shù),一般經(jīng)反復(fù)測(cè)試、分析,最終確定理想數(shù)值??紤]到算法的簡(jiǎn)單可行和實(shí)際應(yīng)用,采用方案一最簡(jiǎn)單,且能夠?qū)崿F(xiàn)小車速度的控制。
2 單元硬件電路設(shè)計(jì)
根據(jù)系統(tǒng)組成框圖,系統(tǒng)只要由以下幾部分電路組成.對(duì)各電路的設(shè)計(jì)與實(shí)現(xiàn),分別有以下不同的設(shè)計(jì)方案。
2.1 可移動(dòng)聲源調(diào)制電路設(shè)計(jì)
可移動(dòng)聲源產(chǎn)生的信號(hào)為周期性音頻脈沖信號(hào)。利用RC振蕩電路產(chǎn)生可調(diào)的周期性音頻脈沖信號(hào),經(jīng)功率放大再由揚(yáng)聲器向外發(fā)送,該方案產(chǎn)生的音頻信號(hào)高次諧波信號(hào)較大,經(jīng)過(guò)電路的改進(jìn)使高次諧波大大減小,可以滿足設(shè)計(jì)要求。電路圖如圖3所示。
2.2 接收器電路設(shè)計(jì)
接收器電路主要用于接收可移動(dòng)聲源發(fā)出的音頻脈沖信號(hào),然后傳送給單片機(jī)(MCUl),由單片機(jī)1(MCUl)對(duì)接收器接收到聲源信號(hào)的時(shí)間做處理,檢測(cè)出當(dāng)前小車的位置,然后通過(guò)無(wú)線發(fā)送給單片機(jī)2(MCU2)。所以能不能很好地接收到音頻信號(hào)是整過(guò)設(shè)計(jì)的關(guān)鍵。設(shè)計(jì)考慮接收器的信號(hào)采集傳感器采用 MIC,將采集信號(hào)放大、濾波、整形,產(chǎn)生方波信號(hào),傳送給單片機(jī),由于MIC靈敏度較高,受外界噪聲干擾較大,中間加高通濾波電路,可實(shí)現(xiàn)對(duì)聲源信號(hào)的接收。電路圖如圖4所示。
關(guān)鍵字:單片機(jī) 聲音導(dǎo)引
2.3 小車控制電路設(shè)計(jì)
小車控制電路設(shè)計(jì)采用NEC的電機(jī)控制ASSP芯片(型號(hào)MMC-1)實(shí)現(xiàn)可移動(dòng)聲源的運(yùn)動(dòng),用UART模式和ASSP芯片進(jìn)行通信使之提供控制信號(hào),再用L298驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng)。L298N芯片可以驅(qū)動(dòng)兩個(gè)二相電機(jī),也可以驅(qū)動(dòng)一個(gè)四相電機(jī),輸出電壓最高可達(dá)50 V,可以直接通過(guò)電源來(lái)調(diào)節(jié)輸出電壓;可以直接用ASSP芯片口提供信號(hào);而且電路簡(jiǎn)單,使用比較方便。通過(guò)控制L298的 INl,IN2,IN3,IN4輸入端控制電機(jī)的轉(zhuǎn)速及轉(zhuǎn)向。此方案接口簡(jiǎn)單,不占用系統(tǒng)資源。
2.4 小車轉(zhuǎn)向精度控制及路程計(jì)算
小車轉(zhuǎn)向精度控制及路程計(jì)算的方案有多種,考慮到安裝的復(fù)雜和調(diào)試容易程度,設(shè)計(jì)采用反射式光電對(duì)管,對(duì)車輪上的黑白碼盤檢測(cè),產(chǎn)生脈沖計(jì)數(shù),從而計(jì)算小車行駛路程和轉(zhuǎn)向控制。
3 軟件設(shè)計(jì)
3.1 軟件設(shè)計(jì)說(shuō)明
在小車程序中,一開(kāi)始打開(kāi)無(wú)線接收,在收到數(shù)據(jù)后進(jìn)行判斷小車是否到達(dá)預(yù)定位置,如果沒(méi)有到達(dá)則繼續(xù)由算法控制計(jì)算PWM值,由PWM值控制電機(jī)的轉(zhuǎn)速和轉(zhuǎn)向;如果收到數(shù)據(jù)后判斷到達(dá)了預(yù)定位置,則發(fā)出聲光信號(hào)指示到達(dá)了預(yù)定位置。
對(duì)于監(jiān)測(cè)端程序設(shè)計(jì),首先對(duì)測(cè)量值通過(guò)濾波算法進(jìn)行濾波,然后將上次的測(cè)量值發(fā)送,再將定時(shí)器清零,判斷INT3是否有下降沿到來(lái),如果沒(méi)有監(jiān)測(cè)到下降沿,則繼續(xù)等待,如果有,則開(kāi)定時(shí)器,開(kāi)中斷,延時(shí)100μs后又繼續(xù)對(duì)測(cè)量值濾波。
3.2 程序流程圖
程序流程如圖7所示。
4 測(cè)試數(shù)據(jù)
4.1 基本要求
(1)可移動(dòng)聲源發(fā)出聲音后開(kāi)始運(yùn)動(dòng),到達(dá)ox線并停止,這段運(yùn)動(dòng)時(shí)間為響應(yīng)時(shí)間,測(cè)量響應(yīng)時(shí)間,用下列公式計(jì)算出響應(yīng)的平均速度,要求平均速度大于5 cm/s。
(2)可移動(dòng)聲源停止后的位置與ox線之間的距離即定位誤差,定位誤差小于3 cm。
(3)可移動(dòng)聲源在運(yùn)動(dòng)過(guò)程中任意時(shí)刻超過(guò)ox線左側(cè)的距離,超過(guò)ox線左側(cè)的距離小于5 cm。
(4)可移動(dòng)聲源到達(dá)ox線后,必須有明顯的光和聲指示。
(5)將可移動(dòng)聲源轉(zhuǎn)向180°(可手動(dòng)調(diào)整發(fā)聲器件方向),能夠重復(fù)基本要求。
4.2 發(fā)揮部分
(1)平均速度大于10 cm/s;定位誤差小于1 cm;可移動(dòng)聲源在運(yùn)動(dòng)過(guò)程中任意時(shí)刻超過(guò)ox線左側(cè)距離小于2 cm。
(2)在完成基本要求部分移動(dòng)到ox線上后,可移動(dòng)聲源在原地停止5~10 s,然后利用接收器A和C,使可移動(dòng)聲源運(yùn)動(dòng)到W點(diǎn),到達(dá)W點(diǎn)以后,必須有明顯的光和聲指示并停止,此時(shí)聲源距離W的直線距離小于1 cm。整個(gè)運(yùn)動(dòng)過(guò)程的平均速度大于10 cm/s。
4.3 基本要求測(cè)試
測(cè)試數(shù)據(jù)表如表l所示。將可移動(dòng)聲源轉(zhuǎn)向180°(可手動(dòng)調(diào)整發(fā)聲器件方向),重復(fù)上述基本要求。測(cè)試數(shù)據(jù)表如表2所示。
4.4 發(fā)揮部分測(cè)試
測(cè)試數(shù)據(jù)如表3所示。
經(jīng)測(cè)試數(shù)據(jù)顯示,該設(shè)計(jì)能夠達(dá)到大賽的基本要求,對(duì)于發(fā)揮部分也基本能夠?qū)崿F(xiàn)。
5 結(jié)語(yǔ)
該設(shè)計(jì)基于完備可靠的硬件設(shè)計(jì),采用NEC電子電機(jī)控制ASSP芯片和AT89S52的控制和運(yùn)算優(yōu)勢(shì),使用了一套獨(dú)特的軟件算法,實(shí)現(xiàn)了聲音導(dǎo)引系統(tǒng)的精確控制。