劉選朝,田庚,陳威沖,張家田,嚴(yán)正國
(西安石油大學(xué)光電油氣測井與檢測教育部重點實驗室,西安710065)
隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,各種智能化家居產(chǎn)品順應(yīng)市場需求大量出現(xiàn)[1],用戶對于智能家居互動的靈活性要求也越來越高。最近幾年,通過“單片機”對紅外線遙控信號進行存儲、轉(zhuǎn)發(fā)的技術(shù)已經(jīng)有了長足發(fā)展,進而利用嵌入式系統(tǒng)不斷增強的技術(shù)優(yōu)勢產(chǎn)生更為智能的應(yīng)用也變得簡單可行[2]。同樣通過利用單片機作為微控制器對家電設(shè)備進行控制已經(jīng)變得容易實現(xiàn)。當(dāng)前流行手機App 在軟件層對家用電器進行控制,而本設(shè)計采用集成MPU6050 芯片的新型遙控器,通過收集人體姿態(tài)數(shù)據(jù),實現(xiàn)一鍵控制家中各方位電器的效果,為智能家居中人機交互提供了另一種底層硬件解決思路。
為方便進行說明,假定室內(nèi)各電器放置位置如圖1。
如圖1 所示,假設(shè)使用者位于沙發(fā)位置,電視機(電器1)位于其正前方,而頂燈(電器2)相對于使用者處在垂直上方的位置,燒水壺(電器3)位于使用者左側(cè),側(cè)燈(電器4)位于使用者右側(cè)。
本設(shè)計利用這些家中各電器位置相對固定不變的特性,并參考現(xiàn)有的智能家居設(shè)計[3],利用MPU6050 的姿態(tài)檢測功能,通過判斷使用者操作遙控器指向不同的位置,改變按鍵鍵值,實現(xiàn)使用者坐在沙發(fā)上,通過一個按鍵即可對家中電器1-4 進行簡單的開關(guān)控制。
基于人體姿態(tài)檢測的體感家電控制系統(tǒng)控制回路主要由STM32F103C8T6 為主控制器,MPU6050 六軸姿態(tài)傳感器和紅外信號發(fā)射接收模塊組成??傮w系統(tǒng)框圖如圖2 所示。
發(fā)送端也是移動端,其MPU6050 六軸姿態(tài)傳感器可時實獲得自身姿態(tài)參數(shù)通過I2C 發(fā)送給單片機,單片機對當(dāng)前參數(shù)進行歸類,判斷移動端目前處于什么樣的位置,按照程序設(shè)計改變鍵值的紅外信號,當(dāng)按鍵按下接收端根據(jù)接收到的紅外信號改變不同的I/O 口引腳電平,繼而控制不同的繼電器,達到控制主電路不同電器開關(guān)的作用。
圖2 系統(tǒng)總體框圖
STM32C8T6 作為一款發(fā)展成熟的主控芯片[4],其憑借低功耗、中斷系統(tǒng)完善、價格低廉、功能齊全等特性非常適用于本設(shè)計。
MPU6050 是一款姿態(tài)傳感器,集成了三軸陀螺儀和三軸加速度計。陀螺儀可測范圍為±250、±500、±1000、±2000°/s,加速度計可測范圍為±2、±4、±8、±16g[5]。MPU6050 數(shù)據(jù)寄存器的輸出范圍是-7FFF~7FFF,也即是-32767~32767[6]。在本設(shè)計需要得到加速度傳感器數(shù)據(jù)和陀螺儀數(shù)據(jù),分別對發(fā)送端的俯仰角及轉(zhuǎn)向方位進行判斷。考慮到本設(shè)計對于數(shù)據(jù)精度要求不高,針對角速度我們設(shè)計在±2000(°/s)范圍,因為陀螺儀的ADC 為16 位分辨率,所以得到靈敏度為:65536/4000=16.4LSB/(°/s)。設(shè)置加速度傳感器的滿量程范圍為±2g,因為加速度傳感器的ADC 也是16 位,所以得到靈敏度為:65536/4=16384LSB/g。
紅外遙控是一種無線、非接觸控制技術(shù),具有抗干擾能力強、信息傳輸可靠、功耗低、成本低、易實現(xiàn)等顯著優(yōu)點[7]。該模塊使用STC11F02E 將紅外信號進行分析解碼,轉(zhuǎn)換成6 字節(jié)的紅外信號協(xié)議,使其可通過串口對紅外信號進行改變設(shè)置。
圖3 紅外模塊電路圖
系統(tǒng)主程序流圖如圖所示:上電后進行通用初始化,包括系統(tǒng)初始化及MPU6050 初始化。因為該系統(tǒng)對于姿態(tài)數(shù)據(jù)參數(shù)測量頻率要求不高,因此可直接在主程序中通過無限循環(huán)讀取MPU6050 傳來的數(shù)據(jù),繼而通過讀取到的數(shù)據(jù)改變按鍵鍵值。當(dāng)按鍵按下,便通過串口向紅外模塊發(fā)送數(shù)據(jù),紅外模塊即發(fā)送紅外信號進行通信。
圖4 主程序流圖
(1)初始化IIC 接口。
(2)復(fù)位MPU6050。
(3)設(shè)置角速度傳感器和加速度傳感器的滿量程范圍。
(4)設(shè)置其他參數(shù)。配置中斷、FIFO、數(shù)字低通濾波器。
(5)設(shè)置系統(tǒng)時鐘。
(6)使能角速度傳感器(陀螺儀)和加速度傳感器。
在串口進行輸出時,可以按照下面的程序?qū)⒓t外指令進行輸出。
(1)紅外信號協(xié)議
該紅外模塊定義的通信協(xié)議如下:在本設(shè)計中地址位為默認(rèn)地址A1。操作位表示當(dāng)前工作狀態(tài),在此設(shè)計中只使用了紅外模塊發(fā)射狀態(tài),不改變其通信地址狀態(tài)和波特率,因此操作位為F1。數(shù)據(jù)位1、2、3 則為接收到的紅外編碼信息[8]。
表1 紅外信號協(xié)議
(2)紅外信號編碼設(shè)置
根據(jù)紅外信號協(xié)議,定義控制各電器紅外指令表如表2。
表2 各電器紅外指令編碼
根據(jù)本文開頭舉的例子,家中電器1-4 相對于沙發(fā)(使用者)的方位在如表3 總結(jié)。
表3 家中電器方位
當(dāng)搭載MPU6050 的控制器指向不同的方位時,其產(chǎn)生的姿態(tài)數(shù)據(jù)體現(xiàn)在匿名四軸上位機軟件如圖5-8所示。
圖5 指向電器1
圖6 指向電器2
圖7 指向電器3
圖8 指向電器4
針對其數(shù)據(jù)的特征對其進行界定如表4 所示。
表4 控制各電器界定范圍
將其寫入程序中,當(dāng)控制器按鍵按下時,在中斷服務(wù)函數(shù)中對六軸傳感器的數(shù)據(jù)進行解析并對比,針對不同的數(shù)據(jù)發(fā)出不同的控制信號,即可實現(xiàn)根據(jù)傳感器數(shù)據(jù)對不同的電器進行控制。
在本設(shè)計中只針對電器的開關(guān)進行控制,其控制過程較為簡單,利用小電流控制大電流的思想,使用5V 繼電器模塊對大功率電器進行控制,甚至可以使用5V 繼電器模塊控制斷路器,通過控制斷路器線圈通斷電繼而控制更大功率電器。此節(jié)不是本文的重點,因此不再贅述。
本設(shè)計面向家居智能控制,利用家用電器相對位置通常不變的特性,根據(jù)使用者姿態(tài)實時改變鍵值,達到“一鍵控制”家中電器的效果。當(dāng)實現(xiàn)這一功能后,再進行改進即可對遙控器集成更多的按鍵,進行更復(fù)雜的控制。該設(shè)計為當(dāng)前智能家居控制發(fā)展提供了一種新的底層硬件解決思路,為智能家居的普及和發(fā)展進行了有意義的探索。
但是該設(shè)計不足之處非常明顯,即使用者使用該控制器對家中電器進行控制時,該控制器與其他電器的相對位置也不能變化,換句話說,遙控器的位置在家中位置也必須是固定的。針對這一問題,可參考2017年本科生電子大賽“可見光室內(nèi)定位裝置”題目,讓遙控器通過類似的思路對其功能進行升級,使其對自身在室內(nèi)的定位進行自動檢測,從而改變數(shù)據(jù)庫,實現(xiàn)遙控器在室內(nèi)不同位置也能實現(xiàn)對家中電器“一鍵控制”的功能。