1.9inch Segment e-Paper 教程

特点

  • 尺寸: 1.9 inch
  • 外形尺寸(裸屏):49.35 × 32.11 × 1.13 mm
  • 外形尺寸(驱动板):51 × 34 mm
  • 显示尺寸:41.35 × 28.11 mm
  • 工作电压:3.3V/5V
  • 通信接口:IIC
  • 段码:91段
  • 显示颜色:黑、白
  • 灰度等级:2
  • 局部刷新:0.3s
  • 全局刷新:2s
  • 刷新功耗:<5mW(typ.)
  • 休眠电流:<0.01uA(接近0)
  • 【备注】:
    • 刷新时间:刷新时间为实验测试数据,实际刷新时间会有误差,以实际效果为准。全局刷新过程中会有闪烁效果,这个是正常现象
    • 功耗:功耗数据为实验测试数据,实际功耗由于驱动板的存在和实际使用情况的不同,会有一定误差,以实际效果为准

SPI 通信时序


由于墨水屏只需要显示,这里将从机发,主机收的数据线(MISO)隐藏。
CS:从机片选,当CS为低电平的时候,芯片使能
DC:数据/命令控制引脚,当DC=0时写入命令;DC=1时写入数据
SCLK: SPI通信时钟
SDIN:SPI通信主机发送,从机接收
时序:CPHL=0, CPOL=0 (SPI0)
【备注】具体关于SPI通信的相关信息,可以自行网上搜索资料了解

墨水屏刷新原理

工作原理

  • 本产品使用的电子纸采用“微胶囊电泳显示”技术进行图像显示,其基本原理是悬浮在液体中的带电纳米粒子受到电场作用而产生迁移。电子纸显示屏是靠反射环境光来显示图案的,不需要背光,在环境光下,电子纸显示屏清晰可视,可视角度几乎达到了 180°。因此,电子纸显示屏非常适合阅读。

像素与字节的关系

对于黑白图片,我们可以规定,如果如果是黑色我们定义成0,如果是白色就定义成1,那么有了表示颜色的方式:
白色:□,对应1
黑色:■:对应0

  • 一个点在图形上一般称之为像素点(pixel),而颜色不是1就是0,也就是1个位就可以标识颜色:1Pixel = 1bit,那么一个字节里面就包含了8个像素点。
  • 以16个像素点为例,我们假设前8个像素点为黑,后8个像素点为白色,那么可以这么认为,像素点1-16,对应这0位到15位,0表示黑色,1表示白色:


对于计算机而言,它的数据存储方式是高位在前,低位在后,且一个字节只有8个位,因此会有一点改变:

这样只需要2个字节即可表示16个像素点了。

注意事项

  1. 支持局刷的屏幕,注意使用的时候不能一直用局刷对屏幕进行刷新,需要在做几次局刷之后,对屏幕进行一次全刷清屏。否则会造成屏幕显示效果异常,无法修复!
  2. 注意屏幕不能长时间上电,在屏幕不刷新的时候,要将屏幕设置成睡眠模式,或者进行断电处理。否则屏幕长时间保持高电压状态,会损坏膜片,无法修复!
  3. 使用墨水屏的时候,建议刷新时间间隔至少是180s, 并且至少每24 小时做一次刷新,如果长期不使用墨水屏的话,要将墨水屏刷白存放。(具体储存环境需求参考数据手册)
  4. 屏幕进入睡眠模式之后,会忽略发送的图片数据,只有重新初始化才能正常刷新
  5. 墨水屏的工作电压要求是3.3V,如果您购买的是裸屏的话,设计电路的时候如果需要配合5V 工作环境的话,建议做一下电平转换处理。新版本(V2.1和后续版本)加入了电平处理电路,可以同时支持3.3V 和5V 工作环境, 老版本只能支持3.3V 工作环境,使用的时候可以先确认一下版本。(PCB 上带有20脚芯片的一般是新版本)
  6. 屏幕的FPC 排线比较脆弱,注意使用的时候沿屏幕水平方向弯曲排线,不可以沿屏幕垂直方向弯曲排线
  7. 墨水屏屏幕较为脆弱,注意尽量避免跌落,碰撞,用力按压。
  8. 我们建议客户拿到屏幕之后,先用我们提供的示例程序,使用对应的开发板进行测试


Raspberry Pi

提供BCM2835、WiringPi、文件IO、RPI(Python)库例程

硬件连接

连接树莓派的时候,如果是驱动板带有40pin排座的,可以直接插到树莓派的40PIN排针上去,注意对好引脚。如果是选择用8PIN排线连接的话,请参考下方的引脚对应表格

树莓派连接引脚对应关系
e-PaperRaspberry Pi
BCM2835编码Board物理引脚序号
VCC3.3V3.3V
GNDGNDGND
SDASDA.13
SCLSCL.15
RST47
BUSY1711


开启I2C接口

  • 打开树莓派终端,输入以下指令进入配置界面
sudo raspi-config
选择Interfacing Options -> I2C -> Yes 开启I2C接口



然后重启树莓派:

sudo reboot

安装库

