了解電子紙顯示器的工作原理以及如何將低功耗電子紙顯示器集成到您的嵌入式項(xiàng)目中。
在尋求實(shí)現(xiàn)低功耗設(shè)計(jì)的過(guò)程中,大多數(shù)開(kāi)發(fā)人員很快得出結(jié)論,試圖結(jié)合任何形式的顯示器都會(huì)將低功耗預(yù)算的想法拋諸腦后。
與嵌入式設(shè)計(jì)的需求不謀而合——尤其是物聯(lián)網(wǎng)邊緣節(jié)點(diǎn)傳感器,例如溫度或濕度傳感器——在設(shè)計(jì)中提供視覺(jué)顯示確實(shí)增強(qiáng)了用戶體驗(yàn)。它不依賴于從基于云的應(yīng)用程序接收數(shù)據(jù),而是提供了快速查看此類本地?cái)?shù)據(jù)的能力,這非常有用。挑戰(zhàn)在于,無(wú)論微控制器的睡眠模式有多低,LCD 顯示器都需要不斷刷新和供電。
值得慶幸的是,有一個(gè)解決方案。作為亞馬遜 Kindle 或類似電子書閱讀器中使用的最常見(jiàn)的顯示器,電子紙顯示器 (EPD) 開(kāi)始變得流行,因?yàn)樗峁┝顺凸牡娘@示功能。得益于底層的“雙穩(wěn)態(tài)”顯示技術(shù),顯示器實(shí)際上可以在沒(méi)有任何電源的情況下繼續(xù)顯示信息。只需要用新信息更新顯示,這種方法可以徹底改變嵌入式開(kāi)發(fā)人員處理設(shè)計(jì)的方式。
EPD 的工作原理
讓我們來(lái)看看電子紙顯示器是如何構(gòu)建的。與無(wú)處不在的 TFT LCD 顯示器相比,其中一個(gè)區(qū)別是電子紙是一種反射式顯示技術(shù),因此它不需要任何形式的背光即可運(yùn)行。這是降低功率預(yù)算的另一個(gè)因素。
該顯示器包括兩個(gè)電極——一個(gè)上部透明電極和一個(gè)下部電極——它們之間有數(shù)百萬(wàn)個(gè)彩色顆粒填充膠囊。膠囊通常包含白色和黑色球形顆粒,它們對(duì)施加在電極上的電荷作出反應(yīng),白色顆粒因接收正電荷而對(duì)觀察者可見(jiàn),黑色顆粒因帶負(fù)電荷而變得可見(jiàn)。灰色陰影是具有相反電荷的相鄰粒子影響其他粒子的電荷條件的結(jié)果。
圖 1.在電子紙顯示器中,通過(guò)向微觀粒子傳遞適當(dāng)?shù)碾姾尚纬蓤D像
低功耗和無(wú)功耗顯示器
施加電荷后,粒子將保持其可見(jiàn)位置并顯示生成的圖像。無(wú)需電源來(lái)維持或刷新施加在電極上的電荷,與 LCD 顯示器相比,這是第二大節(jié)能。需要不斷刷新屏幕以保持 LCD 顯示器上的晶體對(duì)齊。但是,一旦在電子紙顯示器上合成了圖像,就可以移除電源,直到需要新的屏幕圖像為止。
將電荷施加到單個(gè)球體或像素的過(guò)程可以定義為多個(gè)條件,并且超出了簡(jiǎn)單的二元關(guān)系。最初,會(huì)收取費(fèi)用以將整個(gè)屏幕設(shè)置為黑色。要?jiǎng)?chuàng)建圖像,下一個(gè)條件是反轉(zhuǎn)初始電荷,或者第三,保持原樣——不改變電荷。
但是如果一個(gè)電子紙顯示器只在更新的時(shí)候才耗電,那它到底需要多少電量呢?此外,這與典型的 TFT LCD 顯示器相比如何?如果我們以 2 英寸 V231 電子紙顯示器為例,您可以在圖 2 中看到與類似尺寸的 LCD 模塊相比功率的巨大差異。
圖 2.在 2 英寸顯示屏每天更新 6 次的應(yīng)用中,電子紙顯示模塊每天可使用低至 10 uAh 的電量
此比較說(shuō)明了使用功率優(yōu)化顯示驅(qū)動(dòng)波形和外部時(shí)序控制電路的電子紙顯示器如何在更新時(shí)消耗低至 2 mA 的電流,而 LCD 顯示器的消耗電流為 30 mA。此外,只需要在刷新期間為顯示器供電,這意味著在每天六次更新之間,電子紙顯示器完全不消耗電力。
將 EPD 連接到 Arduino
調(diào)查使用電子紙顯示器有多簡(jiǎn)單的一種方法是將電子紙顯示器連接到 Arduino。
在此示例中,我們將使用 Arduino UNO 和 連接到RePaper 擴(kuò)展開(kāi)發(fā)板的2 英寸顯示器。2 英寸(對(duì)角線)顯示屏提供 200 × 96 像素的分辨率。其他顯示器尺寸可從 1.44 英寸以上,在上述擴(kuò)展板上最多可容納 2.7 英寸。
Arduino UNO 適用于創(chuàng)建簡(jiǎn)單的電子紙圖像顯示。然而,對(duì)于更大的圖像尺寸,所需的緩沖內(nèi)存比 UNO 所能提供的要多,因此 Arduino MEGA 2560 將更適合此類應(yīng)用。
圖 3 顯示了插入擴(kuò)展板上的柔性印刷電路 (FPC) 連接器的電子紙顯示器。FPC 總是很脆弱,因此需要注意不要在插入插座時(shí)施加過(guò)大的壓力使其彎曲。
圖 3.帶有 2 英寸顯示屏的 RePaper 擴(kuò)展開(kāi)發(fā)板。圖片由Adafruit提供
引腳和接線
擴(kuò)展板提供了一條連接到 Arduino 的電纜,引腳分配如圖 4 和表 1 所示。
圖 4.將擴(kuò)展板連接到 Arduino UNO
表 1. Arduino 引腳分配的擴(kuò)展板
下載代碼
將顯示擴(kuò)展板連接到 Arduino 后,從GitHub下載示例代碼文件。請(qǐng)注意,為與此擴(kuò)展板一起使用的所有尺寸的顯示器提供了文件。
在 Arduino IDE 中,訪問(wèn)庫(kù)管理器并安裝 EPD 文件。完成此操作后,您將能夠從“文件/示例”菜單訪問(wèn)示例文件。這些包括一些演示;最簡(jiǎn)單的一個(gè)是在簡(jiǎn)單的文本圖像和貓的圖片之間交替。
創(chuàng)建要上傳的圖像
要將 cat 圖像替換為 demo.ino 文件中的新圖像,首先根據(jù)您的顯示尺寸創(chuàng)建一個(gè)空白圖像文件。對(duì)于 2 英寸顯示屏,即 200 × 96 像素。目標(biāo)是將此圖像保存為具有 .xbm 文件格式的二進(jìn)制圖像文件。雖然有許多圖形和圖像編輯器選項(xiàng),但Gimp是一個(gè)理想的選擇,因?yàn)樗梢詫?dǎo)出所需的 .xbm 格式的圖像。
圖 5.使用 Gimp 創(chuàng)建的簡(jiǎn)單圖像
圖 5 展示了一個(gè)簡(jiǎn)單的價(jià)格標(biāo)簽圖像,該圖像已創(chuàng)建然后導(dǎo)出為 .xbm 格式,在我們的示例中,該圖像已保存為 Tag1.xbm。
您還需要編輯此文件的標(biāo)題信息,如圖 6 所示。演示 Arduino 腳本要求圖像文件名遵循與電子紙顯示器尺寸相關(guān)的特定命名約定,在我們的示例中為 2 英寸顯示器。 這些更改適用于標(biāo)題的前三行。
圖 6.編輯圖像文件的頭信息
最后,將文件保存在您連接的計(jì)算機(jī)上的 /Arduino/libraries/Images 文件夾中。
然后,您只需要使用圖像的根名稱調(diào)整 demo.ino 文件。這在圖 7 中進(jìn)行了說(shuō)明——注意屏幕抓取中間的定義語(yǔ)句的編輯。
圖 7.在 Arduino IDE 中編輯圖像文件名
上傳和測(cè)試
驗(yàn)證并將草圖上傳到 Arduino,您應(yīng)該會(huì)看到測(cè)試圖像出現(xiàn),然后是您的新圖像。圖 8 顯示了設(shè)置,顯示屏上顯示了新圖像。
圖 8.電子紙顯示屏上的新圖像
與替代顯示技術(shù)相比,電子紙顯示器可顯著節(jié)省電力,并且可能的應(yīng)用幾乎是無(wú)窮無(wú)盡的。他們已經(jīng)在物聯(lián)網(wǎng)傳感器中找到應(yīng)用——例如,提供本地溫度指示——并使用能量收集技術(shù)提供足夠的電力來(lái)刷新顯示。
-
嵌入式
+關(guān)注
關(guān)注
5093文章
19178瀏覽量
307708 -
電子紙顯示器
+關(guān)注
關(guān)注
0文章
7瀏覽量
6703
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
如何在嵌入式系統(tǒng)設(shè)計(jì)中使用UML技術(shù)
![如<b class='flag-5'>何在</b><b class='flag-5'>嵌入式</b>系統(tǒng)設(shè)計(jì)<b class='flag-5'>中使</b>用UML技術(shù)](https://file1.elecfans.com//web2/M00/A7/42/wKgZomUMQ2KAT3V4AAAbHyCWKB8486.gif)
如何在嵌入式系統(tǒng)設(shè)計(jì)中使用UML技術(shù)?
基于FPGA的原型系統(tǒng)的嵌入式應(yīng)用程序
![基于FPGA的原型系統(tǒng)的<b class='flag-5'>嵌入式</b><b class='flag-5'>應(yīng)用程序</b>](https://file.elecfans.com/web2/M00/49/5C/pYYBAGKhtEiASGrUAAAQwWWDGy0692.jpg)
ARM嵌入式應(yīng)用程序架構(gòu)設(shè)計(jì)工具
MATLAB平臺(tái)的DSP嵌入式應(yīng)用程序設(shè)計(jì)的研究
![MATLAB平臺(tái)的DSP<b class='flag-5'>嵌入式</b><b class='flag-5'>應(yīng)用程序</b>設(shè)計(jì)的研究](https://file.elecfans.com/web2/M00/4A/13/pYYBAGKhvJSABbfMAABAwKW68eE612.png)
如何在嵌入式Linux中使用GPIO
嵌入式Linux應(yīng)用程序例程
![<b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>應(yīng)用程序</b>例程](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
嵌入式Linux應(yīng)用程序開(kāi)發(fā)-(1)第一個(gè)嵌入式QT應(yīng)用程序
![<b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>應(yīng)用程序</b>開(kāi)發(fā)-(1)第一個(gè)<b class='flag-5'>嵌入式</b>QT<b class='flag-5'>應(yīng)用程序</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
如何在Raspberry Pi Pico中使用OLED顯示器
![如<b class='flag-5'>何在</b>Raspberry Pi Pico<b class='flag-5'>中使</b>用OLED<b class='flag-5'>顯示器</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
為ZynqberryZero編寫嵌入式C應(yīng)用程序
![為ZynqberryZero編寫<b class='flag-5'>嵌入式</b>C<b class='flag-5'>應(yīng)用程序</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用微型嵌入式設(shè)備實(shí)現(xiàn)嵌入式語(yǔ)音識(shí)別應(yīng)用程序
![使用微型<b class='flag-5'>嵌入式</b>設(shè)備實(shí)現(xiàn)<b class='flag-5'>嵌入式</b>語(yǔ)音識(shí)別<b class='flag-5'>應(yīng)用程序</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
如何降低嵌入式觸摸顯示器的亮度?
![如何降低<b class='flag-5'>嵌入式</b>觸摸<b class='flag-5'>顯示器</b>的亮度?](https://file1.elecfans.com/web2/M00/82/32/wKgaomRGM2aAMq6_AACfnjLBQOQ634.png)
評(píng)論