《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 單片機實現聲音導引系統(tǒng)方案
單片機實現聲音導引系統(tǒng)方案
EEworld
摘要: 系統(tǒng)組成如圖1所示,在系統(tǒng)設計中采用兩塊單片機(AT89S52)分別作為可移動的聲源的檢測和控制核心,。通過單片機(MCUl)對接收器接收到聲源信號的時間做處理,,檢測出當前小車的位置,然后通過無線發(fā)送給MCU2,。MCU2根據當前的位置控制電機的轉速及轉向,,當停止下來時給出相應的聲光提示。
Abstract:
Key words :

     1 系統(tǒng)的具體設計與實現

  1.1 系統(tǒng)組成

  系統(tǒng)組成如圖1所示,,在系統(tǒng)設計中采用兩塊單片機(AT89S52)分別作為可移動的聲源的檢測和控制核心,。通過單片機(MCUl)對接收器接收到聲源信號的時間做處理,檢測出當前小車的位置,,然后通過無線發(fā)送給MCU2,。MCU2根據當前的位置控制電機的轉速及轉向,當停止下來時給出相應的聲光提示,。

  

單片機實現<a class=聲音導引系統(tǒng)框圖" src="http://files.chinaaet.com/images/20110825/819dd1e7-cfbc-4493-912a-facf999ace1d.jpg" style="WIDTH: 510px; HEIGHT: 242px" />

 

  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 誤差信號產生

  該設計的誤差信號產生主要有三個方面:

  檢波誤差  由聲源信號產生的半波損失,其誤差的大小與聲源信號發(fā)射的頻率有關,。當頻率越小時,,△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為比例調節(jié),,△d越大,,K越大,從而控制小車的速度,。

  方案三:PID控制算法

  在連續(xù)運動控制系統(tǒng)中,,將偏差的比例(P),積分(I)和微分(D)通過線性組合構成控制量,??刂葡到y(tǒng)中以驅動電機轉速采樣信息為反饋量,采用增量式數字PID控制算法,,通過輸出PWM信號對電機實現閉環(huán)控制,。計算公式為:

  

 

  式中:△un為第n次輸出增量;en為第n次偏差;en-1為第n-1次偏差;en-2為第n-2次偏差。增量式PID控制系統(tǒng)中的KP,,KI,,KD參數,一般經反復測試,、分析,,最終確定理想數值,。考慮到算法的簡單可行和實際應用,,采用方案一最簡單,,且能夠實現小車速度的控制。

  2 單元硬件電路設計

  根據系統(tǒng)組成框圖,,系統(tǒng)只要由以下幾部分電路組成.對各電路的設計與實現,,分別有以下不同的設計方案。

  2.1 可移動聲源調制電路設計

  可移動聲源產生的信號為周期性音頻脈沖信號,。利用RC振蕩電路產生可調的周期性音頻脈沖信號,,經功率放大再由揚聲器向外發(fā)送,該方案產生的音頻信號高次諧波信號較大,,經過電路的改進使高次諧波大大減小,,可以滿足設計要求。電路圖如圖3所示,。

  

可移動聲源調制電路

 

  2.2 接收器電路設計

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

  

接收器電路

關鍵字:單片機 聲音導引

 

2.3 小車控制電路設計

 

  小車控制電路設計采用NEC的電機控制ASSP芯片(型號MMC-1)實現可移動聲源的運動,,用UART模式和ASSP芯片進行通信使之提供控制信號,,再用L298驅動電機轉動。L298N芯片可以驅動兩個二相電機,,也可以驅動一個四相電機,,輸出電壓最高可達50 V,,可以直接通過電源來調節(jié)輸出電壓;可以直接用ASSP芯片口提供信號;而且電路簡單,,使用比較方便,。通過控制L298的 INl,IN2,,IN3,,IN4輸入端控制電機的轉速及轉向。此方案接口簡單,,不占用系統(tǒng)資源,。

  

MMC-1外圍電路

 

  2.4 小車轉向精度控制及路程計算

  小車轉向精度控制及路程計算的方案有多種,考慮到安裝的復雜和調試容易程度,,設計采用反射式光電對管,,對車輪上的黑白碼盤檢測,產生脈沖計數,,從而計算小車行駛路程和轉向控制,。

  

驅動電路1298

 

  3 軟件設計

  3.1 軟件設計說明

  在小車程序中,一開始打開無線接收,,在收到數據后進行判斷小車是否到達預定位置,,如果沒有到達則繼續(xù)由算法控制計算PWM值,由PWM值控制電機的轉速和轉向;如果收到數據后判斷到達了預定位置,,則發(fā)出聲光信號指示到達了預定位置,。

  對于監(jiān)測端程序設計,首先對測量值通過濾波算法進行濾波,,然后將上次的測量值發(fā)送,,再將定時器清零,判斷INT3是否有下降沿到來,,如果沒有監(jiān)測到下降沿,,則繼續(xù)等待,如果有,,則開定時器,,開中斷,延時100μs后又繼續(xù)對測量值濾波,。

  3.2 程序流程圖

  程序流程如圖7所示,。

  

單片機實現聲音導引系統(tǒng)程序流程圖

 

  4 測試數據

  4.1 基本要求

  (1)可移動聲源發(fā)出聲音后開始運動,到達ox線并停止,,這段運動時間為響應時間,,測量響應時間,用下列公式計算出響應的平均速度,,要求平均速度大于5 cm/s,。

  

 

  (2)可移動聲源停止后的位置與ox線之間的距離即定位誤差,定位誤差小于3 cm,。

  (3)可移動聲源在運動過程中任意時刻超過ox線左側的距離,,超過ox線左側的距離小于5 cm,。

  (4)可移動聲源到達ox線后,必須有明顯的光和聲指示,。

  (5)將可移動聲源轉向180°(可手動調整發(fā)聲器件方向),,能夠重復基本要求。

  4.2 發(fā)揮部分

  (1)平均速度大于10 cm/s;定位誤差小于1 cm;可移動聲源在運動過程中任意時刻超過ox線左側距離小于2 cm,。

  (2)在完成基本要求部分移動到ox線上后,,可移動聲源在原地停止5~10 s,然后利用接收器A和C,,使可移動聲源運動到W點,,到達W點以后,必須有明顯的光和聲指示并停止,,此時聲源距離W的直線距離小于1 cm,。整個運動過程的平均速度大于10 cm/s。

  4.3 基本要求測試

  測試數據表如表l所示,。將可移動聲源轉向180°(可手動調整發(fā)聲器件方向),,重復上述基本要求。測試數據表如表2所示,。

  

 

  4.4 發(fā)揮部分測試

  測試數據如表3所示,。

  

 

  經測試數據顯示,該設計能夠達到大賽的基本要求,,對于發(fā)揮部分也基本能夠實現,。

  5 結語

  該設計基于完備可靠的硬件設計,采用NEC電子電機控制ASSP芯片和AT89S52的控制和運算優(yōu)勢,,使用了一套獨特的軟件算法,,實現了聲音導引系統(tǒng)的精確控制。

此內容為AET網站原創(chuàng),,未經授權禁止轉載,。