基于AVR和51單片機的機器魚語音控制系統(tǒng)設計與實現(xiàn)
模塊PCB板已經(jīng)將連接麥克風的引腳接到模塊的MIC插座上,所以在連接電路的時候11~19和22~31引腳懸空不用。與51單片機連接時,ICR_P0~ICR_P7(2和33-39引腳)必須連接在單片機的數(shù)據(jù)總線上,同時需要在P0-P7,以及RDB,MD,INTB,WRB,CSB這些控制管腳上焊接1K /10K的上拉電阻(上拉到3.3V即可),這樣可以輔助系統(tǒng)穩(wěn)定運行。CLK引腳的連接有兩種選擇:1)直接將51單片機的晶振信號通過導線輸入到LD3320的CLK管腳,但是導線不宜過長。2)將正方形有源晶振直接焊接在模塊上預留的連接點,此時CLK管腳需要懸空。本文采用的第二種方法。
2.3 AVR控制部分
AVR是魚體的主控MCU,主要用來控制機器魚的的動力部分。機器魚的動力來自舵機,設計關節(jié)數(shù)為三個,即有三個舵機。每個舵機由十五位的不同占空比的PWM波來控制轉(zhuǎn)動不同的角度,三個舵機需要配合形成魚體波來控制魚體擺動。魚體結構如圖3。
魚體波是利用桿系機器魚對真實魚游動形態(tài)的擬合,可以認為魚體波曲線是魚體波幅包絡線和正弦曲線的合成,它開始于魚體慣性力的中心,延伸至尾柄,其曲線方程可表示為
式中,yboby是魚體的橫向位移(背腹軸),x是魚體的軸向位侈(頭尾軸),c1是魚體波波幅包絡線的一次項系數(shù),c2是魚體波波幅包絡線的二次項系數(shù),k是波長倍數(shù)(k=2π/λ),λ是魚體波的波長,w是魚體波的頻率(w=2πf=2π/T)。
由于計算機控制是一種離散的數(shù)字量,魚體波曲線也需要離散化,所以把時間參數(shù)t從魚體波運動函數(shù)yboby(x,t)中分離出來,方程即為
式中,i表示一個擺動周期內(nèi)的樣條曲線序列的第i個變量;N表示魚體波分辨率,即在一個擺動周期內(nèi)整個魚體波被離散的程度,其上限不能大于驅(qū)動機構擺動的最高頻率。
為了更好地表征魚體波動的參數(shù),提高魚體方向控制特別是轉(zhuǎn)彎過程中的靈活性,在方程2的特征參數(shù)基礎上,增加波長倍數(shù)k相對于x的二次增益,修改后的方程如下
通過調(diào)整k1和k2的值,根據(jù)x的變化可以得到更多的魚體波曲線。同時,在機器魚的設計過程中,可通過微調(diào)身體波參數(shù)來增加運動的機動性和靈活性。
評論