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