單片機實現聲音導引系統方案
1.1 系統組成
系統組成如圖1所示,在系統設計中采用兩塊單片機(AT89S52)分別作為可移動的聲源的檢測和控制核心。通過單片機(MCUl)對接收器接收到聲源信號的時間做處理,檢測出當前小車的位置,然后通過無線發送給MCU2。MCU2根據當前的位置控制電機的轉速及轉向,當停止下來時給出相應的聲光提示。
1.2 具體算法實現
1.2.1 設計與計算
該設計主要是根據接收器接收到聲源信號的時間間隔來確定當前小車的位置S,如圖2所示。設S點到C點的距離為a。S點到A點的距離為b;S點到B點的距離為c。設S點的坐標設為l,h),假設由單片機測得接收器A、接收器B和接收器C接收到信號的時間間隔計算出b與a的距離差為c1;b與c的距離差為 c2。由圖2中關系可得到如下方程:

則可根據測量的距離差△d=|c2-c1|求得相應的小車的位置(l,h)。

1.2.2 誤差信號產生
該設計的誤差信號產生主要有三個方面:
檢波誤差 由聲源信號產生的半波損失,其誤差的大小與聲源信號發射的頻率有關。當頻率越小時,△d=|c2-c1|則越小。如頻率為5 kHz的聲源信號,其周期為O.2 ms,則半波損失導致△d=0.1 ms×340 m/s=3.4 cm,所以頻率越大,半波損失越小。
單片機的測量時間產生的誤差 單片機晶振為24 MHz,內部時鐘經12分頻后,時鐘周期為O.5μs,測量時間誤差為±0.5μs,則會產生一定的誤差信號。
計算誤差 在計算聲源位置的過程中,數據有一定的取舍,則會產生一定的誤差。
1.2.3 控制理論簡單算法
該設計的控制理論簡單算法主要考慮三種方案:
方案一:根據計算出的△d=|c2-c1|的值來確定小車是否移動,當移動到△d=O時,控制小車停止。
方案二:根據測得△d=|c2-c1|的具體值控制字PWM,PWM=K△d,其中k為比例調節,△d越大,K越大,從而控制小車的速度。
方案三:PID控制算法
在連續運動控制系統中,將偏差的比例(P),積分(I)和微分(D)通過線性組合構成控制量??刂葡到y中以驅動電機轉速采樣信息為反饋量,采用增量式數字PID控制算法,通過輸出PWM信號對電機實現閉環控制。計算公式為:

式中:△un為第n次輸出增量;en為第n次偏差;en-1為第n-1次偏差;en-2為第n-2次偏差。增量式PID控制系統中的KP,KI,KD參數,一般經反復測試、分析,最終確定理想數值??紤]到算法的簡單可行和實際應用,采用方案一最簡單,且能夠實現小車速度的控制。
2 單元硬件電路設計
根據系統組成框圖,系統只要由以下幾部分電路組成.對各電路的設計與實現,分別有以下不同的設計方案。
2.1 可移動聲源調制電路設計
可移動聲源產生的信號為周期性音頻脈沖信號。利用RC振蕩電路產生可調的周期性音頻脈沖信號,經功率放大再由揚聲器向外發送,該方案產生的音頻信號高次諧波信號較大,經過電路的改進使高次諧波大大減小,可以滿足設計要求。電路圖如圖3所示。

2.2 接收器電路設計
接收器電路主要用于接收可移動聲源發出的音頻脈沖信號,然后傳送給單片機(MCUl),由單片機1(MCUl)對接收器接收到聲源信號的時間做處理,檢測出當前小車的位置,然后通過無線發送給單片機2(MCU2)。所以能不能很好地接收到音頻信號是整過設計的關鍵。設計考慮接收器的信號采集傳感器采用 MIC,將采集信號放大、濾波、整形,產生方波信號,傳送給單片機,由于MIC靈敏度較高,受外界噪聲干擾較大,中間加高通濾波電路,可實現對聲源信號的接收。電路圖如圖4所示。

評論