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