跳到主要内容

搭配 树莓派 使用

各项参数​

尺寸2.13英寸
驱动板尺寸65mm × 30.5mm
显示尺寸48.55mm × 23.71mm
外形尺寸(裸屏)59.2mm × 29.2mm × 1.05mm
工作电压3.3V
通信接口SPI
点距0.194mm × 0.194mm
分辨率250 × 122
显示颜色黑、白
灰度等级2
刷新时间2s
局部刷新0.3s
快刷刷新1.8s
刷新功耗(裸屏)10.5mW(typ.)
待机功耗(裸屏)< 0.01mW(typ.)
工作温度0 ~ 50 ℃
存储温度-25 ~ 70 ℃
  • 刷新时间:刷新时间为实验测试数据,实际刷新时间会有误差,以实际效果为准。全局刷新过程中会有闪烁效果,这个是正常现象。

  • 刷新功耗:功耗数据为实验测试数据,实际功耗由于驱动板的存在和实际使用情况不同,会有一定误差,以实际效果为准。

  • 在低温环境下进行刷新可能出现显示偏色,需要在25℃的环境中静止6小时后,在进行刷新。

通信方式​

E-paper-spi-timing-new2

CSB(CS):从机片选信号,低电平有效,为低电平的时候,芯片使能。
SCL(SCK/SCLK):串行时钟信号。
D/C(DC):数据/命令控制信号,低电平时写入命令(Command);高电平时写入数据(Data/parameter)。
SDA(DIN):串行数据信号。
时序:CPHL=0,CPOL=0,即 SPI 模式0。
【备注】具体关于SPI通信的相关信息,可以自行网上搜索资料了解。

工作原理​

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

编程原理​

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

    • 白色:□ 对应1

    • 黑色:■ 对应0

  • 一个点在图形上一般称之为像素点(pixel),而颜色不是1就是0,也就是1个位就可以标识颜色:1Pixel = 1bit,那么一个字节里面就包含了8个像素点。

  • 以16个像素点为例,我们假设前8个像素点为黑,后8个像素点为白色,那么可以这么认为,像素点1-16,对应这0位到15位,0表示黑色,1表示白色:

E-paper hardware work 1

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

E-paper hardware work 2

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

注意事项​

  1. 注意屏幕不能长时间上电,在屏幕不刷新的时候,要将屏幕设置成睡眠模式,或者进行断电处理。否则屏幕长时间保持高电压状态,会损坏膜片,无法修复。
  2. 使用墨水屏的时候,建议刷新时间间隔至少是180s, 并且至少每24小时做一次刷新,如果长期不使用墨水屏的话,要将墨水屏刷白存放。(具体储存环境需求参考数据手册)
  3. 屏幕进入睡眠模式之后,会忽略发送的图片数据,只有重新初始化才能正常刷新。
  4. 如果发现制作的图片数据在屏幕上显示错误,建议检查一下图片大小设置是否正确,调换一下宽度和高度设置再试一下。
  5. 墨水屏的工作电压要求是 3.3V,如果您购买的是裸屏的话,设计电路的时候如果需要配合 5V 工作环境的话,建议做一下电平转换处理。
  6. 屏幕的 FPC 排线比较脆弱,请注意:不要沿屏幕垂直方向弯曲排线,避免排线被撕裂;不要反复过度弯曲排线,避免排线断裂;不要往屏幕正面方向弯曲排线,避免排线与面板的连接断开。调试研发时建议固定排线后使用。
  7. 墨水屏屏幕较为脆弱,注意尽量避免跌落、碰撞、用力按压。
  8. 我们建议客户拿到屏幕之后,先用我们提供的示例程序,使用对应的开发板进行测试。

硬件连接​

连接树莓派的时候,可以直接将板子插到树莓派的 40PIN 排针上去,注意对好引脚。

开启SPI接口​

  • 打开树莓派终端,输入以下指令进入配置界面:

    sudo raspi-config
    选择Interfacing Options -> SPI -> Yes 开启SPI接口

RPI open spi

  • 重启树莓派:

    sudo reboot
  • 检查 /boot/config.txt,可以看到 'dtparam=spi=on' 已被写入

RPI open spi 1

  • 为了确保 SPI 没有被占用,建议其他的驱动覆盖暂时先关闭。可以使用 ls /dev/spi* 来检查 SPI 占用情况,终端输出 /dev/spidev0.0 和 /dev/spidev0.1 表示 SPI 情况正常

RPI open spi 2

开启I2C接口​

  • 打开树莓派终端,输入以下指令进入配置界面

    sudo raspi-config
    选择 Interfacing Options -> I2C ->yes 启动 i2C 内核驱动

RPI open i2c

然后重启树莓派:

sudo reboot

