基于Micropython利用ESP32-C3驱动墨水屏显示图片

简介: 基于Micropython利用ESP32-C3驱动墨水屏显示图片

从咸鱼上淘了两块2.9寸的墨水屏价签,可以结合ESP32-C3做个低功耗的时钟+温湿度计。

1、所需硬件

 合宙的ESP32-C3:

电子价签拆出来的2.9寸墨水屏:

——电子价签型号为:Stellar-L,墨水屏型号为:E029A01。电子价签比较难拆,B站上好多拆解视频,可以参考。这块是参考B站视频从前面玻璃拆进去的,拆完边角的玻璃破裂的比较多。

自己设计的一块墨水屏驱动板:

——这块PCB比较复杂了,贴片电容、电阻、二极管有10多个,再加上24P的FPC,焊接难度有点大,建议上加热台和焊锡膏。

2、原理图

墨水屏使用SPI协议,8个引脚分别与ESP32-C3连接:

mosi = Pin(3)sck = Pin(2)cs = Pin(7)dc = Pin(4)rst = Pin(5)busy = Pin(6)

3、所需驱动

Github上有墨水屏驱动,下载地址:https://github.com/mcauser/micropython-waveshare-epaper

选择2.9寸的epaper2in9.py,里面有相应的示例test.py。

4、测试代码

由于合宙ESP32-C3的SPI0被flash占用了,只能使用SPI1,test.py需要修改下引脚、SPI就能使用。前面部分代码如下:

import epaper2in9from machine import Pin, SPImosi = Pin(3)sck = Pin(2)cs = Pin(7)dc = Pin(4)rst = Pin(5)busy = Pin(6)# SPI0已被flash占用,只能使用SPI1spi = SPI(1, baudrate=2000000, polarity=0, phase=0, sck=sck, mosi=mosi)# 初始化epaper,定义宽高,起始位置为0,0e = epaper2in9.EPD(spi, cs, dc, rst, busy)e.init()w = 128h = 296x = 0y = 0

将驱动epaper2in9.py和example文件下的image_dark.py、image_light.py放到ESP32-C3的根目录下,运行test.py。

显示效果:

墨水屏依次测试图片、文本、文本框的显示,文本默认竖着显示,需要横着显示还有待研究。

5、显示图片

墨水屏要显示图片比较麻烦,需要生成一张296*128的JPG图片:

再用Image2Lcd转成16进制数据,依下图设置,保存为.c文件:

复制.c文件中的16进制数据,保存为image_16.py文件:

将image_16.py上传到ESP32-C3要目录,执行以下代码:

import epaper2in9from machine import Pin, SPImosi = Pin(3)sck = Pin(2)cs = Pin(7)dc = Pin(8)rst = Pin(10)busy = Pin(6)# SPI0已被flash占用,只能使用SPI1spi = SPI(1, baudrate=2000000, polarity=0, phase=0, sck=sck, mosi=mosi)# 初始化epaper,定义宽高,起始位置为0,0e = epaper2in9.EPD(spi, cs, dc, rst, busy)e.init()w = 128h = 296x = 0y = 0# 显示图片from image_16 import image_16e.clear_frame_memory(0xFF)e.set_frame_memory(image_16, x, y, w, h)e.display_frame()

显示效果:

PS:我们设计了一个白色的PCB驱动板,加上一个白色面板,整个墨水屏看起来好看多了。

目录
相关文章
|
传感器 编解码 开发者
MCU SPI屏也能跑这么炫酷的特效?来,移植起来秀一秀
MCU SPI屏也能跑这么炫酷的特效?来,移植起来秀一秀
136 0
|
传感器 Shell 数据处理
一起玩转树莓派(11)——使用LCD屏(一)
一起玩转树莓派(11)——使用LCD屏
744 0
一起玩转树莓派(11)——使用LCD屏(一)
|
7月前
|
芯片
基于Micropython利用ESP32-C3墨水屏电子时钟方法
基于Micropython利用ESP32-C3墨水屏电子时钟方法
388 0
MicroPython 玩转硬件系列7:OLED显示
MicroPython 玩转硬件系列7:OLED显示
|
开发工具
瑞芯微RV1109配置7寸电容触摸屏的方向修改笔记
瑞芯微RV1109配置7寸电容触摸屏的方向修改笔记
116 0
|
存储 编解码 Linux
荔枝派Zero(全志V3S)驱动开发之RGB LCD屏幕显示bmp图片
了解 framebuffer 字符设备 了解 bmp图片格式 通过操作 /dev/fb0 字符设备来实现在 RGB LCD 屏幕上显示 bmp 图片。
441 1
|
Linux
荔枝派Zero(全志V3S)基于QT实现在LCD显示图片
有这样一个需求,通过配置 QT,在 linux 下实现显示我所想要显示的图片,实现的方式是我可以在命令行将图片的路径作为入参传入进去,从而对其进行显示,在之前的文章中已实现了在板子上运行 QT5 程序,此需求要自己写个 QT 程序,且需要对 buildroot 进行裁剪支持一些常用的图片格式即可。
362 2
|
编译器 Linux
荔枝派Zero(全志V3S)驱动开发之RGB LCD屏幕显示jpg图片
由于从上篇博文 “荔枝派Zero(全志V3S)驱动开发之RGB LCD屏幕显示bmp图片” 中只实现了显示 bmp 图片,实际上我们很常用到的图片多数是 jpg 格式图片,因此我们需要折腾一下,实现 jpg 文件的显示。
224 0
玩转easyARM imax283A开发版(二),移植NES模拟器并增加按键驱动,让板子可以玩超级玛丽游戏
玩转easyARM imax283A开发版(二),移植NES模拟器并增加按键驱动,让板子可以玩超级玛丽游戏

热门文章

最新文章