Raspberry Pi Pico配合OLED显示图片和汉字

本文介绍了如何使用Raspberry Pi Pico配合OLED显示器(SSD1315)显示图片和汉字。内容涵盖OLED驱动介绍、图片二值化处理为PBM格式、汉字取模软件的配置以及代码实现,包括寄存器定义、I2C通信、OLED初始化等步骤。最终实现了在OLED屏幕上成功显示图片和汉字的效果。
摘要由CSDN通过智能技术生成

 

OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。因为具备轻薄、省电等特性。

01

OLED驱动SSD1315

SSDI315是一种单芯片CMOS OLEO/PLED驱动器,用于有机聚合物发光二极管dot-1natrix图形显示系统。它由128个segments和64个commons组成。这个IC是为普通阴极型OLED/PLED面板设计的

ssd1315直接显示来自其内部128×64位图形显示数据RAM(ODOR)的数据,MCU通过硬件可选的12C接口、6800-/8080-系列兼容并行接口或串行外围接口发送数据/命令。

02


图片显示

我们这次选用的一块0.96寸的OLED,某宝上有很多,大家可以自行去挑选。为了能快速显示图片,我们用PICO提供的例程中的frambuf来进行显示。

首先需要将转换的图片进行二值化并保存为pbm格式,PBM格式由Jef Poskanzer在20世纪80年代发明,为了便于通过电子邮件,用ASCII码表示单色位图,能够承受一般的文本格式的变动。

图片二值化:

def binary_image(image):
    gray = cv.cvtColor(image, cv.COLOR_RGB2GRAY)
    h, w =gray.shape[:2]
    m = np.reshape(gray, [1,w*h])
    mean = m.sum()/(w*h)
    _, binary =  cv.threshold(gray, mean, 255, cv.THRESH_BINARY)
    return binary

图片保存为pbm格式

image = cv.imread("111.bmp")
image = binary_image(image)#二值化
cv.imwrite('111.pbm',image)#保存
with open('111.pbm', 'rb') as f:  # 注意,这里的'rb'参数很重要,没有的话会读取错误
    f.readline()
    f.readline()
    data = bytearray(f.read())
print(data)
bytearray(b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07\xfe\xfc\x8d\xf8\x1c\x7f\xe0\x0f\xfe\xfc\x8d\xf8\x1c\x7f\xf0\x0c\x06\xe7\x02\x07\xdc`0\x0c\xf6f\x0f\x87\x9fo0\r\xf6\x04\r\x80\x07o\xb0\r\xf6\xc7\x00>\x1fo\xb0\r\xf6\xfb\xee\x17\xffo\xb0\r\xf6\xfb\xee\x07\xffo\xb0\x0c\x06\xe4\xf3\xf8\x1f`0\x0f\xfe\xdbm\xb6\xdb\x7f\xf0\x0f\xfe\xdbm\xb6\xdb\x7f\xf0\x00\x00\x1f\xff\xf9\xd8\x00\x00\x00F\x0f\xcf\x9e\xfc\x1e`\x00f\x07\x8f\x8e\xfc>\xf0\x00`8\x1e~\xe0g\xf0\x0eF\xc3\x0e3\x03p0\x0f\x06\xc3\x0e1\x03p0\x0f\xb9\xe0\x7f\x87\xe4\x160\x0f\xef\xdb\x987dv0\x0f\xef\xdb\x907$v0\r\xb0\x1c\xf1\xc1\xe0f\xf0\r\x8f\xf3\x00\x00x\xf1\xb0\r\x8f\xe3\x00\x009\xf1\xb0\x0cp\x03\x00\x00\xfb\x1c\xc0\x02n\x03\x00\x08\xcd\xe7\x80\x03n\x03\x0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值