基于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驱动板,加上一个白色面板,整个墨水屏看起来好看多了。

目录
相关文章
|
6月前
|
Android开发 芯片
ESP8266-mini-d1+点灯科技——制作手机远程MP3播放器
ESP8266-mini-d1+点灯科技——制作手机远程MP3播放器
209 0
ESP8266-mini-d1+点灯科技——制作手机远程MP3播放器
|
传感器 编解码 开发者
MCU SPI屏也能跑这么炫酷的特效?来,移植起来秀一秀
MCU SPI屏也能跑这么炫酷的特效?来,移植起来秀一秀
134 0
|
6月前
|
芯片
基于Micropython利用ESP32-C3墨水屏电子时钟方法
基于Micropython利用ESP32-C3墨水屏电子时钟方法
350 0
MicroPython 玩转硬件系列7:OLED显示
MicroPython 玩转硬件系列7:OLED显示
|
传感器 数据采集 物联网
基于小熊派光强传感器BH1750状态机驱动项目升级(带LCD屏显示)
基于小熊派光强传感器BH1750状态机驱动项目升级(带LCD屏显示)
96 0
|
开发工具
瑞芯微RV1109配置7寸电容触摸屏的方向修改笔记
瑞芯微RV1109配置7寸电容触摸屏的方向修改笔记
107 0
|
存储 编解码 Linux
荔枝派Zero(全志V3S)驱动开发之RGB LCD屏幕显示bmp图片
了解 framebuffer 字符设备 了解 bmp图片格式 通过操作 /dev/fb0 字符设备来实现在 RGB LCD 屏幕上显示 bmp 图片。
422 1
|
编译器 Linux
荔枝派Zero(全志V3S)驱动开发之RGB LCD屏幕显示jpg图片
由于从上篇博文 “荔枝派Zero(全志V3S)驱动开发之RGB LCD屏幕显示bmp图片” 中只实现了显示 bmp 图片,实际上我们很常用到的图片多数是 jpg 格式图片,因此我们需要折腾一下,实现 jpg 文件的显示。
209 0
|
传感器 C语言 芯片
东芝开发板驱动OLED模块显示LOGO图片
东芝开发板驱动OLED模块显示LOGO图片
146 0
东芝开发板驱动OLED模块显示LOGO图片
全志A33 lichee lvds屏幕配置
开发平台 * 芯灵思SinlinxA33开发板 淘宝店铺: [https://sinlinx.taobao.com/]() 嵌入式linux 开发板 **芯灵思SinlinxA33开发板支持lcd,lvds,dsi屏幕接口,这节通过制作添加lvds配置文件,使其支持lvds屏幕。
2215 0