谢丫丫

如何在嵌入式应用程序中使用电子纸显示器?

0
阅读(127) 评论(0)

本文将介绍电子纸显示器的工作原理以及如何将低功耗电子纸显示器集成到嵌入式项目中。

为了实现低功耗设计,大多数开发人员很快得出结论,尝试合并任何形式的显示器都会让人们想到低功耗的预算。

在需要嵌入式设计的顶端 - 尤其是物联网边缘节点传感器,例如温度或湿度传感器 - 在设计中提供可视化显示确实可以增强用户体验。它不是依赖于从基于云的应用程序接收数据,而是提供快速查看此类本地数据的能力,这非常有用。挑战在于,无论您的微控制器的睡眠模式有多低,液晶显示器都需要不断刷新和供电。

最常见的是亚马逊Kindle或类似的电子书阅读器中使用的显示器,电子纸显示器(EPD)开始变得流行,以提供超低功率显示功能。由于底层的“双稳态”显示技术,显示器实际上可以继续显示信息,而不需要任何功率。只需要用新信息更新显示器就需要电源,这种方法可以彻底改变嵌入式开发人员处理设计的方式。

 

EPD如何运作

我们来看看如何构建电子纸显示。将普通TFT液晶显示器与无处不在的TFT液晶显示器进行比较时,其中一个不同之处在于电子纸是一种反射式显示技术,因此不需要任何形式的背光即可起作用。这是降低功率预算的另一个因素。

该显示器包括两个电极 - 上部透明的和下部的 - 在它们之间具有数百万个有色颗粒填充的胶囊。胶囊通常包含白色和黑色球形颗粒,其响应施加到电极的电荷,其中白色颗粒由于接收正电荷而变得对观察者可见,而黑色颗粒变为负电荷。灰色阴影是相邻电荷的结果,其中相反的电荷影响其他颗粒的电荷条件。

 

图1.在电子纸显示器中,通过向微观粒子输送适当的电荷来形成图像

 

低功耗和无功率显示器

一旦施加电荷,粒子保持其可见位置并显示所得图像。维持或刷新施加到电极的电荷不需要电源,与LCD显示器相比,可以实现第二次主要的省电。需要连续屏幕刷新以保持LCD显示器上的晶体对准。但是,一旦在电子纸显示器上组成图像,就可以移除电源,直到需要新的屏幕图像。

将电荷施加到单个球体或像素的过程可以被定义为许多条件并且超出简单的二元关系。最初,应用电荷将整个屏幕设置为黑色。为了创建图像,下一个条件是反转初始充电,或者第三,保持原样 - 没有变化。

但是,如果电子纸显示器在更新时仅消耗功率,那么它究竟需要多少功率?此外,这与典型的TFT LCD显示屏相比如何?如果我们以2英寸V231电子纸显示屏为例,您可以在图2中看到功率与类似尺寸的LCD模块相比的巨大差异。

 

图2.在一台2英寸显示屏每天更新六次的应用程序中,电子纸显示模块每天只能使用10 uAh的功率

 

该比较说明了使用功率优化的显示驱动波形和外部时序控制电路的电子纸显示器如何在更新时消耗仅2 mA,而LCD显示器则为30 mA。此外,仅需要在刷新期间为显示器供电意味着在六次每日更新之间,电子纸显示器根本不消耗电力。

 

将EPD连接到Arduino

调查使用电子纸显示器是多么简单的一种方法是将一个连接到Arduino。

在这个例子中,我们将使用Arduino UNO和一个连接到RePaper扩展开发板的  2英寸显示器。2英寸(对角线)显示屏提供200×96像素的分辨率。其他显示尺寸可从1.44英寸向上,最大2.7英寸可容纳在上述扩展板上。

Arduino UNO适用于创建简单的电子纸图像显示。但是,对于较大的图像尺寸,需要比UNO提供的更多的缓冲存储器,因此Arduino MEGA 2560将是这类应用的更好选择ICfans

图3示出了插入扩展板上的柔性印刷电路(FPC)连接器的电子纸显示器。FPC总是很精致,因此需要注意不要在插入插座期间施加过大的压力来弯曲它。

 

图3.带有2英寸显示屏的RePaper扩展开发板。

 

针脚和接线

扩展板配有连接Arduino的电缆,引脚分配如图4和表1所示。

 

图4.将扩展板连接到Arduino UNO

 

表1. Arduino引脚分配的扩展板

 

下载代码

将显示扩展板连接到Arduino后,从GitHub下载示例代码文件。请注意,为此扩展板使用的所有尺寸的显示器提供了文件。

在Arduino IDE中,访问库管理器并安装EPD文件。完成此操作后,您将能够从“文件/示例”菜单访问示例文件。这些包括一些演示; 最简单的一个在简单的文本图像和猫的图片之间交替。 

 

创建要上载的图像

要使用demo.ino文件中的新图像替换cat图像,请首先根据显示大小创建空白图像文件。对于2英寸显示屏,这是200×96像素。目标是将此图像保存为具有.xbm文件格式的二进制图像文件。虽然有许多图形和图像编辑器选项,但Gimp是理想的选择,因为它可以导出所需的.xbm格式的图像。

 

图5.使用Gimp创建的简单图像

 

图5显示了一个简单的价格标签图像,该图像已经创建,然后导出为.xbm格式,在我们的例子中,图像已保存为Tag1.xbm。

您还需要编辑此文件的标题信息,如图6所示。演示Arduino脚本要求图像文件名遵循与电子纸显示大小相关的特定命名约定,在我们的示例中为2英寸显示。这些更改适用于标题的前三行。 


图6.编辑图像文件的标题信息

 

最后,将文件保存在连接的计算机上的/ Arduino / libraries / Images文件夹中。

然后,您只需要使用图像的根名称调整demo.ino文件。这在图7中说明 - 注意在屏幕抓取中间编辑define语句。

 

图7.在Arduino IDE中编辑图像文件名

 

上传和测试

验证并将草图上传到Arduino,您应该看到测试图像,然后是新图像。图8显示了设置,显示屏上显示了新图像。

 

图8.电子纸显示屏上的新图像

 

与其他显示技术相比,电子纸显示器可显着节省功耗,并且可能的应用几乎无穷无尽。他们已经在物联网传感器中找到应用 - 例如,提供温度的本地指示 - 并使用能量收集技术提供足够的功率来刷新显示器。