跳到主要内容

使用说明

硬件操作、环境搭建和程序说明等

硬件连接

本产品出货的时候配有一个 ESP32 网络驱动板,一个转接板和 FFC 延长线。
使用时可以直接将屏幕接入到驱动板,或者是通过延长线和转接板接入。

  • 将屏幕接入 ESP32 驱动板:

直接接入驱动板:

Epd esp32 hard 1

通过延长线接入:

Epd esp32 hard 2

  • 设置型号开关:根据使用的墨水屏型号设置 1 号开关,屏幕较多,如有未列出请优先使用‘A’尝试,如果显示效果差或者无法驱动,请尝试切换开关

Epd esp32 hard 3

电阻 (Display Config)屏幕
0.47R (A)2.13inch e-Paper (D), 2.7inch e-Paper, 2.9inch e-Paper (D)
4.01inch e-Paper (F), 4.2inch e-Paper (C), 5.65inch e-Paper (F)
5.83inch e-Paper, 5.83inch e-Paper (B), 7.5inch e-Paper
7.5inch e-Paper (B)
3R (B)1.54inch e-Paper, 1.54inch e-Paper (B), 2.13inch e-Paper
2.13inch e-Paper (B), 2.66inch e-Paper, 2.66inch e-Paper (B)
2.9inch e-Paper, 2.9inch e-Paper (B), 3.7inch e-Paper
4.2inch e-Paper, 4.2inch e-Paper (B), 13.3inch e-Paper (B)
13.3inch e-Paper
  • 电阻的选择主要影响显示效果,如果发现显示异常可以把开关拨到另一端
  • 开启串口模块:将 2 号开关拨动到“ON”,此开关控制 USB to UART 模块的供电。不需要使用时,您可以手动关闭使模块更加省电(如果 2 号开关处于 OFF 状态,则无法上传程序)
  • 当前版本使用 Type-C 数据线,旧版使用 micro USB 数据线。将 ESP32 驱动板连接到电脑或 5 V 电源

下载例程

提供本地、蓝牙、Wi-Fi 三种例程,本页面的“资料”标签内可以找到示例程序,或者点击 E-Paper ESP32 Driver Board 示例程序 下载。 将下载下来的压缩包解压出来,可以得到以下文件:

Epd esp32 download 1

  • ePape_Esp32_Loader_APP:蓝牙 App 源码(Android Studio)
  • examples:本地例程
  • Loader_esp32bt:蓝牙例程
  • Loader_esp32wf:Wi-Fi 例程
  • app-release.apk:蓝牙例程 App 安装包

环境配置

在线安装需要使用翻墙软件,离线安装则无需使用

图像处理算法

在蓝牙和 Wi-Fi 例程中,提供了两种图像处理算法,分别是 Level(色阶法)以及 Dithering(抖动法)

色阶法

一张图像,可以把它划分为几个大的颜色域,图像上的每个像素点根据颜色跟这几个色域的趋近程度,被划分到这些颜色域中去。这种方法比较适用于颜色不多的图像,例如亮色或者三色的形状或者文字图像。以黑白红三色墨水屏为例,处理图像的时候把它处理成黑白红三色,因此对于一张图像来说,可以把图像的所有颜色划分三个大的颜色区域:黑色区域,白色区域,红色区域。
比如根据下图,如果灰度图中的某个像素点的值等于或者小于 127 的话,可以把这个像素点视为黑色像素,否则,就是白色

Epd esp32 lever 1

对于彩色图像,RGB 包含红、绿、蓝三个颜色通道。相对于红色通道,可将蓝色通道和绿色通道统称为蓝 - 绿通道或非红通道。根据下图,可依据像素点各颜色通道的值进行颜色分类:红色通道值较高且蓝 - 绿通道值较低时,该像素归类为红色像素;红色通道和蓝 - 绿通道值均较低时,归类为黑色像素;红色通道和蓝 - 绿通道值均较高时,归类为白色像素。

Epd esp32 lever 2

算法中,对于颜色定义是根据 RGB 值以及预期颜色值的平方和的差值计算的。其中预期颜色值是指的像素点最趋近的那个颜色值,这些值被保存在 curPal 数组中。

Epd esp32 lever 3

抖动法

对于颜色较多或渐变区域较多的图像,上述色阶法并不适用,很多时候图像里面的渐变区域的像素可能跟所有颜色域都很接近,如果用色阶法处理就会让图像丢失很多图像细节。很多摄像头拍摄的图片,通过混合颜色的方法来绘画阴影和过渡区域,这些图像中,渐变区域占了大部分
对于人眼来说,很容易混淆面积较小的颜色区域,比如红色和蓝色两种颜色并列,如果将其缩小到一定程度,在人眼看来会呈现出一种由红色和蓝色混合而成的颜色。利用人眼的这一视觉特性,可以通过“混合”的方法来获取更多可以表现的颜色,抖动算法正是利用了这一视觉现象。 提供的例程中使用了 Floyd-Steinberg 抖动算法 - 基于错误扩散(由 Robert Floyd 和 Louis Steinberg 在 1976 年发表)。公式是根据下面的图像的方式进行错误扩散

Epd esp32 dithering 1

X 表示误差(原始颜色与灰度值(颜色值)之间的标量(矢量)差值),该误差会向右、右下、下和左下四个方向扩散,分别以 7/16、1/16、5/16 和 3/16 的权重添加到对应像素点的值中。有关该算法的详细原理,可通过网络查阅相关资料。

两种算法的处理效果比较

原图

Epd esp32 compare 1

“黑白色阶处理”和“多色色阶处理”

Epd esp32 compare 2

Epd esp32 compare 2-2

“黑白抖动处理”和“多色抖动处理”

Epd esp32 compare 3

Epd esp32 compare 3-2