安装C语言库​

  • 安装 lg 库

    #打开树莓派终端,并运行以下指令:
    wget https://github.com/joan2937/lg/archive/master.zip
    unzip master.zip
    cd lg-master
    make
    sudo make install
    # 更多的可以参考源码:https://github.com/gpiozero/lg
  • 安装 gpiod 库(可选)

    #打开树莓派终端,并运行以下指令:
    sudo apt-get update
    sudo apt install gpiod libgpiod-dev
  • 安装 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库​

  • 安装函数库

    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 spidev
  • 安装函数库(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 spidev
  • 安装gpiozero库(系统默认已安装,如果没有安装请按照以下命令进行安装)

    sudo apt-get update
    # python3
    sudo apt install python3-gpiozero
    # python2
    sudo apt install python-gpiozero

e-Paper​

运行C语言例程​

  • 下载程序(已下载可跳过)

    wget https://www.waveshare.net/w/upload/7/71/E-Paper_code.zip
    unzip E-Paper_code.zip -d e-Paper
    cd e-Paper/RaspberryPi_JetsonNano/
  • 备用解压方式

    sudo apt-get install p7zip-full
    7z x E-Paper_code.zip -O./e-Paper
    cd e-Paper/RaspberryPi_JetsonNano/
  • 通过 GitHub 下载程序(备用方式,已下载可跳过)

目前访问 GitHub 并不是很流畅,建议使用上面的方法从我们官网下载。

git clone https://github.com/waveshare/e-Paper.git
cd e-Paper/RaspberryPi_JetsonNano/
  • 编译程序(说明:-j4 为使用4线程编译,数字可自行修改;EPD=epd2in13V4 是指定一个宏定义,epd2in13V4 对应主函数中的测试程序)

    # 此时在 e-Paper/RaspberryPi_JetsonNano 位置
    cd c
    sudo make clean
    sudo make -j4 EPD=epd2in13V4
  • 运行程序

    sudo ./epd

运行python例程​

  • 下载程序(已下载可跳过)

    wget https://www.waveshare.net/w/upload/7/71/E-Paper_code.zip
    unzip E-Paper_code.zip -d e-Paper
    cd e-Paper/RaspberryPi_JetsonNano/
  • 备用解压方式

    sudo apt-get install p7zip-full
    7z x E-Paper_code.zip -O./e-Paper
    cd e-Paper/RaspberryPi_JetsonNano/
  • 通过 GitHub 下载程序(备用方式,已下载可跳过)

目前访问 GitHub 并不是很流畅,建议使用上面的方法从我们官网下载。

git clone https://github.com/waveshare/e-Paper.git
cd e-Paper/RaspberryPi_JetsonNano/
  • 运行程序

    # 确保在 e-Paper/RaspberryPi_JetsonNano/ 位置
    cd python/examples/
    python3 epd_2in13_V4_test.py

RTC​

运行C语言例程​

  • 下载程序(已下载可跳过)

    wget https://www.waveshare.net/w/upload/d/dd/2in13_e-Paper-RTC.zip
    unzip 2in13_e-Paper-RTC.zip -d 2in13_e-Paper-RTC
    cd 2in13_e-Paper-RTC/Raspberrypi/
  • 编译程序(说明:-j4 为使用4线程编译,数字可自行修改;)

    # 此时在 2in13_e-Paper-RTC/Raspberrypi/ 位置
    cd c
    make clean
    make -j4
  • 运行程序

    # 注意:运行时需要注释掉 config.txt 中设置的内核驱动代码,否则可能导致输出数据不正确
    sudo ./main

运行python例程​

  • 下载程序(已下载可跳过)

    wget https://www.waveshare.net/w/upload/d/dd/2in13_e-Paper-RTC.zip
    unzip 2in13_e-Paper-RTC.zip -d 2in13_e-Paper-RTC
    cd 2in13_e-Paper-RTC/Raspberrypi/
  • 运行程序

    # 此时在 2in13_e-Paper-RTC/Raspberrypi/ 位置
    # 注意:运行时需要注释掉 config.txt 中设置的内核驱动代码,否则可能导致输出数据不正确
    cd python
    # 设置RTC时间,并循环显示时间、日期、温度
    sudo python main.py
    # 将RTC时间同步至系统中,仅限于没有联网的系统使用
    sudo python Set_system_time.py

添加内核方式驱动​

注意使用这种方法,就不可以使用上面的示例程序
在 /boot/config.txt 末尾添加

dtoverlay=i2c-rtc,ds3231

Hwclock简单使用​

同步系统时钟 -> 硬件时钟

sudo hwclock -w

同步硬件时钟 -> 系统时钟

sudo hwclock -s
#需要关闭网络,或者关闭网络对时,否则会被改回去

设置硬件时钟时间:

sudo hwclock --set --date="9/8/2021 16:45:05"

查看硬件时钟

sudo hwclock -r

显示版本信息

sudo hwclock --verbose