注:本案例将采用oled12864+micropython+raspberry pico完成,案例对于其他使用micropython编程的单片机比如:ESP32同样适用。
本案例将用到的软件下载:Hrilug/CSDN (github.com)
注:将BMP帧放在python脚本同一个文件夹下,PIL库下载pip3 install pillow
from PIL import Image
import time
for i in range(1,122):
print(i)
file=str(i)+'.bmp'
im=Image.open(file)
im=im.convert('1')
im.save(str(i)+'.pbm')
time.sleep(0.1)
Main.py参考来自博主YunTianMingg丶
from ssd1306 import SSD1306_I2C
from machine import I2C,Pin
import time,machine,framebuf
i2c=I2C(0,sda=Pin(0), scl=Pin(1), freq=2000000)
display = SSD1306_I2C(128,64,i2c)
def show(dirt):
with open(dirt,'rb') as f :
f.readline()
data = bytearray(f.read())
fbuf = framebuf.FrameBuffer(data,128,64,framebuf.MONO_HLSB)
display.fill(0)
display.blit(fbuf,0,0)#如果不居中,可以修改中间的参数
display.show()
del fbuf#清理内存
for i in range(1,122):
dirt = 'pbm/'+ str(i) + '.pbm' #文件地址
show(dirt)
time.sleep(0.2)#这个延时的长度取决于各自的帧率
参考:
如何高效使用Micropython看你喜欢看的视频_YunTianMingg丶的博客
ESP32 Python 用OLED播放Bad Apple_scott_xiao的博客