“
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