廖智舟
(柳州鐵道職業(yè)技術學院自動控制學院,廣西柳州,545000)
現(xiàn)有技術已能使動感座椅上下移動,或者左右、前后傾斜,也能使得座椅旋轉?,F(xiàn)有技術也能實現(xiàn)座椅帶音樂播放設備,使人能坐在座椅上聽音樂。但是現(xiàn)有技術沒有將音樂與座椅運動完美結合起來,使人缺乏對音樂節(jié)奏的體驗。
本設計的目的在于提供一種具有音樂節(jié)奏的動感座椅,能讓人在座椅上聽音樂的同時親身體驗到與音樂節(jié)奏相同的振動,將音樂與座椅運動結合起來,從而增強對音樂節(jié)奏的感受,提高音樂帶來的愉悅。
本設計可以分為兩大部分:動感座椅的外部組成結構和音樂節(jié)奏提取與驅(qū)動系統(tǒng)。動感座椅的外部組成結構由座椅主體、內(nèi)置彈簧鋼柱支架、伺服電機、伺服電機驅(qū)動器、凸輪、電子控制模塊等組成。具體見圖1。座椅主體由鋼柱帶彈簧支撐,座椅上的壓力變化時彈簧會產(chǎn)生相應的伸縮,座椅高度也會隨之產(chǎn)生變化。在座椅下方支撐坐板上固定伺服電機,電機軸上安裝有較大質(zhì)量的凸輪。這樣當電機旋轉一圈,就帶動凸輪旋轉一圈,由于凸輪重心不在中心,旋轉時重心會發(fā)生上下震蕩,作用在彈簧上的壓力也隨之變化,整個座椅就會產(chǎn)生一次振動。每當有音樂節(jié)奏時就會這樣產(chǎn)生振動,這振動與音樂節(jié)奏一致。音樂節(jié)奏提取與驅(qū)動系統(tǒng)由音樂輸入模塊、緩沖放大模塊、模數(shù)轉換模塊、微處理器模塊和伺服電機驅(qū)動模塊組成。具體見圖2。音樂輸入模塊、緩沖放大模塊、模數(shù)轉換模塊和微處理器模塊都安裝在電子控制模塊里面。音樂節(jié)奏提取與驅(qū)動系統(tǒng)能夠?qū)⒁魳饭?jié)奏提取出來并在節(jié)奏點時刻驅(qū)動伺服電機旋轉。
圖1
圖2
音樂節(jié)奏提取與驅(qū)動系統(tǒng)硬件部分由信號預處理部分、微處理器模塊和伺服電機驅(qū)動模塊組成,具體電路見圖3。
信號預處理部分的功能主要是對音樂信號進行干擾隔離、放大、濾波和模數(shù)轉換等處理,使得信號變?yōu)槲⑻幚砥髂軌蜃R別和處理的信號。信號預處理部分包括音樂輸入模塊、緩沖放大模塊和模數(shù)轉換模塊。
(1)音樂輸入模塊
該模塊的兩根信號線和手機與耳機連接的兩根線分別相連。這樣能夠?qū)⑹謾C向耳機輸送的音樂信號同時送往音樂節(jié)奏提取與驅(qū)動系統(tǒng)的緩沖放大模塊。
(2)緩沖放大模塊
該模塊主要由BB公司的ISO102芯片和相關電路組成,使用該芯片可以將100mV左右的音樂信號放大10倍,達到1V左右。這樣便于將信號送入模數(shù)轉換模塊后進行V/F(電壓/頻率)轉換。另外,該芯片采用的是阻容耦合方式可以有效消除噪聲干擾。
(3)模數(shù)轉換模塊
系統(tǒng)采用微處理器對音樂信號的節(jié)奏和能量進行提取,為了便于微處理器對信號節(jié)奏的提取,需要將經(jīng)過緩沖放大的音頻信號進行模數(shù)轉換,將音頻模擬信號各個固定時段內(nèi)的平均能量用數(shù)字量表示。根據(jù)系統(tǒng)對信號的要求,模數(shù)轉換模塊采用TC9401芯片組成V/F(電壓/頻率)轉換電路。
圖3
微處理器使用由意法半導體ST公司生產(chǎn)的STM32F103處理器。該處理器使用高性能ARM Cortex-M32位RSIC內(nèi)核,內(nèi)置高速大容量存儲器,具有豐富的增強I/O端口[1]。微處理器模塊包括電源電路、復位電路、時鐘電路和啟動模式選擇電路。
(1)電源電路
微處理器STM32F103處理器的電源工作電壓為3.3V的高質(zhì)量直流電源。提供這種電源需要使用LM2576T 5.0穩(wěn)壓芯片電路將通用12V直流電源降為5V。降壓后5V電源具有較大的脈動,平穩(wěn)性較差,再經(jīng)AMS1117 3.3芯片電路降壓后才能得到平穩(wěn)的3.3V高質(zhì)量直流電源,然后給處理器供電。
(2)復位電路
微處理器復位電路的作用是使微處理器恢復到起始狀態(tài)。
(3)時鐘電路
使用8MHz無源晶振,為微處理器提供硬件時序。使用32.768kHz晶振作為微處理器實時時鐘。
(4)啟動模式選擇電路
通過Boot0和Boot1引腳不同的電平選擇來選擇不同的啟動模式。當Boot0=1和Boot1=x時,用戶閃存被選為啟動區(qū)。當Boot0=1和Boot1=0時,用戶內(nèi)存被選為啟動區(qū)。當Boot0=1和Boot1=1時,用戶SRAM被選為啟動區(qū)。本設計選擇用戶內(nèi)存為微處理器啟動區(qū)。
伺服電機驅(qū)動器采用東元TSTE20C伺服電機驅(qū)動器。伺服電機采用東元TSB08751C-2BT-3型伺服電機。
(1)伺服電機驅(qū)動器主電源電路
伺服電機驅(qū)動器的主電源端子R、S、T接三相20 0~230V交流電,伺服電機驅(qū)動器的U、V、W三相輸出和接地腳分別與伺服電機電源相應腳連接,伺服電機驅(qū)動器能夠根據(jù)接受微處理器發(fā)來的脈沖信號,然后頻率調(diào)制并生成控制伺服電機旋轉的U、V、W三相電源輸出,從而控制伺服電機運動[2]。
(2)伺服電機驅(qū)動器信號電路
微處理器STM32F103將通過I/O接口向伺服電機驅(qū)動器CN1控制信號端的14腳發(fā)送控制伺服電機旋轉的信號,使用的是設置好頻率和脈沖個數(shù)的內(nèi)置定時器。伺服電機驅(qū)動器接收到多少個微處理器發(fā)來的脈沖就會向伺服電機發(fā)送多少個PWM脈沖。微處理器內(nèi)預分頻器的值設為1,將是2分頻,由于通用時鐘2的頻率為72MHz,這樣使用通用定時器2(為微處理器內(nèi)幾個定時器之一)輸出的脈沖波形頻率為36MHz。伺服電機旋轉一圈需要10000個PWM脈沖,1秒內(nèi)最多有2個節(jié)奏點,一秒內(nèi)最多需要發(fā)20000個脈沖,也就是20kHz的脈沖。微處理器的通用定時器2輸出的脈沖波形頻率36MHz大于20kHz,是可以達到要求的,并且能在很短的時間內(nèi)讓電機旋轉一周,避免相鄰兩個節(jié)奏點混在一起。伺服電機驅(qū)動器的16腳接微處理器的16腳,用于接收微處理器輸出的伺服電機轉向信號,本設計只需要伺服電機向一個方向旋轉,因此微處理器只需向這個端口輸出低電平[3]。
伺服電機驅(qū)動器的CN2端口接伺服電機內(nèi)的增量式編碼器,增量式編碼器用于反饋伺服電機的旋轉位置給伺服電機驅(qū)動器,伺服電機驅(qū)動器收到反饋信號后再來控制伺服電機旋轉,形成閉環(huán)控制,以達到精確控制伺服電機旋轉的位置以及速度[4]。
本設計的軟件使用C語言編程。軟件可以分為音樂節(jié)奏提取和音樂節(jié)奏驅(qū)動兩部分。
由于音樂節(jié)拍在1秒內(nèi)最多2個節(jié)拍,對節(jié)拍信號處理速度的要求不高,因此微處理器把1秒分為5個等時分點,分別求信號200ms的平均能量,從5個采樣點中找出極大值作為節(jié)奏點輸出。模數(shù)轉換電路已用低頻輸出的方法處理音頻信號。為了精確測量信號頻率,微處理器采用測量周期間接轉換為頻率的方法,利用微處理器內(nèi)部自帶的時鐘脈沖和高速計數(shù)器,通過高速計數(shù)器對時鐘脈沖的計數(shù)實現(xiàn)系統(tǒng)定時功能。采用累計的方法測量信號周期,只需記錄200ms內(nèi)脈沖的個數(shù)以及第一個和最后一個脈沖的到來時間,就可以計算出該段時間內(nèi)信號的平均周期。采用該方法,每隔200ms才作一次周期計算。信號周期可通過下式計算:
其中,K為計數(shù)器時間系數(shù);PT和CT分別為第一個脈沖和最后一個脈沖到來時計數(shù)器的計數(shù)值;N為200ms內(nèi)脈沖的個數(shù)。周期計算方法如下:
(1)脈沖個數(shù)初始化,令N=0;
(2)記錄第一個脈沖到來時計數(shù)器的計數(shù)值,記為PT,同時令N=1;
(3)記錄下一個脈沖到來時計數(shù)器的計數(shù)值,記為CT,同時令N=N+1;
(4)計 算 時 間 差 值tK=K× (CT?PT), 若 結 果 小 于200ms則返回步驟(3),直到滿足K× (CT?PT)≥ 2 00ms,停止計數(shù),通過式子計算周期T。測量得到的周期經(jīng)倒數(shù)轉換得到對應的信號平均頻率。
通常音樂信號的節(jié)奏點時刻即為出現(xiàn)能量極大值的時刻,求出的平均頻率與該段時間內(nèi)的能量大小成正比。所以節(jié)奏提取算法為:在一段時間內(nèi),比較出采樣點頻率的極大值,作為節(jié)奏點。根據(jù)音樂節(jié)奏一秒鐘左右出現(xiàn)一個節(jié)奏點的特點,將1秒內(nèi)檢測出的一個極大值作為節(jié)奏點輸出。檢測方法為:在某一時刻,比較它前面3個采樣點的頻率值,如果不小于前3個采樣點的頻率值就認為是節(jié)奏點,否則,不是節(jié)奏點,然后推遲到下一時刻再進行比較。具體流程見圖4。由于采樣點是200ms內(nèi)信號的平均頻率,利用該方法從采樣點得到的極大值點與信號實際的頻率最大值的誤差最大不超過200ms,延時小,節(jié)奏提取準確性高。
圖4
微處理器每確定一個節(jié)奏點就立即使用定時器2,通過I/O接口向伺服電機驅(qū)動器CN1控制信號端發(fā)送頻率為36MHz的10000個脈沖。伺服電機驅(qū)動器根據(jù)接收的脈沖信號,通過調(diào)制PWM波控制其供給伺服電機的三相電源,使得10000個脈沖正好可以驅(qū)動伺服電機轉動一圈,伺服電機轉動的時候帶動凸輪旋轉一圈,而由于凸輪重心不在旋轉中心,旋轉時重心會發(fā)生上下震蕩,作用在彈簧上的壓力也隨之變化,因此整個座椅就會產(chǎn)生一次振動。其他節(jié)奏點也用同樣的方法驅(qū)動。具體流程見圖5。
圖5
本設計的音樂節(jié)奏提取方法能準確提取音樂節(jié)奏,算法所占硬件資源較少,因此可以采用STM32F103微處理器作為音樂節(jié)奏提取與驅(qū)動的處理模塊。這比使用普通計算機價格便宜許多,且性價比要高。另外,本設計采用的伺服電機驅(qū)動器外形精簡而實用,其中驅(qū)動選擇單模式位置控制方式,該方式可以準確控制伺服電機旋轉角度,從而帶動凸輪旋轉,制造出與音樂一致的節(jié)奏,給人帶來強烈的音樂節(jié)奏體驗。