PS:使用 Bullseye 分支的系统时,建议使用“apt" 替换“apt-get”;且 Bullseye 分支的系统只支持 Python3。

BCM2835

#打开树莓派终端,并运行以下指令
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz
tar zxvf bcm2835-1.71.tar.gz 
cd bcm2835-1.71/
sudo ./configure && sudo make && sudo make check && sudo make install
# 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/

wiringPi

#打开树莓派终端,并运行以下指令
sudo apt-get install wiringpi
#对于树莓派2019年5月之后的系统(早于之前的可不用执行),可能需要进行升级:
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
# 运行gpio -v会出现2.52版本,如果没有出现说明安装出错

#Bullseye分支系统使用如下命令:
git clone https://github.com/WiringPi/WiringPi
cd WiringPi
./build
gpio -v
# 运行gpio -v会出现2.60版本,如果没有出现说明安装出错

安装Python函数库

#python2
sudo apt-get update
sudo apt-get install python-pip
sudo apt-get install python-pil
sudo apt-get install python-numpy
sudo apt-get install python-smbus
sudo pip install RPi.GPIO
#python3
sudo apt-get update
sudo apt-get install python3-pip
sudo apt-get install python3-pil
sudo apt-get install python3-numpy
sudo apt-get install python3-smbus
sudo pip3 install RPi.GPIO

下载测试程序

打开树莓派终端,执行:
方法一:从我们官网下载

sudo apt-get install p7zip-full
wget  https://www.waveshare.net/w/upload/f/f6/E-Paper-Segment-Code.zip
7z x E-Paper-Segment-Code.zip -O./e-Paper
cd e-Paper/RaspberryPi/

运行测试程序

以下命令请在RaspberryPi_JetsonNano下执行,否则不在索引不到目录;

C语言

  • 打开main.c选择对应尺寸的屏幕
cd c
sudo nano examples/main.c 

如果你使用的是1.9inch Segment e-paper,那么就去掉EPD_1IN9_test()函数前面的//,然后按ctrl+c,然后按Y键并回车保存并退出,如图所示:(图片可能更新不及时,具体以例程为准)

可以查看到所有的屏幕尺寸的测试程序,按照尺寸分类:
1.9寸:
EPD_1in9_test():对应1.9inch Segment e-paper测试程序;

  • 注意:以上时间仅供参考,具体版本请看屏幕标识
  • 重新编译,编译过程可能需要几秒
返回c目录下,运行以下指令
make clean
make
sudo ./main

python

PS:Bullseye 分支的系统只支持 Python3。
  • 进入python程序目录,并运行指令ls -al
cd python
ls -al


可以查看到所有的屏幕尺寸的测试程序,按照尺寸分类:
1.9寸:
1inch9_E-paper目录对应1.9inch Segment e-paper测试程序;

  • 注意:以上时间仅供参考,具体版本请看屏幕标识
  • 运行对应屏幕的程序即可,程序支持python2/3,以1.54 V2为例子
# python2
cd 1in9_E-paper
sudo python main.py
# python3
cd 1in9_E-paper
sudo python3 main.py


STM32

我们提供的例程是基于STM32F103RBT6的,提供的连接方式也是对应的STM32F103RBT6的引脚,如果有需要移植程序,请按实际引脚连接

硬件连接

STM32F103RB连接引脚对应关系
e-PaperSTM32
VCC3.3V
GNDGND
SDAPB9/D14
SCLPB8/D15
RSTPA9/D8
BUSYPA8/D7

以我们的XNUCLEO-F103RB为例,连接如下图:


软件说明

例程是基于HAL库进行开发的。 下载程序,找到STM32程序文件目录,打开STM32\STM32-F103ZET6\MDK-ARM目录下的epd-demo.uvprojx,即可看到程序。

打开main.c,可以看到所有的测试程序,把对应的屏幕的测试程序前面的注释去掉,重新编译下载即可。

可以查看到所有的屏幕尺寸的测试程序,按照尺寸分类:
1.9寸:
EPD_1in9_test():对应1.9inch Segment e-paper测试程序;

  • 注意:以上时间仅供参考,具体版本请看屏幕标识


Arduino

例程均在Arduino uno上进行了测试,如果需要是其他型号的Arduino需要自己确定连接的管脚是否正确。

硬件连接

Arduino连接引脚对应关系
e-PaperArduino UNOMega2560
Vcc5V5V
GNDGNDGND
SDASDASDA
SCLSCLSCL
RSTD8D8
BUSYD7D7


安装编译软件(windows教程)

arduino IDE 安装教程

运行程序

在产品百科界面下载程序,然后解压。Arduino程序位于 ~/Arduino/…

请根据墨水屏型号选择对应的程序打开

可以查看到所有的屏幕尺寸的测试程序,按照尺寸分类:
1.9寸:
EPD_1in9:对应1.9inch segment e-paper测试程序;


  • 注意:以上时间仅供参考,具体版本请看屏幕标识

比如1.54inch e-Paper Module. 打开epd1in54文件夹,并运行epd1in54.ino文件。
打开程序,选择开发板型号Arduino UNO

选择对应COM口

然后点击编译并下载即可