引言:
水墨屏是一种电子屏幕,它的显示材料是电子墨水。这些电子墨水呈胶囊结构,每个微胶囊都含有带正电的白色粒子和带负电的黑色粒子,悬浮于透明液体之中。当正电或负电电场接通时,相对应的粒子会移动到微胶囊顶端,人就可以在表面看到白色或黑色的影像。水墨屏本身不发光,随着环境光的变化显示效果略有不同。
相比于传统的液晶屏幕,水墨屏有以下优点:
- 更接近纸张观感;可使角度大
- 无频闪;无蓝光;无辐射
- 更省电,掉电不影响内容显示
目前市面水墨屏种类繁多,本文以较为简单的断码水墨屏为引,介绍QuecPython驱动水墨屏过程。
效果演示
首先功能演示。水墨屏省电掉电保持显示能力可以说是水墨屏的核心能力之一,下面通过视频一睹为快。
硬件说明
驱动屏介绍
硬件连接
因为这边是外购屏幕,这边不做过多介绍,应用下网络资料。详细资料可执行联系淘宝卖家获取。
这边主要介绍屏幕与QuecPython开发板(以EC600N开发板为例)硬件连接部分:
引脚 | 91段水墨屏 | QuecPython开发板 |
VCC | 3V3 / 5V | 3V3 |
GND | GND | GND |
SDA | I2C通信数据引脚 | I2C1.SDA => PIN56 |
SCL | I2C通信时钟引脚 | I2C1.SCL => PIN57 |
RST | 外部复位引脚(低电平复位) | GPIO36 ==> PIN31 |
BUSY | 忙状态输出引脚(高电平表示忙) | GPIO37 ==> PIN32 |
软件说明
本实验实现效果:通过读取开发板板载温湿度传感器(AHT0)的温湿度于水墨屏显示。
由于本文章主要介绍水墨屏显示驱动,有关温湿度传感器(AHT10)驱动部分不做介绍,文章最后全套代码将开源,看官老爷请自行查看了解。
工程结构
整套实验代码分为三个脚本文件,分别为:
- AHTxx.py ==> AHT10温湿度检测文件
- Epd1in9.py ==> 水墨屏驱动文件
- App_main.py ==> 程序入口文件,名称修改为main.py便可实现上电自运行。
代码讲解
模块化编程思路:分文件驱动温湿度传感器与水墨屏,温湿度传感器反馈温湿度通过水墨屏显示接口显示。
水墨屏驱动函数及主要注意事项介绍:
- IIC驱动封装:
IIC封装的驱动函数较为简单,直接查看函数名称使用即可,主要为预防硬件切换设计。后期能够修改IIC使用的IIC通道即可。
2.水墨屏驱动封装:
实际使用时只需要定义类初始化后调用温湿度显示函数即可非常简单。
epd = epd1in9.EPD()
epd.init()
while True:
epd.display_temperature(temperature)
epd.display_humidity(humidity)
utime.sleep_ms(1000)
有关函数内部逻辑实现部分请自行查看源码,比较麻烦,需要一定开发功底。
需要注意的是RST与BUSY控制PIN脚的修改,修改如下图所示GPIO编号即可。
驱动分享
最最最重要的环节:驱动分享。
链接:https://pan.baidu.com/s/1MbuQorpljWvsIlOKWqX1nw?pwd=snbd
提取码:snbd
附言:
后期小Q也会陆续分享其他外设的QuecPython驱动及学习心得,欢迎各位看沟通交流。