基于AT89S52的聲音導(dǎo)引系統(tǒng)設(shè)計(jì)
2009年全國大學(xué)生電子設(shè)計(jì)大賽的B題是“聲音導(dǎo)引系統(tǒng)”;題目要求設(shè)計(jì)并制作一聲音導(dǎo)引系統(tǒng)聲音導(dǎo)引系統(tǒng)有一個可移動聲源S,三個聲音接收器A,B,C,聲音接收器之間可以有線連接。聲音接收器能利用可移動聲源和接收器之間的不同距離,產(chǎn)生一個可移動聲源離指定位置的誤差信號,并用無線方式將此誤差信號傳輸至可移動聲源,引導(dǎo)其運(yùn)動。
1 系統(tǒng)的具體設(shè)計(jì)與實(shí)現(xiàn)
1.1 系統(tǒng)組成
系統(tǒng)組成如圖1所示,在系統(tǒng)設(shè)計(jì)中采用兩塊單片機(jī)(AT89S52)分別作為可移動的聲源的檢測和控制核心。通過單片機(jī)(MCUl)對接收器接收到聲源信號的時(shí)間做處理,檢測出當(dāng)前小車的位置,然后通過無線發(fā)送給MCU2。MCU2根據(jù)當(dāng)前的位置控制電機(jī)的轉(zhuǎn)速及轉(zhuǎn)向,當(dāng)停止下來時(shí)給出相應(yīng)的聲光提示。本文引用地址:http://cafeforensic.com/article/173314.htm
1.2 具體算法實(shí)現(xiàn)
1.2.1 設(shè)計(jì)與計(jì)算
該設(shè)計(jì)主要是根據(jù)接收器接收到聲源信號的時(shí)間間隔來確定當(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ī)測得接收器A、接收器B和接收器C接收到信號的時(shí)間間隔計(jì)算出b與a的距離差為c1;b與c的距離差為c2。由圖2中關(guān)系可得到如下方程:
則可根據(jù)測量的距離差△d=|c2-c1|求得相應(yīng)的小車的位置(l,h)。
1.2.2 誤差信號產(chǎn)生
該設(shè)計(jì)的誤差信號產(chǎn)生主要有三個方面:
檢波誤差 由聲源信號產(chǎn)生的半波損失,其誤差的大小與聲源信號發(fā)射的頻率有關(guān)。當(dāng)頻率越小時(shí),△d=|c2-c1|則越小。如頻率為5 kHz的聲源信號,其周期為O.2 ms,則半波損失導(dǎo)致△d=0.1 ms×340 m/s=3.4 cm,所以頻率越大,半波損失越小。
單片機(jī)的測量時(shí)間產(chǎn)生的誤差 單片機(jī)晶振為24 MHz,內(nèi)部時(shí)鐘經(jīng)12分頻后,時(shí)鐘周期為O.5μs,測量時(shí)間誤差為±0.5μs,則會產(chǎn)生一定的誤差信號。
計(jì)算誤差 在計(jì)算聲源位置的過程中,數(shù)據(jù)有一定的取舍,則會產(chǎn)生一定的誤差。
1.2.3 控制理論簡單算法
該設(shè)計(jì)的控制理論簡單算法主要考慮三種方案:
方案一:根據(jù)計(jì)算出的△d=|c2-c1|的值來確定小車是否移動,當(dāng)移動到△d=O時(shí),控制小車停止。
方案二:根據(jù)測得△d=|c2-c1|的具體值控制字PWM,PWM=K△d,其中k為比例調(diào)節(jié),△d越大,K越大,從而控制小車的速度。
方案三:PID控制算法
在連續(xù)運(yùn)動控制系統(tǒng)中,將偏差的比例(P),積分(I)和微分(D)通過線性組合構(gòu)成控制量??刂葡到y(tǒng)中以驅(qū)動電機(jī)轉(zhuǎn)速采樣信息為反饋量,采用增量式數(shù)字PID控制算法,通過輸出PWM信號對電機(jī)實(shí)現(xiàn)閉環(huán)控制。計(jì)算公式為:
評論