鄭澤華,宋文軒,堯瀾,李墨涵,吳雨桐,吳炎賢
(中國礦業大學(北京)機電與信息工程學院,北京,100083)
隨著人類在數字電子技術、模擬電子技術、嵌入式技術以及各種控制算法等方面取得的進步,使得各類智能家居產品相繼問世。智能控制窗簾作為家居智能生活系統的結構之一,在智能家居系統中占據了很大一部分地位。對光感式電動窗簾系統的研究,旨在免去日常重復的開關窗簾操作,通過對夜晚、日間光照強度的檢測,實現早晨和晚上窗簾的自動開關,并在日間光照過強時自動關閉窗簾,保持日間室內光照強度始終處于合理的范圍,以此提升生活品質,同時也可以幫助行動不便的病人和老年人更加方便地使用窗簾。
系統機械傳動以及窗簾示意結構如圖1所示,本系統采用百葉簾的收放結構。百葉簾的葉片兩側通過線繩串行連接,線繩末端固定在卷繩器的一側,卷繩器內有一方型通孔,管狀電機通過方型傳動軸將旋轉力矩傳至卷繩器。以上各組件放置在“C”型不銹鋼托架中。共同構成窗簾的機械傳動部分,而后僅需控制電機的轉動方向即可實現窗簾的收起和下落。

圖1 百葉簾機械結構
系統基于電動百葉簾產品,在其已經基本實現的直流電機傳動控制百葉簾的基礎上增加各模塊,實現光強信息的獲取并即時地判斷是否超過預設臨界值,對不同的光照強度區間執行對應的動作,使得窗簾完成自動地從感知到執行一系列控制。另外,為了增加實用性,還設計了紅外遙控功能,并在算法中將紅外遙控設為高優先級,接收到使用者的紅外控制信號能夠優先執行,此時不再采集判斷光強信號,以便人工控制窗簾的收起與放下。
系統控制部分的總體實現思路如圖2所示,核心電路模塊作為主要的數據處理部分,以來自紅外控制模塊接收的紅外信號為輸入;而后在自動控制模式下,同時接收光強信號采集模塊的信號輸入,核心電路模塊對接收的數據綜合處理后輸出控制信號至電機驅動模塊的控制端。電機驅動模塊中的控制端選通供電端到電機的通路,穩定的直流電壓驅動直流電機的正轉、反轉,進而完成窗簾的收起或放下。

圖2 系統控制部分
如圖3所示,由BH1750FVI采集光強模擬信號,經過A/D轉換后將數字信號以IIC總線通訊方式傳輸至Arduino Nano開發板,由VS1838B作為紅外信號采集模塊將接收的控制信息傳輸至開發板。開發板將控制信號傳輸至L298Nmini電機驅動模塊。同時采用百葉簾產品配套的整流電路與CK1602M迷你直流降壓電路為開發板與電機驅動電路提供5V直流電。

圖3 系統硬件設計
BH1750FVI是一款數字型光強度傳感器集成芯片。支持PC Bus接口,可以用多種方式調試,便于軟件設計;光譜靈敏度特性接近人視覺靈敏度,結合50Hz/60Hz除光噪音功能,采集的數據貼合人的真實體驗,能夠滿足本系統檢測太強的光照時放下窗簾的目的;而且內置模數轉換,可以直接輸出對應光照強度的數字值,并且可采集的輸入光范圍大,相當于1~65535lx。芯片內部設計了低功耗功能,實現低電流化,減小整個系統的耗能。其原理如圖4所示,BH1750的內部由光敏二極管、運算放大器、ADC采集、晶振等組成。OSC作為芯片的時鐘源為內部的振蕩器提供內部邏輯時鐘。光電二極管(PD)是由一個PN結組成的具有單方向導電特性的半導體器件,反向電壓下光電二極管處于工作狀態,在不同光線照射下,產生不同強度的光電流,能夠將輸入的光強信號轉變成電信號,射入光窗的光照越強,產生的光電流越大,使得電阻兩端電壓越大。以此實現通過測量電壓的大小就可以判斷光照大小,但是電壓和光強對應關系不是成正比的,所以這個芯片內部使用放大器(AMP)與一個電容先將轉換的電壓線性處理,處理后電壓大小與光照強度呈線性關系,同時放大電壓。數模轉換器(ADC)采集處理后的電壓,將電壓強度信號轉換成16位二進制數并將其存儲在BH1750的寄存器中。模塊引出I2C通訊所需的時鐘輸入線、雙向數據傳輸線、地址線,核心電路與BH1750通過I2C協議進行通訊[1]。

