raspberry pi e-ink display module V1.0

简介

这是一款适用于树莓派/rock 4se,可在断电的情况下显示静态图片的2.13英寸电子墨水屏。墨水屏电路板将树莓派上的引脚引出,在使用墨水屏时,不影响对树莓派引脚的使用。另外墨水屏电路板上增加两个贴片触摸开关,方便扩展其他应用。该墨水屏体积小巧,布局紧凑,即插即用,支持局部刷新,具有低功耗,视角宽、阳光直射下仍可阅读等优点。墨水屏更适合显示静态图片或文字显示,由于刷新时间长,不建议用于频繁动态刷新显示数据的场合。

**注意:**该墨水屏不带字库芯片,但可以下载ttf库来显示,不同的ttf库显示效果不同。

##技术规格

  • 工作电压:3.3V
  • 按键 x 2
    • 按键A(占用GPIO29,即树莓派40引脚)
    • 按键B(占用GPIO28,即树莓派38引脚)
  • 外形尺寸:66.5 x 31 mm
  • 墨水屏型号:GDE0213B1(V1.0版本),GDEH0213B73(V2.0版本),GDEH0213B75(V3.0版本)
    • 墨水屏尺寸:59.2 x 29.2x 1.05mm
    • 显示区域尺寸:48.55 x 23.80mm
  • 分辨率:250 x 122(逻辑分辨率为250 × 128)
  • 通信接口:SPI
  • 显示颜色:黑、白
  • 灰度等级:2
  • 刷新方式:全局/局部刷新
  • 刷新时间:全局刷新约4秒,局部刷新约0.5秒
  • 刷新功耗:26.4mW
  • 待机功耗:0.017mW
  • 可视角度:>170°

##功能示意图

##PinOut

##使用教程

###准备

1 x 树莓派
  1 x raspberry pi e-ink display module

###步骤

一、将墨水屏插入树莓派/ROCK 4SE,并打开树莓派的SPI接口。
二、安装驱动库
       要使墨水屏正常工作,需要安装必要的函数库。该库中提供了墨水屏的驱动程序及示例程序。这里我们只提供了Python的库,后面我们会根据大家的意见提供更多的库。

如果是接入rock 4se,需要先安装 libmraa库

进入/boot/hw_intfc.conf,修改文件如下

如果模块是V1.0版本,在树莓派终端输入下面命令下载库:

git clonehttps://gitee.com/DFRobot/DFRobot_RPi_Display

如果模块是V2.0版本,在树莓派终端输入下面命令下载库:

git clonehttps://gitee.com/DFRobot/DFRobot_RPi_Display_V2

如果模块是V3.0版本,在树莓派终端输入下面命令下载库:

git clonehttps://gitee.com/DFRobot/DFRobot_RPi_Eink_Display

三、下载freetype库。
下载之前,确保你的树莓派/rock 4se连接到网络。然后打开树莓派终端,输入下面的命令下载freetype库。

python -m pip install freetype-py

四、运行示例程序
       进入解压缩路径下的examples文件中,运行示例程序。

cd DFRobot_RPi_Eink_Display/examples

python xxx.py

文件中提供了display_bitmap.py、display_cleanup.py、display_geometry.py、display_keyResponse.py、display_multiLingual.py、display_printString.py等6个示例程序,运行上面命令时,将xxx替换成示例程序的名字即可。

###示例

1. 图片显示示例程序:display_bitmap.py

墨水屏支持显示单色位图的bmp图片,更改display_bitmap.py中的文件路径和文件名,即可显示你自己的图片。

效果展示

2. 几何图形示例程序:display_geometry.py
     
示例程序中提供了直线、矩形、圆、三角形等图形的接口函数。
*
效果展示*:

3. display_multiLingual.py

墨水屏支持多国语言,只需要将相应的ttf库下载到examples/resources中即可。

效果展示

4. display_printString.py
     墨水屏支持全局刷新和局部刷新,并且字体可调整。
效果展示

5. 按键示例程序:display_keyResponse.py
效果展示

**特别注意:**如果更换自定义字体和语言,需要自己到网上下载GPL协议的ttf文件,保存到/DFR0bot_RPi_Display/examples/resources路径下,然后再程序中调用该ttf文件)

###扩展引脚

墨水屏扩展出的引脚与树莓派的引脚一一对应,具体参照前面2.2 PinOut
     墨水屏占用树莓派的SPI、20号和21号引脚,使用时请注意。

##相关调用函数

  • epaper.clear(self, color)

