許李尚,王立峰,劉 潮,李 寧,王巧燕
(東北林業(yè)大學(xué) 機(jī)電工程學(xué)院,黑龍江 哈爾濱 150040)
隨著現(xiàn)代科技水平的飛速發(fā)展,智能化已經(jīng)成為了當(dāng)代的主題。智能化手機(jī)、智能化門鈴方便了人們的生活;智能化生產(chǎn)流水線、智能化監(jiān)控體系提高了工作效率。但縱觀國(guó)內(nèi)健身器材市場(chǎng),智能化產(chǎn)品卻寥寥無幾。把科技的力量和健身器材相結(jié)合,進(jìn)行健身器材的智能化開發(fā)和研究成了一個(gè)十分必要的課題。
查閱2008年連永偉等發(fā)表的《智能啞鈴設(shè)計(jì)》這一文章可以發(fā)現(xiàn),其設(shè)計(jì)實(shí)現(xiàn)了對(duì)于訓(xùn)練效果的初級(jí)反饋功能[1]。但對(duì)于一款智能化的健身器材,這還遠(yuǎn)遠(yuǎn)不夠,其設(shè)計(jì)缺乏人性化考慮。在智能啞鈴系統(tǒng)設(shè)計(jì)中加入傳感器模塊和語音模塊,使整個(gè)系統(tǒng)具備人機(jī)交互功能,能夠更好地實(shí)現(xiàn)智能健身的目的。
本設(shè)計(jì)實(shí)現(xiàn)能夠采集、處理訓(xùn)練信息,并將訓(xùn)練結(jié)果加以語音播放的智能啞鈴。智能啞鈴共有三部分,分別是主控芯片、傳感器模塊和語音模塊,如圖1 所示。采用飛思卡爾公司的S12X 微控制器為主控芯片,處理傳感器模塊采集的信息,并對(duì)語音模塊進(jìn)行信息交互和實(shí)時(shí)控制。為了能夠采集有效信息,傳感器采用對(duì)運(yùn)動(dòng)量可以精確采集的MMA8451 三軸加速度計(jì)和三軸陀螺儀,它們能夠有效地采集訓(xùn)練的信息量,并周期性的發(fā)送給MCU。語音模塊作為本設(shè)計(jì)中的人機(jī)交互通道,把MCU 處理后的有效信息通過語音播報(bào)的形式反饋給訓(xùn)練者,并把訓(xùn)練者的語音控制指令傳輸給MCU,用語音對(duì)啞鈴進(jìn)行控制,如選擇播放不同的音樂等,實(shí)現(xiàn)人機(jī)互動(dòng)的功能。
圖1 智能啞鈴硬件系統(tǒng)結(jié)構(gòu)圖Fig.1 Hardware system construction diagram of intelligent dumbbell
(1)S12X 微控制器。S12X 微控制器是飛思卡爾公司在16 位S12X 系列MCU 基礎(chǔ)上推出的新一代的雙核微控制器,擁有卓越的性能,堪比32 位微控制器。它的CPU 工作頻率最高可達(dá)80MHz,同時(shí)集成了豐富的通信功能、定時(shí)器功能和支持高達(dá)12 位精度的A/D 采樣功能,廣泛應(yīng)用于無線通信、手持式設(shè)備、小家電、基于簡(jiǎn)化型媒體控制器(SMAC)等系統(tǒng)中。本設(shè)計(jì)選用S12X系列的MC9S12X128MCU(內(nèi)部擁有128KBFlash,8KBRAM)作為核心部件。
(2)MMA8451 三軸加速度計(jì)。加速度計(jì)近些年來被廣泛地應(yīng)用到各種智能產(chǎn)品中,包括智能手機(jī)、飛機(jī)導(dǎo)航系統(tǒng)等領(lǐng)域。MMA8451 加速度傳感器是飛思卡爾公司生產(chǎn)的一款三軸定位12 位/8 位精度轉(zhuǎn)換的數(shù)字加速度計(jì),16 引腳,QFN 封裝,數(shù)字I2C 輸出??蓹z測(cè)自由落體、運(yùn)動(dòng)、脈沖、振動(dòng)、傾角等,32 個(gè)采樣FIFO,每次采樣都通過高通濾波后傳入FIFO[2]。MMA8451 通過感知X、Y、Z 三個(gè)自身定位的坐標(biāo)軸上的加速度(包括重力加速度),并將其模擬量進(jìn)行A/D 轉(zhuǎn)換,變成8 位精度的數(shù)字量之后,再通過I2C 總線傳遞給MCU。MCU通過把三個(gè)軸的分量合并后,與重力加速度進(jìn)行比較,來確定物體是否加速運(yùn)動(dòng)。當(dāng)只有重力加速度作用的時(shí)候,可進(jìn)一步確定其角度[3]。
(3)ENC-03 陀螺儀。ENC-03 陀螺儀是一種微機(jī)械陀螺儀,一個(gè)陀螺儀能夠測(cè)量一個(gè)軸的角速度,并傳遞給MCU 相應(yīng)的電壓信號(hào),MCU 通過其內(nèi)部集成的A/D采集模塊進(jìn)行數(shù)據(jù)的讀取。通過陀螺儀采集到的角速度和加速度計(jì)的重力加速度,可以得到啞鈴的空間狀態(tài)。例如以角速度方向改變作為依據(jù),來進(jìn)行計(jì)數(shù),得到訓(xùn)練者總共做了幾次啞鈴運(yùn)動(dòng);通過確定兩次角速度為零時(shí),加速度計(jì)的角度,來確定每次運(yùn)動(dòng)轉(zhuǎn)過的角度。
(4)語音模塊。語音模塊包括語音識(shí)別終端、語音處理器、語音輸出終端、SCI 模塊、SD 卡等,通過SCI 模塊與MC9S12XS128 主控模塊進(jìn)行通信。本設(shè)計(jì)采用M08-A 語音模塊進(jìn)行信息的輸出與反饋,其主要功能有兩點(diǎn): ①當(dāng)語音模塊處于工作狀態(tài)時(shí),對(duì)其說出特定的詞語或句子,此時(shí)由麥克識(shí)別該聲音,之后由內(nèi)部芯片對(duì)其處理,若識(shí)別成功,內(nèi)部的芯片會(huì)產(chǎn)生相對(duì)應(yīng)的二進(jìn)制代碼,并訪問SD 卡中以相同二進(jìn)制代碼命名的一條語音記錄,通過揚(yáng)聲器進(jìn)行播放。此語音內(nèi)容可人為更改為自己想用的內(nèi)容;②通過輸入端接受單片機(jī)的SCI 模塊發(fā)來的二進(jìn)制代碼,根據(jù)此二進(jìn)制代碼訪問語音模塊SD 卡中以相同二進(jìn)制代碼命名的一條語音記錄[4],通過揚(yáng)聲器進(jìn)行播放。
本設(shè)計(jì)采用C 語言編程,使用Code Warrior 5 開發(fā)環(huán)境,通過BDM 進(jìn)行調(diào)試和下載。系統(tǒng)軟件設(shè)計(jì)流程如圖2 所示。
MCU 初始化各個(gè)驅(qū)動(dòng)程序之后,等待語音模塊通過SCI 模塊發(fā)來信息,當(dāng)語音模塊接收到“開始” 命令之后,發(fā)送信 息 給MCU。MCU 接 收到開始信息之后,通過PIT 中斷實(shí)現(xiàn)周期性的采集陀螺儀和加速度計(jì)的數(shù)值,并儲(chǔ)存到內(nèi)存中。被MCU 不斷分析來獲取啞鈴的狀態(tài)并進(jìn)行計(jì)數(shù)。當(dāng)接收到“停止”指令后,停止采集[5]。在采集數(shù)據(jù)期間,各個(gè)采集時(shí)刻的每個(gè)坐標(biāo)軸上的受力就可通過F=ma 求得,這里要求啞鈴的重量已知,軟件設(shè)計(jì)把陀螺儀和加速度計(jì)的三個(gè)坐標(biāo)軸重合。為了讓MCU 能通過累加計(jì)算出每次采集周期內(nèi)所用的功,鍛煉者需要在發(fā)出 “開始” 信息之前,選擇自己的小臂長(zhǎng)度或者采用系統(tǒng)默認(rèn)值。采集停止之后,通過語音模塊把運(yùn)動(dòng)次數(shù)和所做的功全部反饋給訓(xùn)練者,讓訓(xùn)練者清楚地了解自己本次的訓(xùn)練結(jié)果。
圖2 軟件流程圖Fig.2 Software flow pattern
MMA8451 加速度傳感器與主控模塊通過模擬I2C總線進(jìn)行通信。I2C 總線使用三根信號(hào)線進(jìn)行通信,分別是SCL、SDA 和SA0,外部上拉電阻將加速度計(jì)的SDA 接單片機(jī)的PM 0 口,SCL 接單片機(jī)的PM 1 口,當(dāng)總線空閑時(shí),這兩根線表現(xiàn)為高電平狀態(tài)。MMA8451的I2C 接口可工作在快速模式400KHz 或普通模式100KHz??偩€傳輸開始由START 信號(hào)觸發(fā),START 信號(hào)定義為,當(dāng)數(shù)據(jù)線從高電平跳變到低電平,而時(shí)鐘線SCL 仍然保持高電平。當(dāng)由主機(jī)發(fā)送START 信號(hào)后,I2C 總線被認(rèn)為從空閑(free)狀態(tài)進(jìn)入忙(busy)狀態(tài)[6]。緊接著START 信號(hào)后主機(jī)發(fā)送的字節(jié),前7 位用于指示從機(jī)地址,第8 位用于指示數(shù)據(jù)方向是 “讀出”(“1” 數(shù)據(jù)從從機(jī)到主機(jī)) 還是 “寫入” (“0” 數(shù)據(jù)從主機(jī)到從機(jī))。地址發(fā)送完畢后,總線上的所有從機(jī)將自己的地址和總線上接收到的地址進(jìn)行比較,地址匹配的設(shè)備即為主機(jī)選中設(shè)備[7]。
程序中的信息采集是通過PIT 中斷周期性進(jìn)行的,啞鈴運(yùn)動(dòng)不需要過快的處理速度,因此,中斷采集速度不能過快。在設(shè)計(jì)中我們選擇采集頻率為100Hz,及設(shè)定PIT 每10ms 中斷一次。加速度計(jì)和陀螺儀采集到的數(shù)據(jù)經(jīng)過物理回歸之后,得到相對(duì)應(yīng)的各坐標(biāo)軸的帶有符號(hào)的加速度和角速度。通過對(duì)角速度方向變化的判別,可以確定是否發(fā)生轉(zhuǎn)向,兩次轉(zhuǎn)向算一次,這樣就可以進(jìn)行計(jì)數(shù)了[8]。如果把每一時(shí)刻各軸的角速度和加速度帶符號(hào)相乘,再乘上設(shè)定小臂的長(zhǎng)度,就能得到每一個(gè)10ms 內(nèi)功率,乘上時(shí)間就得到了功,把三個(gè)軸的功累加后求和,就得到了總功。MMA8451 加速度計(jì)信息采集部分核心代碼如下:
(1)設(shè)定關(guān)鍵字。通過串口操作,給語音模塊設(shè)定可識(shí)別的關(guān)鍵字。
(2)本設(shè)計(jì)中采用的ASR·M08-A 非特定人語音識(shí)別模塊,支持特有格式的ASR 指令,指令由ASCⅡ碼組成[9]。
(3)把常用數(shù)字“0”到“9”及“個(gè)”、“十”、“百” 等常用數(shù)字作為聲音文件錄制下來存放在語音模塊的SD 卡中。把單片機(jī)信息采集及處理后得到的運(yùn)動(dòng)次數(shù)作為文件播放參數(shù)kk,傳遞給void send_analyze_data () 函數(shù),進(jìn)行聲音文件的播放。部分代碼如下:
智能啞鈴是將微控制器、傳感器以及語音播放模塊有機(jī)結(jié)合設(shè)計(jì)出的一種新型運(yùn)動(dòng)器械,具有信息靈敏度高,更具人性化,便捷化的特點(diǎn)。與傳統(tǒng)啞鈴機(jī)械式的鍛煉方式相比,能更好地實(shí)現(xiàn)對(duì)健身計(jì)劃的指導(dǎo)作用,達(dá)到科學(xué)健身的目的。智能健身器械的研究和開發(fā)將有廣闊的應(yīng)用前景和實(shí)際意義。
[1] 連永偉,劉靜靜,嚴(yán)國(guó)洋.智能啞鈴設(shè)計(jì)[J].世界電子元器件,2008.
[2] 田雷,等.單片集成三軸加速度傳感器[J].半導(dǎo)體技術(shù),2012,12.
[3] 劉宗林,等.新型三軸微加速度計(jì)設(shè)計(jì)[J].傳感技術(shù)學(xué)報(bào),2004,3.
[4] 飛思卡爾RS08 內(nèi)核和MC9RS08KA 系列單片機(jī)[J].世界電子元器件,2006,9.
[5] 譚浩強(qiáng).C 程序設(shè)計(jì)教程[M].北京:清華大學(xué)出版社,2007.
[6] 王宜懷.嵌入式系統(tǒng)設(shè)計(jì)實(shí)戰(zhàn)—基于飛思卡爾S12X 微控制器[M].北京:北京航空航天大學(xué)出版社,2011.
[7] 王宜懷.嵌入式系統(tǒng)原理與實(shí)踐[M].北京:電子工業(yè)出版社,2012.
[8] (印度)Raj Kamal;賈建斌,李化(譯).嵌入式系統(tǒng)—體系設(shè)計(jì)、編程和設(shè)計(jì)(第二版)[M].北京:清華大學(xué)出版社,2010,3.
[9] 易克初,等.語音信號(hào)處理[M].北京:國(guó)防工業(yè)出版社,2000.