袁 煒,劉淮霞,張乃昌,朱 虹
(1.淮南師范學(xué)院機械與電氣工程學(xué)院,安徽 淮南 232038;2.安徽理工大學(xué)電氣工程學(xué)院,安徽 淮南 232038;3.杭州鴻泉物聯(lián)網(wǎng)技術(shù)股份有限公司,浙江 杭州 310052)
隨著科技的快速發(fā)展和人們生活水平的不斷提高,人們對智能家居的需求量日益增多,對其功能性和操作性要求越來越高[1]。一方面臺燈作為學(xué)生學(xué)習(xí)和成人工作必不可缺的工具,長時間的使用或不正確的使用方式都會導(dǎo)致用戶視力的下降、駝背等后果;另一方面由于目前市面上的LED臺燈構(gòu)造簡單,功能單一,已無法滿足人們的需求,例如臺燈的開關(guān)亮暗等狀態(tài)多以手動調(diào)節(jié)為主,不具備與用戶進行互動功能。為使臺燈的使用更加便利化和健康化[2],可以在其功能及操作方法等方面加以改進,使其更加智能化、人性化。
系統(tǒng)硬件主要包括STM32單片機、YS-LDV7語音識別模塊、人體紅外測距模塊、溫濕度檢測模塊、DS1320時鐘模塊、QJ008語音模塊、OLED顯示屏、LED燈等。以STM32單片機為主控芯片,通過串口發(fā)送控制指令并傳送檢測數(shù)據(jù),借助語音識別技術(shù)、紅外測距技術(shù),結(jié)合溫濕度檢測、用眼計時及語音播報等功能,實現(xiàn)了臺燈的多功能設(shè)計。主要功能包括:①通過對語音信號的轉(zhuǎn)換、傳輸及解析等,實現(xiàn)對臺燈的語音識別與控制功能;②根據(jù)人體紅外測距原理,檢測人體坐姿情況,實現(xiàn)對不良坐姿的實時檢測與糾正功能;③在傳統(tǒng)臺燈功能的基礎(chǔ)上,增添溫濕度顯示,用眼過久語音提醒等功能。該臺燈系統(tǒng)設(shè)計是智能家居領(lǐng)域的進一步探究與改進,具備一定的產(chǎn)品化與市場化潛力[3]。系統(tǒng)硬件整體架構(gòu)如圖1所示。
圖1 系統(tǒng)硬件架構(gòu)圖
采用STM32F4作為主控芯片。該芯片是一種高性能ARM Cortex-M4處理器的32位RISC內(nèi)核,工作頻率高達168 MHz,能夠快速準確處理指令,外設(shè)資源和庫函數(shù)資源非常豐富,易于完成與其它外圍設(shè)備的通信,其成本低、功耗低、實時性好、集成度高[4]。通過串行口和定時器實現(xiàn)語音指令數(shù)據(jù)的獲取與解析,STM32F4驅(qū)動語音檢測芯片獲取數(shù)據(jù),對監(jiān)測數(shù)據(jù)信號按預(yù)先設(shè)定進行處理。STM32F4系列共有14個定時器,具有脈沖長度的輸入捕獲、PWM輸出和單脈沖輸出等功能。STM32F4的TIM3為16位定時器,具有四個獨立通道,可通過改變通用定時器TIM3輸出 I/O口的電平來獲得不同的捕獲值,實現(xiàn)不同頻率的PWM輸出,從而達到改變燈光亮度及開關(guān)燈等功能。
語音模塊結(jié)構(gòu)原理如圖2所示。語音識別選用YS-LDV7模塊[5],主要由51單片機和LD3320語音芯片構(gòu)成,給STM32主控制器提供狀態(tài)信息。該模塊利用LD3320非特定語音識別芯片,進行語音采集、識別與控制,可根據(jù)需要預(yù)先設(shè)置開燈、關(guān)燈、調(diào)至合適亮度、增強、減弱等語音指令。該模塊支持3.3V/5V雙電壓模式,可提供多條詞條編輯與存儲,支持多種語言辨識,識別率高達96%左右。具體原理:將語音信號轉(zhuǎn)換為電信號傳送至語音識別模塊LD3320,通過對比采集到的語音詞條與預(yù)先存儲的語音詞條,LD3320芯片將識別結(jié)果發(fā)給STC11L單片機,STC11L單片機監(jiān)測到并識別成功后便給STM32控制器發(fā)送對應(yīng)的動作信息,STM32根據(jù)語音控制指令驅(qū)動模塊做出相應(yīng)的動作,最終控制臺燈的開關(guān)、亮度等狀態(tài)。然而為了解決STC11L因發(fā)送引腳電平信息而導(dǎo)致驅(qū)動能力不足的問題,需設(shè)置上拉電阻以提高驅(qū)動能力。
圖2 語音模塊結(jié)構(gòu)原理圖
紅外測距選用日本夏普公司生產(chǎn)的GP2Y0A21YK0F和GP2Y0A02YK0F紅外測距模塊(圖3)。這些模塊由位置靈敏探測器、紅外發(fā)光二極管和信號處理電路集成組成,采用了三角測量原理,距離檢測不易受物體的反射率、環(huán)境溫度和工作持續(xù)時間等因素變化的影響,信號輸出類型為電壓模擬量,且與測量距離的輸出關(guān)系呈類反比的非線性關(guān)系[6]。此外波束角小,可減小因角度原因造成的誤差;遇物體時紅外傳感器發(fā)射出的紅外光束會反射到接收端。設(shè)計中考慮到臺燈用戶坐姿的水平距離較近和測量角度較小,選用GP2Y0A21YK0F測距模塊,可測距范圍為10~80 cm;根據(jù)斜方向的距離較遠和測量角度較大,選用兩個GP2Y0A02YK0F測距模塊,可測距范圍為20~150cm。該類紅外測距模塊的測量角度原理如圖4所示:α為紅外夾角,a和c分別為紅外測距傳感器從兩個不同角度測量的用戶距離,由余弦定理和公式(1)可求出三角形的第三邊b;再由余弦定理及計算公式(2),即可求出用戶與桌面所成的角度β,從而反映坐姿是否良好。當坐姿良好時,β角度的大小接近90°;β角度偏離90°越大表明坐姿越不良,語音提示需要及時糾正。由于采用基于一定算法的紅外測距技術(shù),所以靈敏度、精準度等方面都優(yōu)于人體紅外感應(yīng)模塊及超聲波測距模塊[7]。
圖4 坐姿監(jiān)測原理
圖3 紅外測距模塊
b2=a2+c2-2accosα
(1)
(2)
DHT11是一款價格便宜、體積超小、功耗極低的溫濕度傳感器,具有已校準數(shù)字信號輸出功能,讀數(shù)精確,性能穩(wěn)定[8]。可測濕度范圍為20%~90%RH,溫度范圍為0~50℃,濕度精度±5%RH, 溫度精度±2℃。DHT11使用單一總線通信,DATA管腳直接與單片機進行數(shù)據(jù)交互。總線處于通信狀態(tài)和空閑狀態(tài)之間,單片機和DHT11通信時,總線處于通信狀態(tài);當單片機與DHT11沒有交互時,總線處于空閑狀態(tài)。通常外接4.7K~5.1K的上拉電阻來提高遠距離傳輸?shù)姆€(wěn)定性,信號傳輸距離可達20m以上。DHT11通過DATA管腳傳輸數(shù)據(jù)大小為40bit,傳輸?shù)臄?shù)據(jù)格式依次是濕度數(shù)值、 溫度數(shù)值,最后8bit的數(shù)據(jù)就是校驗值。圖5為DHT11的實物圖。
圖5 DHT11實物圖
時鐘計時模塊采用美國DALLAS公司生產(chǎn)的DS1320時鐘芯片,用于記錄臺燈使用的時長,臺燈打開后立即開始計時,設(shè)定臺燈使用超過1小時計時結(jié)束,單片機輸出信號給語音提示芯片,由語音提示芯片完成播報,提醒用戶注意眼睛休息。DS1320是一種高性能、低功耗、帶RAM的實時時鐘電路,具有涓細電流充電能力,采用串行數(shù)據(jù)傳輸,以SCLK、I/O、RST三線接口與CPU進行同步通信。圖6為DS1320芯片引腳圖。
圖6 DS1320芯片引腳圖
QJ008是一款通過串口來直接控制的語音芯片[9],當用戶用眼過久時,能發(fā)出語音提醒其注意休息。支持U盤內(nèi)音頻播放,集合了MP3格式和MAV格式音頻的解碼電路,可將USB連接到電腦上顯示U盤模式,進行格式化下載語音到FLASH芯片,再通過串口命令播放指定的音頻文件,調(diào)節(jié)聲音、切換音頻等。選擇以SPI接口的W25Q64作為Flash存儲芯片,其內(nèi)存大,擦寫次數(shù)多,內(nèi)部數(shù)據(jù)保存時間長。采用無須外接耦合電容的LM4890作為功放電路主芯片,由喇叭進行語音播放,聲音的大小通過調(diào)節(jié)LM4890的電阻值來控制。QJ008語音播報系統(tǒng)框圖如圖7所示。
圖7 QJ008語音播報系統(tǒng)框圖
為了讓用戶直觀看到當前的環(huán)境溫濕度,選用類似于點陣屏的OLED顯示屏。OLED顯示屏具有構(gòu)造簡單、自發(fā)光不需背光源、能耗低、對比度高、厚度薄、抗振蕩、視角廣、反應(yīng)速度快、使用溫度范圍廣等優(yōu)點,顯示穩(wěn)定且效果好[10]。OLED屏用于顯示DHT11模塊檢測出的溫濕度,實時獲取用戶用燈環(huán)境的溫濕度,其共有4個接口,分別為VCC、GND、SCL、SDA接口。
硬件系統(tǒng)搭建好后,進行軟件流程的編寫和運行[11]。軟件設(shè)計需要實現(xiàn)的功能主要包括語音識別與控制、坐姿監(jiān)測與報警、用眼計時與語音提示等。圖8描述了多功能臺燈主要的程序設(shè)計流程:首先對STM32單片機等各模塊進行初始化,其次LD3320芯片通過駐極體拾音器采集語音信息,將獲得的語音信息與預(yù)先存儲在Flash中的詞條進行匹對,當匹對成功后,該語音指令將通過串口通信存儲到STM32單片機中,數(shù)據(jù)傳輸中斷請求結(jié)束后,STM32單片機控制燈泡作出相應(yīng)的狀態(tài)變化,若匹對失敗則需要再次獲取語音指令。與此同時,時鐘模塊開始用眼時長計時,紅外測距模塊測量坐姿情況,溫濕度檢測顯示結(jié)果。
圖8 系統(tǒng)軟件設(shè)計整體流程圖
圖9為設(shè)計的多功能臺燈實物及溫濕度顯示界面,圖10為發(fā)出“變暗”“最亮”語音指令測試的效果。
圖9 多功能臺燈實物圖及溫濕度顯示界面
(a)“變暗”時效果 (b)“最亮”時效果
由于預(yù)先設(shè)置了中文和英文兩種語言指令,測試人員可以根據(jù)需要進行選擇[12]。當測試人發(fā)出“小艾你好”或“Hello Xiao ai”語音指令時,燈的狀態(tài)不變,僅僅喚醒語音識別模塊;發(fā)出“開燈”或“Turn on the light”語音指令時,燈自動打開;發(fā)出“變亮”或“Brighten”語音指令時,燈亮度增加;發(fā)出“最亮”或“Brightest”語音指令時,燈達到最大亮度;發(fā)出“變暗”或“Darken”語音指令時,燈亮度減弱;發(fā)出“最暗”或“Darkest”語音指令時,燈達到最小亮度;發(fā)出“關(guān)燈”或“Turn off the light”語音指令時,燈熄滅。測試結(jié)果表明, LED 燈狀態(tài)的語音控制系統(tǒng)功能得以實現(xiàn)。具體語音控制測試結(jié)果如表1所示。
表1 LED燈語音控制狀態(tài)測試
將GP2Y0A21YK0F和GP2Y0A02YK0F紅外測距模塊與測試者身體如圖4位置放置。當測試者身體未進入紅外測距模塊感應(yīng)區(qū)域時,即β角接近90°時,語音未提示,表明坐姿良好,不需要調(diào)整坐姿;當測試者身體進入紅外測距模塊感應(yīng)區(qū)域時,即β角偏離90°較大時,有語音提示,表明坐姿錯誤,需要及時調(diào)整,調(diào)整正確后語音提示自動關(guān)閉。測試結(jié)果如表2所示,表明系統(tǒng)的坐姿檢測與語音提示功能正常,測試成功。
表2 坐姿檢測與語音提示功能測試
系統(tǒng)以STM32單片機為主控芯片設(shè)計了一款多功能臺燈,基于語音控制和紅外測距技術(shù),結(jié)合溫濕度檢測與用時語音提醒功能等,實現(xiàn)了臺燈開、關(guān)、亮、暗等狀態(tài)的語音控制功能,在方便用戶操作的同時節(jié)約了電能;具有用戶坐姿檢測與糾正功能,在一定程度上防止了駝背;環(huán)境溫濕度顯示功能,一定程度提供了根據(jù)天氣溫濕度信息而選擇穿著的便利;長時間用燈提醒功能,避免了用戶過度用眼造成視覺疲勞,保護了視力。這些功能及優(yōu)勢使得臺燈的智能化、人性化程度都得以提升,基本滿足了人們對臺燈智能控制的需求,具有不錯的實際應(yīng)用價值。
此外,功能方面仍有可以改進的地方。例如,增加人體識別模塊(如HC-SR501),實現(xiàn)有人時臺燈自動點亮,離開時自動熄滅的功能;還可增加光敏傳感器,根據(jù)環(huán)境的光照強度變化自動調(diào)整臺燈狀態(tài)的功能;以上功能均可與語音控制相互配合,實現(xiàn)主、客觀相結(jié)合的臺燈狀態(tài)調(diào)整模式,提高臺燈控制的靈活性,節(jié)能環(huán)保的同時改善用戶的體驗感。