@函数功能:清屏,清除显示buffer里的内容
@参数      color: 颜色。取值epaper.WHITE,epaper.BLACK

  • epaper.flush(self, mode)

@函数功能:选择刷新方式
@参数      mode:刷新方式
epaper.FULL:全局刷新
epaper.PART:局部刷新

几何图形有关调用函数

  • epaper.setLineWidth(self, w)

@函数功能:设置图形的线宽
@参数      w:线的宽度

  • epaper.pixel(self, x, y, color)

@函数功能:画一个点
@(参数1,参数2)  (x, y):点所在位置(行,列)
@参数3     color:点的颜色。取值epaper.BLACK,epaper.WHITE

  • epaper.VLine(self, x, y, h, color)

@函数功能:画一条垂直线
@(参数1,参数2) (x, y):垂直线的起始点
@ 参数3    h:垂线的高度
@ 参数4    color:垂线的颜色,取值epaper.BLACK,epaper.WHITE。

  • epaper.HLine(self, x, y, w, color)

@函数功能:画水平线
@(参数1,参数2) (x, y):水平线的起始点
@参数3     w:水平线的宽度
@参数4     color:水平线的颜色,取值epaper.BLACK,epaper.WHITE。

  • epaper.line(self, x, y, x1, y1, color)

@函数功能:画一条任意线
@(参数1,参数2) (x, y):线的起点
@(参数3,参数4) (x1, y1):线的终点
@ 参数4    color:线的颜色,取值epaper.BLACK,epaper.WHITE。

  • epaper.triangle(self, x, y, x1, y1, x2, y2, color)

@函数功能:画一个三角形
@(参数1,参数2) (x, y):三角形第一个顶点的位置
@(参数3,参数4) (x1, y1):三角形第二个顶点的位置
@(参数5,参数6) (x2, y2):三角形第三个顶点的位置
@参数7     color:三角形的颜色,取值epaper.BLACK,epaper.WHITE。

  • epaper.fillTriangle(self, x, y, x1, y1, x2, y2, color)

@函数功能:画一个填充三角形
@(参数1,参数2) (x, y):三角形第一个顶点的位置
@(参数3,参数4) (x1, y1):三角形第二个顶点的位置
@(参数5,参数6) (x2, y2):三角形第三个顶点的位置
@参数7     color:三角形的颜色,取值epaper.BLACK,epaper.WHITE。

  • epaper.rect(self, x, y, w, h, color)

@函数功能:画一个矩形
@(参数1,参数2) (x, y):矩形左上角顶点位置
@参数3     w:矩形的宽度
@参数4     h:矩形的高度
@参数5     color:矩形的颜色,取值epaper.BLACK,epaper.WHITE。

  • epaper.fillRect(self, x, y, w, h, color)

@函数功能:画一个填充矩形
@(参数1,参数2) (x, y):矩形左上角顶点的位置
@参数3 w:矩形的宽度
@参数4 h:矩形的高度
@参数5 color:矩形的颜色,取值epaper.BLACK,epaper.WHITE。

  • epaper.circleHelper(self, x, y, r, quadrant, color)

@函数功能:画圆在某个象限的弧
@(参数1,参数2) (x, y):圆心的位置
@参数3     r:圆的半径
@参数4     quadrant:象限。取值参考类中象限相关的定义。
@参数5     color:颜色,取值epaper.BLACK,epaper.WHITE。

  • epaper.fillCircleHelper(self, x, y, r, quadrant, color)

@函数功能:画圆在某个象限的扇形
@(参数1,参数2) (x, y):圆心的位置
@参数3     r:圆的半径
@参数4     quadrant:象限。取值1,2,3,4
@参数5     color:扇形颜色,取值epaper.BLACK,epaper.WHITE。

  • epaper.circle(self, x, y, r, color)

@函数功能:画圆
@(参数1,参数2) (x, y):圆心的位置
@参数3     r:圆的半径
@参数4     color:圆的颜色,取值epaper.BLACK,epaper.WHITE。

  • epaper.fillCircle(self, x, y, r, color)

@函数功能:画一个填充圆
@(参数1,参数2) (x, y):圆心的位置
@参数3     r:圆的半径
@参数4     color:圆的颜色,取值epaper.BLACK,epaper.WHITE。

  • epaper.roundRect(self, x, y, w, h, r, color)

@函数功能:画圆角矩形
@(参数1,参数2) (x, y):图形左上角两边延长线的交点的坐标
@参数3     w:圆角矩形的宽度
@参数4     h:圆角矩形的高度
@参数5     r:圆角矩形圆角的半径
@参数6     color:圆角矩形的颜色,取值epaper.BLACK,epaper.WHITE。

  • epaper.fillRoundRect(self, x, y, w, h, r, color)

