e-Paper ESP8266 Driver Board 用户手册
e-Paper ESP8266 Driver Board
用户手册
产品简介
本产品 是电子墨水屏网络驱动板。通过 WIFI 网络,用户可以使用 PC 或者是手机
对微雪电子墨水屏进行图片信息更新
这款驱动板。体型小, 板载 ESP8266。在驱动板的背面引出 ESP8266 的引脚,方
便用户使用。支持 Arduino 开发。
上位机程序提供了图片的颜色校正功能。用户可以通过浏览器打开设置网页,将
图片信息下载刷新到对应的墨水屏
产 品 特 性
板载 ESP8266,支持 Arduino 开发
提供 HTML 上位机程序
支持 Floyd-Steinberg 抖动算法,以获得更多的颜色组合,对原始图片进行更
好的阴影渲染
支持多种常用图片格式(BMP、JPEG、GIF 和 PNG 等)
方便集成到各种网络应用中
出厂内置电子墨水屏驱动程序(开源)
应 用
这款驱动板配合微雪电子墨水屏,可以应用于电子标签的无线更新
超市的电子价格标签
客户服务窗口的信息标签,比如名字标签
广告小标签
1
e-Paper ESP8266 Driver Board 用户手册
目 录
产品简介 .......................................................................................................................................................................... 1
产品特性 ................................................................................................................................................................. 1
应用 .......................................................................................................................................................................... 1
开发环境设置 ................................................................................................................................................................. 3
Arduino IDE 的安装和配置 ............................................................................................................................... 3
代码分析 ................................................................................................................................................................. 4
墨水屏选择开关 ................................................................................................................................................... 5
如何使用 .......................................................................................................................................................................... 5
用户接口 ................................................................................................................................................................. 6
图像处理 ................................................................................................................................................................. 7
Level ................................................................................................................................................................ 7
Dithering ........................................................................................................................................................ 8
数据传输原理 ..................................................................................................................................................... 10
命令 .............................................................................................................................................................. 10
初始化算法 ................................................................................................................................................ 10
数据传输 ..................................................................................................................................................... 13
像素数据格式 ............................................................................................................................................ 14
硬件 ................................................................................................................................................................................. 16
引脚 ....................................................................................................................................................................... 16
尺寸信息 .............................................................................................................................................................. 16
2
e-Paper ESP8266 Driver Board 用户手册
开发环境设置
本文档中提到的示例程序是基于 C 语言的。修改和编译示例程序,我们需要使用
到 Arduino IDE 软件。为了方便查看串口数据,我们还需要用到串口助手软件(如果使
用的是 Arduino IDE 的话,IDE 自带了串口监视器)。WIFI 路由器以及连接到该路由器
的电脑或者手机。
ARDUINO IDE 的 安 装 和 配 置
如果你已经安装好 Arduino IDE 并且配置好了 ESP8266 开发环境的话,可以直接跳过
该步骤
1. 到 Arduino 官方网站下载 Arduino IDE。用户可以根据自己的系统选择对应的版本
下载。
注意:安装新版本的 IDE 并不会覆盖掉之前已保存的工程和文件
2 打开 IDE, 打开文件->首选项。在设置界面,将网址
http://arduino.esp8266.com/stable/package_esp8266com_index.json 添加到附加开放板
管理器网址框中。然后点击“好”完成设置。
3
e-Paper ESP8266 Driver Board 用户手册
3. 打开工具->开放板管理器。找到 ESP8266by ESP8266 Community 选项并安装。安
装完成后,就可以在工具->开发板里面找到 ESP8266 的相关选项了
代 码 分 析
提供的示例程序代码里面主要有以下文件:
loader.ino: Arduino IDE 的工程文件,也是工程的 main 文件。文件中有两个函数 setup
和 loop。这里不另外多做说明
srvr.h: 该文件定义了 ESP8266 WIFI 服务的函数。用户需要将 your you’re your
password 替换成自己 WIFI 的用户名和密码
html.h, ccs.h 和 scripts.h: 是 html 上位机和相关函数。一般情况下用户不需要做改动
buff.h: 定义了一个 byte-buff 以及数据存放处理的相关函数。buffer 用来将接收到的图
片信息数据里面的 1-, 2-bit 像素格式转化成便于 e-paper 显示用的 1-, 2-, 4-
bit 的像素格式,
epd1in54.h, epd2in13.h, epd2.7.h, epd2in9.h, epd4in2.h, epd7in5.h 定义了相关墨水屏
的初始化函数和应用程序,包括亮度和颜色饱和度的设置(lut-massives)
epd.h 定义了 e-paper 状态的控制函数(初始化,颜色通道选择,下传,刷新以及睡
眠模式)
4
e-Paper ESP8266 Driver Board 用户手册
连接一个墨水屏到驱动板上,点击“下传”将程序下载到板子。如果下载程序过程出
现报错,检查一下 IDE 的工具菜单中是否选择了正确的开发板和 COM 口
墨 水 屏 选 择 开 关
在驱动板上面有一个选择开关。用户需要根据接入的墨水屏型将开关拨到对应的
位置,具体的型号对应参考下面的表格:
Trigger
state
e-Paper type
1.54 inch, 2.13 inch, 2.9 inch
1.54 inch(b), 2.13 inch(b), 2.7 inch, 2.7 inch(b), 2.9 inch(b), 4.2 inch,
4.2 inch (b), 7.5 inch(b), 7.5 inch(b)
A
B
如何使用
将示例程序下载到驱动板后,连接一个微雪电子墨水屏 (裸屏)。使用 HTML 上
位机(手机或者 PC 浏览器输入驱动板的 IP 地址),用户可以打开一个图片文件,选
5
e-Paper ESP8266 Driver Board 用户手册
择对应的墨水屏型号,比如选择 4.2b。然后点击 upload image 将程序下传到驱动板,
并刷新到墨水屏。
用 户 接 口
上位机网页的用户接口主要有以下的功能:
Select image file-选择打开一个图片文件
Level: black, Level: black and red, Dithering: black, Dithering: black and red-将打开的图片根据
墨水屏型号进行处理
Upload image-向驱动板发起一个 POST 请求并等待驱动板回复“OK”,然后将处理过的图片数据
发送到驱动板并刷新到墨水屏上
Device IP: 显示当前连接的驱动板的 IP 地址
Boudns: 显示图片偏移位置(X,Y) 和墨水屏分辨率(W,H)会根据对应的选择按钮(1.5inch e-
Paper… 7.5inch e-Paper(b))选择的型号显示对应的参数
Viewers: 原图片(通过拖拽控制)和处理过的图片会在这里显示(一开始是没有的)
注意:当你更换连接的墨水屏型号的时候,Bounds 里面的 W,H 和 Device IP 会根据实际墨水屏
型号自动更新。但是如果你想要测试一下软件或者是控制其他驱动板的时候,可以通过修改
Device IP 来控制不同的驱动板。
6
e-Paper ESP8266 Driver Board 用户手册
图 像 处 理
在 HTML 页面的使用中,提供了两种图片处理方法: Level 和 Dithering
LEVEL
Level 的处理方法中,一张图像上面的所有像素可以被统分为几个大颜色区,图像上的的每个像
素的被归到最接近的颜色区内。这种处理方式比较适用于 2 种或者三种颜色的显示。
例如,如果灰度图的一个像素颜色值小于等于 127,那么可以说这个像素的颜色归为黑色,否
则就是白色。
如果是彩色图像的话,绿色和蓝色的像素可以统称为蓝绿或者相对于红色像素来说的话说
它是非红色。在下面的图片中,我们可以看到 R 值高以及 G 值低的像素显示为红色,其他的按
照前面的方法区分为黑色和白色。
上面颜色的定义算法是基于差异计算:其他颜色值的平方和(除支持显示的颜色外的其他
颜色)。墨水屏显示的时候,每个像素会显示成跟原颜色差异最小的那个颜色。关于颜色处理
的代码:
7
e-Paper ESP8266 Driver Board 用户手册
DITHERING
由于一般图片的颜色过渡相对平滑,而这些过渡的颜色可能同时趋近于多种颜色,因此如
果使用上面 Level 处理方法的话会丢失掉很多颜色细节。比如摄像头拍摄的图片,过渡颜色区
域(阴影)会占大部分。因此通常情况下我们可以选择在那些区域通过颜色抖动的方法来处理
阴影。
通常情况下在小区域内的颜色,我们眼睛看到的颜色不一定是真实的颜色,大多是颜色抖
动的效果。所以一般来说,对于颜色较少的系统,我们可以以牺牲分辨率为代价,通过抖动来
增加可用颜色数量。优秀的颜色抖动算法能够尽可能的避免颗粒感。在这基础上我们采用
Dithering 算法。
示例程序采用 Floyd-Steinberg Dithering 算法。该算法是 Robert Floyd 和 Louis Steinberg
在 1976 年发表的著名的 2D 误差扩散方法。
Figure 1 Floyd-Steinberg 抖动算法的误差扩散
8