混合與數學(xué):一種使用Bluetooth?低功耗通信實(shí)現RGBA混色的方法
作者 / Swathi Sridhar Namrata Dalvi Microchip Technology Inc.資深應用工程師
本文引用地址:http://dyxdggzs.com/article/201810/393363.htm摘要:本文說(shuō)明了如何使用16位PWM精確控制每個(gè)LED亮度。它還使用Bluetooth 4.1低功耗模塊來(lái)進(jìn)行通信,因此用戶(hù)可向RGBA板發(fā)送PWM值以輸出所需顏色。
使用8位單片機和Bluetooth? 4.1低功耗模塊來(lái)控制紅色、綠色、藍色和alpha(RGBA)顏色空間,從而以無(wú)線(xiàn)方式精確控制發(fā)光二極管(LED)的顏色平衡。
圖1給出的演示板有四個(gè)LED——分別為紅色、綠色、藍色和琥珀色。通過(guò)脈沖寬度調制(PWM)占空比控制各個(gè)LED的亮度。
這可以通過(guò)Microchip的PIC16F1579單片機實(shí)現,該單片機具有四個(gè)用于驅動(dòng)LED的16位PWM。這些16位PWM可精確控制各色LED的強度,還能通過(guò)混合不同亮度的RGBA呈現不同的顏色。
使用mTouch?電容式觸摸傳感技術(shù)可操作兩個(gè)電容式觸摸滑動(dòng)條。板上RN4020藍牙模塊用于通過(guò)Bluetooth低功耗通信從Android?移動(dòng)應用程序或桌面程序接收PWM值。演示板通過(guò)1.5V AAA電池供電。
1 照明
LED產(chǎn)生的光會(huì )因多種因素發(fā)生變化。不同類(lèi)型的LED以及相同類(lèi)型的各個(gè)LED的亮度(以流明為單位測得)都有所不同。對于彩色LED,根據色度值測得的特定顏色因LED而異。
我們對少量特定品牌LED的樣本進(jìn)行了測量以開(kāi)發(fā)亮度和色度配置文件。隨后會(huì )在硬件設計和軟件色度計算中將這些值用作典型值。此過(guò)程稱(chēng)為顏色調節。
每種顏色的電阻值是固定的,以便產(chǎn)生相同的流明數。各個(gè)LED串聯(lián)電阻的阻值如下:紅色820Ω、藍色400Ω、綠色500Ω以及琥珀色500Ω。
2 工作模式
有兩種工作模式:第一種是色相飽和度值加白色(HSVW)和亮度滑動(dòng)條模式;第二種是使用藍牙低功耗的色度選擇器模式。
電路板在模式1下初次上電。電路板上有兩個(gè)電容式觸摸滑動(dòng)條:一個(gè)用于輸入顏色,另一個(gè)用于控制亮度。
如果在滑動(dòng)條模式下觸摸第一個(gè)滑動(dòng)條,則滑動(dòng)條上選擇的顏色將在LED上輸出。在接收到另一個(gè)輸入之前,將一直顯示所選顏色??梢允褂昧硪粋€(gè)滑動(dòng)條控制特定顏色的亮度。
對于第二種模式,使用基于A(yíng)ndroid的移動(dòng)應用程序或基于Windows的桌面應用程序選擇顏色值(PWM)。然后通過(guò)藍牙連接將相應的PWM值發(fā)送到電路板。應用程序使用CIE 1931 XY色度圖,請參見(jiàn)圖2。將計算所選顏色和亮度的精確PWM值,并通過(guò)藍牙連接發(fā)送到RGBA板。電路板上的藍牙模塊隨后會(huì )接收PWM值,RGBA板固件將使用這些值來(lái)顯示所選顏色。
色度選擇器應用程序GUI包含CIE 1931 xy色度圖。CIE 1931顏色空間按色度(x)和亮度(y)顯示各種顏色。映射到CIE顏色空間的紅色、綠色和藍色LED的顏色和亮度定義了一個(gè)三角形,此三角形內包含了三個(gè)器件的輸出可產(chǎn)生的所有可能的顏色明暗;此三角形稱(chēng)為色域。
為獲得更寬的顏色范圍,添加了一個(gè)琥珀色LED。琥珀色LED的xy數據被映射到CIE 1931 xy顏色空間。這在紅色、琥珀色和綠色坐標之間定義了另一個(gè)三角形。如果按照不同的比例混合紅色、琥珀色和綠色,我們將獲得圖2中的色域內的顏色。
在該模式下使用的PC GUI和Android應用程序通過(guò)實(shí)現此混色算法來(lái)計算產(chǎn)生選定顏色所需的PWM占空比值。
色度選擇器應用程序通過(guò)藍牙連接發(fā)送PWM值。此連接模塊將能夠與包含Bluetooth v4.0(及更高版本)收發(fā)器的手機和PC進(jìn)行通信。此模塊主要用于從運行色度選擇器應用程序的主設備接收占空比值。單片機和BLE模塊之間的引腳連接配置如圖3所示。
3 藍牙通信
有兩種類(lèi)型的藍牙設備——藍牙經(jīng)典和藍牙低功耗。藍牙低功耗設備只能與另一個(gè)BLE設備或同時(shí)具備藍牙經(jīng)典和藍牙低功耗功能的藍牙雙模設備進(jìn)行通信。因此,為了能夠與RGBA板上使用的RN4020模塊進(jìn)行通信,主機設備必須是BLE或藍牙雙模設備。
該模塊符合藍牙核心規范v4.1并由用戶(hù)通過(guò)輸入/輸出線(xiàn)和UART接口控制。UART支持ASCII命令,可針對基于應用的任何要求控制或配置模塊。
4 應用軟件
電路板工作在模式2下時(shí),所需LED顏色從來(lái)自RGBA混色桌面應用程序或RGBA混色Android應用程序的色度選擇器應用程序內的色度圖中選擇。紅色、藍色、綠色和琥珀色PWM占空比通過(guò)應用程序計算。占空比值通過(guò)藍牙低功耗連接傳送給電路板。使用的桌面應用程序是使用Visual Studio C#.NET開(kāi)發(fā)的。應用程序遵循MVC原則,具有以下幾類(lèi):
RGBA視圖控制器類(lèi)用作GUI或視圖管理器,也可用作應用程序的控制器。該類(lèi)位于層級頂部,負責編譯各類(lèi)新對象和執行依賴(lài)注入。此外,它還處理所有GUI事件并調用相應的方法。
RGBA計算類(lèi)負責確定選定點(diǎn)處于RGB或RGA三角形的內部還是外部,并為所有LED計算每種顏色的占空比。
矩陣3x3類(lèi)實(shí)現了所有3x3矩陣的數學(xué)運算,例如逆矩陣、行列式、轉置、余因子和乘法。向量3類(lèi)實(shí)現了大小為3的列向量,該列向量用于矩陣3x3類(lèi)的矩陣數學(xué)運算。RGBA數據類(lèi)為自定義數據類(lèi)型,用于存儲所有顏色的占空比值。
在無(wú)線(xiàn)通信包裝類(lèi)中,該接口包含無(wú)線(xiàn)通信要實(shí)現RGBA應用所需的全部方法。任何無(wú)線(xiàn)通信方法(例如藍牙低功耗和藍牙經(jīng)典等)都可以使用該接口。為RGBA板實(shí)現該接口后,使用RN4020 PICtail?卡通過(guò)RS232通信即可完成藍牙低功耗通信。
編程人員可通過(guò)Visual Studio中的內置藍牙低功耗庫或第三方庫編譯新類(lèi)以實(shí)現無(wú)線(xiàn)通信。該接口會(huì )將通信的實(shí)現與實(shí)際控制器分離,這樣一來(lái),當實(shí)現新的通信時(shí),視圖控制器和其他類(lèi)不會(huì )發(fā)生變化。
采用RN4020器件類(lèi)的RGBA藍牙低功耗通信實(shí)現了無(wú)線(xiàn)通信包裝接口,可與RGBA板進(jìn)行藍牙低功耗通信。使用PICtailTM卡,并通過(guò)UART或RS232端口將其連接至PC。建立串行通信并發(fā)送命令以實(shí)現藍牙低功耗通信。
藍牙低功耗設備信息類(lèi)存儲有關(guān)遠程連接設備的基本信息(即,名稱(chēng)、地址和支持的服務(wù)器服務(wù))。這些信息用于識別和連接遠程設備。
在搜索結果委托類(lèi)中,該委托在結束設備搜索且設備可以列表形式供用戶(hù)選用時(shí)處理來(lái)自藍牙低功耗類(lèi)的事件。搜索操作需要十秒鐘時(shí)間。
在連接狀態(tài)變化委托類(lèi)中,該委托處理來(lái)自藍牙低功耗類(lèi)的事件,用于確定主PICtailTM卡是否已連接至遠程設備,并為用戶(hù)顯示當前連接狀態(tài)。
常量類(lèi)存儲應用程序所需的所有常量,例如RN4020模塊命令和響應、服務(wù)以及特性UUID等。Android操作系統的Java?應用程序類(lèi)同樣嚴格遵循MVC原則,采用與桌面應用程序結構類(lèi)似的Android活動(dòng)類(lèi)。但是,Android應用程序使用Android手機的內置藍牙低功耗硬件。Android操作系統通過(guò)所有必需事件和回調為藍牙低功耗通信提供所有必要的庫。RGBA視圖活動(dòng)類(lèi)與桌面上的視圖控制器類(lèi)相似,只是GUI控件在XML文件(而非類(lèi))中定義。
5 結論
本文章說(shuō)明了如何使用16位PWM精確控制每個(gè)LED的亮度。文中介紹的RGBA LED混色板具有電容式觸摸滑動(dòng)條按鈕,可實(shí)現顏色輸入和亮度控制功能。它還使用Bluetooth 4.1低功耗模塊來(lái)進(jìn)行通信,因此用戶(hù)可向RGBA板發(fā)送PWM值以輸出所需顏色。顏色在Windows桌面或Android手機上的色度選擇器應用程序中選擇。
參考文獻:
[1]Sridhar S,Tiwari A,Dalvi N. RGBA Color Mixing with Bluetooth? Low Energy Communication[R/OL].http://ww1.microchip.com/downloads/en/AppNotes/00002026A.pdf
本文來(lái)源于《電子產(chǎn)品世界》2018年第11期第21頁(yè),歡迎您寫(xiě)論文時(shí)引用,并注明出處。
評論