圖4 BH1750結構
紅外發射模塊使用NEC協議,38kHz的脈沖信號作為載波調制,為確保傳輸的穩定性地址和命令數據各8位傳輸兩次。紅外控制信號的接收模塊是一體化紅外接收頭VS1838B,其內部結構圖見圖5。該接收頭有紅外線接收二極管、前置放大器、AGC放大器、限幅器、帶通濾波器、積分整形電路、比較器組合以及必要的而成。紅外接收模塊中,紅外信號被接收二極管接收到,而后通過其前置放大器進行放大;再經過AGC放大器,使較強的信號小幅放大,較弱的信號的用較高的增益放大,將前置放大器放大的信號調整置合適幅值;調整后的信號通過限幅放大器將其幅度限制在適當的電壓范圍間。帶通濾波器對被限幅的信號濾波,濾波后信號經解調器和積分處理后通過比較器輸出數字信號,這樣就解調出紅外遙控器的消息信號。將發射信號通過OUT引腳傳輸至核心電路模塊[2]。

圖5 VS1838B內部結構
結合電機驅動需求以及整體系統結構采用L298Nmini模塊,具有體積小,接線便捷的特點。
驅動信號端可承受1.8~7V電壓,整個芯片的供電電壓從2~10V,采用雙路H橋電機驅動,可同時驅動兩個直流電機,進行正反轉以及PWM調速,每路能夠提供1.5A連續電流,電流峰值可達2.5A。INx端接開發板四個引腳來傳輸控制信號,MOTOR-A和MOTOR-B端接兩電機。本系統僅包含一個電機故只需使用IN1/2與MOTOR-A單電機控制。邏輯功能表如表1所示[3]。

表1 L298N邏輯功能表
Arduino是一系列便捷靈活、方便上手的開源電子原型平臺,包含硬件即各種型號的Arduino板和配套開發環境Arduino IDE。本系統采用Arduino Nano3.0作為核心控制模塊。Nano3.0的處理器核心是ATmega328,ATmega328是一款Microchip公司生產的高性能、低功耗AVR8位微控制器,采用RISC指令集體系結構,內含有32KB的Flash內存,其中2KB用于Bootloader,同時還有2KB的SRAM和1KB的EEPROM,工作時鐘頻率在16MHz。Arduino Nano開發板在此基礎上增加了CH340芯片將串口信息轉為USB信號以便和主機通訊,并且添加復位電路、供電電路、等外圍電路。其引腳分配如圖6所示,其中Dx引腳為數字I/O口,其中六路可以輸出PWM波在本系統中可以用于控制直流電機轉速,Ax是具有10位分辨率的模擬I/O口,本系統使用A4引腳的I2C復用功能作SCL接口和A5引腳作SDA接口。

圖6 Arduino Nano引腳簡圖
總體程序在Arduino IDE標準編程環境下完成,主要分為初始化、BH1750驅動、VS1838B通訊、電機控制信號輸出幾部分。下面介紹主要模塊的驅動程序。
BH1750的通訊方式是簡化版I2C通訊協議,主機首先發送上電命令;接下來發送測量命令來選擇BH1750的工作模式,本系統采用單次高分辨率模式,測量后自動斷電;測量結束后傳感器發送起始信號向主機,而后主機接收包括兩字節光照信息等數據,直至結束信號。在以上協議的基礎上,通過依次控制ADDR口的電平高低,完成輪序讀取每一個傳感器的數據,傳感器光照采集流程如圖7所示。

圖7 光照采集模塊流程
如圖8所示,核心板在接收到紅外信號后進行兩種模式選擇,若是收起/放下指令則執行相應動作并將系統的工作模式設為手動模式,此時停止采集光照信號;若是自動指令則開始接收四個傳感器數據并取平均數后選擇對電機的控制方式。

圖8 核心板控制實現流程圖
使用手電照明模擬晴天光照太強的環境,黑紙覆蓋傳感器表面來模擬夜間環境,正常的室內燈光作為適中照射條件,在主機上通過串口通訊獲取部分數據,以此作為光照控制的判斷閾值。通過硬件系統搭建和軟件測試,設計的系統各部分功能實現,性能較為穩定。考慮到特殊天氣或地區差異等因素,其中光強檢測部分可能由于設置的閾值不合適會執行錯誤的動作,因此需要測取更多不同環境下的數據以增加系統的實用性。
本文完成了感光式電動窗簾的系統設計,闡述了硬件原理與軟件設計方式,為家居智能化增添了一個新內容,本系統通過使用光照傳感器采集環境中的光照強度變化,傳輸到單片機進行數據分析后控制窗簾的自動開合,合理有效的控制窗簾,實用性強,易于操作,有較高的集成性并提高用戶體驗。此光感窗簾以較低的成本和極高的性價比,提升了家居的便利性、舒適性、尤其是對提高老年人及行動不便的患者的生活質量具有積極的作用。