@函数功能:画填充圆角矩形
@(参数1,参数2) (x, y):
@参数3     w:宽度
@参数4     h:高度
@参数5     r:圆角半径
@参数6     color:颜色,取值epaper.BLACK,epaper.WHITE。

位图显示有关调用函数

  • epaper.setBitmapSize(self, size)

@函数功能:设置位图的放大倍数
@参数      size:位图的放大倍数。取值1,2,...墨水屏中默认放大1倍

  • epaper.setBitmapFmt(self, fmt)

@函数功能:设置位图扫描显示方式
@参数      fmt:扫描方式。墨水屏中默认BITMAP_TBMLLR。
BITMAP_TBMLLR:从上到下扫描。数组中高位字节在左,低位字节在右打印。例如对于位图中的一个字节0xf0。它的高位在左,低位在右,打印出来是这样的[*] [*] [*] [*] [] [] [] []
BITMAP_TBMRLL:从上到下扫描。数组中一个字节的高位在右,低位在左打印
BITMAP_BTMLLR:上下到上扫描。数组中一个字节的高位在左,低位在右打印
BITMAP_BTMRLL:从下到上扫描。数组中一个字节的高位在右,低位在左打印
BITMAP_LRMTLB:从左到右扫描。数组中一个字节的高位在上,低位在下打印
BITMAP_LRMBLT:从左到右扫描。数组中一个字节的高位在下,低位在上打印
BITMAP_RLMTLB:从右到左扫描。数组中一个字节的高位在上,低位在下打印
BIMTAP_RLMBLT:从右到左扫描。数组中一个字节的高位在下,低位在上打印
BITMAP_UNKNOW:不明位图扫描

  • epaper.bitmap(self, x, y, bitmap, w, h, color, background)

@函数功能:画出以数组形式显示的位图
@(参数1,参数2) (x, y):位图显示左上角顶点位置
@参数3     bitmap:数组
@参数4     w:宽度
@参数5     h:高度
@参数6     color:颜色:默认黑色
@参数7     background:背景颜色。默认白色

  • epaper.bitmapFile(self, x, y, path)

@函数功能:显示位图文件
@(参数1,参数2) (x, y):位图显示左上角顶点位置
@参数3     path:位图文件路径

字体显示有关调用函数

  • epaper.setExFonts(self, obj)

@函数功能:创建扩展字体类
@参数      obj:一个FreetypeHelper的类或其他符合要求的类

  • epaper.setTextCursor(self, x, y)

@函数功能:设置字体显示起始位置
@(参数1,参数2) (x, y):光标位置

  • epaper.setTextFormat(self, size, color, background, intervalRow = 2, intervalCol = 0)

@函数功能:设置字体格式
@参数1     size:字体的大小。取值1,2,3,...
@参数2     color:字体颜色,取值epaper.BLACK,epaper.WHITE。
@参数3     background:字体背景颜色。默认白色
@参数4     intervalRow:字行间距。默认2
@参数5     intervalCol:字列间距。默认0

  • epaper.setDisLowerLimite(self, limite)

@函数功能:设置字体的粗细
@参数1     limite: 取值范围0~255

  • epaper.setExFontsFmt(self, width, height)

@函数功能:设置扩展字体的宽和高
@参数1     width:宽度
@参数2     height:高度

  • epaper.printStr(self, c)

@函数功能:显示一个字符串
@参数      c:字符串

  • epaper.printStrLn(self, c)

@函数功能:显示一个字符串,并换行
@参数      c:字符串

##兼容性测试

MCU 测试通过 测试失败 未测试 特别标注
树莓派4
树莓派3B
树莓派3B+
树莓派Zero W
树莓派2B+ v

##常见问题

问:刷新的时候闪烁很长时间,正常吗?

  • 答:电子墨水屏对于阅读有众多的好处,因为成像原理,也存在几种难以克服的缺陷,其中就有闪屏和残影。多次翻页之后,墨迹积累到一定程度就会残留墨迹,为了解决这个问题,制造商设计了全屏刷新功能,但另一个问题就产生了,全屏刷新过程屏幕就会闪一会。

如果客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖

##尺寸图

  • pin脚间距:2.54mm
  • 主板尺寸:66.5mm × 31 mm
  • 板厚:1.6mm

##更多

DFshopping_car1.png DFRobot商城购买链接