配套 2.4寸LCD屏 ST7789驱动器芯片(24P 320X240)
主要参数
模块名称:液晶显示模块
型号:KD024C-4
同类型型号:
兼容型号:
显示模式:TFT
显示色彩:65/262K
分辨率: 240*320
点距:0.153 (H) x 0.153 (V)
视角:12:00
控制IC:ST7789V
显示类型:全透型,常白
外形尺寸:42.7260.262.6mm
可视面积:38.32*50.56 mm
点阵区面积:36.72*48.96mm
亮度:300cd/m2
对比度:500
接口类型: 8/9/16/18位8080并口
,16/18位RGB接口
,¾线SPI接口
引脚数:24
引脚距离:0.5mm
连接类型: FPC插接型
工作电压:3.3V
背光灯颜色及类型: 白色LED背光
背光电路:4 LED 并联, 共阳
,If=80mA, Vf =3.2V
使用寿命:100000h
工作温度:-20—-70°C
储存温度:-30—-80°C
质量体系认证:ISO9001:2008
产品认证:RoHS
#零基础学MaixPy之LCD液晶屏 #测试程序之一:显示英文 import lcd lcd.init() lcd.draw_string(100, 100, “hello MicroPython!”, lcd.RED, lcd.BLACK)
lcd 屏幕显示驱动
lcd.display(image, roi=Auto)
在液晶屏上显示一张 image(GRAYSCALE或RGB565)。
roi 是一个感兴趣区域的矩形元组(x, y, w, h)。若未指定,即为图像矩形
若 roi 宽度小于lcd宽度,则用垂直的黑色边框使 roi 居于屏幕中心(即用黑色填充未占用区域)。
若 roi 宽度大于lcd宽度,则 roi 居于屏幕中心,且不匹配像素不会显示(即液晶屏以窗口形态显示 roi 的中心)。
若 roi 高度小于lcd高度,则用垂直的黑色边框使 roi 居于屏幕中心(即用黑色填充未占用区域)。
若 roi 高度大于lcd高度,则 roi 居于屏幕中心,且不匹配像素不会显示(即液晶屏以窗口形态显示 roi 的中心)。
roi 是键值参数,必须在函数调用中通过写入 roi= 来显式地调用。
#零基础学MaixPy之LCD液晶屏 #测试程序之二:LCD屏显示"hello maixpy" import lcd, time import image bg = (236,36,36) lcd.init(freq=15000000) lcd.direction(lcd.YX_RLDU) lcd.clear(lcd.RED) time.sleep(1) lcd.draw_string(120, 120, “hello maixpy”, lcd.WHITE, lcd.RED) time.sleep(2) img = image.Image() img.draw_string(60, 100, “hello maixpy”, scale=2) img.draw_rectangle((120,120,30,30)) lcd.display(img)
串口输出 >>> {“w”:320, “h”:240, “type”=“rgb565”, “size”:153600}
{“w”:320, “h”:240, “type”=“rgb565”, “size”:153600}
MicroPython v0.5.0-31-gd3e71c0 on 2020-03-13; Sipeed_M1 with kendryte-k210
lcd.init(type=1, freq=15000000, color=lcd.BLACK)
初始化 LCD 屏幕显示
参数
type: LCD 的类型(保留给未来使用):
0: None
1: lcd shield(默认值)
type 是键值参数,必须在函数调用中通过写入 type= 来显式地调用
freq: LCD (实际上指 SPI 的通讯速率) 的频率
color: LCD 初始化的颜色, 可以是 16 位的 RGB56 5 颜色值,比如 0xFFFF; 或者 RGB888 元组, 比如 (236, 36, 36), 默认 lcd.BLACK
lcd.clear()
将液晶屏清空为黑色或者指定的颜色。
参数
color: LCD 初始化的颜色, 可以是 16 位的 RGB565 颜色值,比如 0xFFFF; 或者 RGB888 元组, 比如 (236, 36, 36)
lcd.freq(freq)
设置或者获取 LCD (SPI) 的频率
Paremeters
freq: LCD (SPI) 的频率
Return
LCD 的频率
在 v0.3.1 之后已经被舍弃, 请使用lcd.rotation 和 lcd.invert代替, 如非必要请勿使用, 接口仍会 被保留用于调试使用
设置屏幕方向, 以及是否镜像等
参数
dir: 正常情况下推荐 lcd.YX_LRUD 和 lcd.YX_R LDU, 另外还有其它值,交换 XY 或者 LR 或者 DU即可
#零基础学MaixPy之LCD液晶屏 #实验程序之三:LCD液晶显示器彩条测试 import lcd,image, time lcd.init(type=1, freq=15000000) lcd.init(type=2, freq=20000000) lcd.init(type=1, width=320, height=240, invert=True, freq=20000000) img = image.Image(size=(240,240)) img.draw_rectangle(0,0,30, 240, fill=True, color=(0xff, 0xff, 0xff)) img.draw_rectangle(30,0,30, 240, fill=True, color=(250, 232, 25)) img.draw_rectangle(60,0,30, 240, fill=True, color=(106, 198, 218)) img.draw_rectangle(90,0,30, 240, fill=True, color=(98, 177, 31)) img.draw_rectangle(120,0,30, 240, fill=True, color=(180, 82, 155)) img.draw_rectangle(150,0,30, 240, fill=True, color=(231, 47, 29)) img.draw_rectangle(180,0,30, 240, fill=True, color=(32, 77, 158)) img.draw_rectangle(210,0,30, 240, fill=True, color=(27, 28, 32)) lcd.display(img) count = 500 while count > 0: t = time.ticks_ms() lcd.display(img) print(time.ticks_ms() - t) count -= 1
#零基础学MaixPy之LCD液晶屏 #实验程序之四:测试Microphone阵列算法 from Maix import MIC_ARRAY as mic import lcd lcd.init() mic.init() while True: imga = mic.get_map() b = mic.get_dir(imga) a = mic.set_led(b,(0,0,255)) imgb = imga.resize(160,160) imgc = imgb.to_rainbow(1) a = lcd.display(imgc) mic.deinit()
串口输出 >>> Microphone Array Arithmetic, Developed by Canaan, Port by Sipeed
True
#零基础学MaixPy之LCD液晶屏 #实验程序之五:图形与hello maixpy import lcd, time import image bg = (236,36,36) lcd.init(freq=15000000) lcd.direction(lcd.YX_RLDU) img = image.Image() img.draw_string(60, 100, “hello maixpy”, scale=2) img.draw_rectangle((120,120,30,30)) img.draw_circle((150,140, 80)) img.draw_cross((250,40)) img.draw_arrow((250,200,20,200), color=(236,36,36)) lcd.display(img)
串口输出>>> {“w”:320, “h”:240, “type”=“rgb565”, “size”:153600}
{“w”:320, “h”:240, “type”=“rgb565”, “size”:153600}
{“w”:320, “h”:240, “type”=“rgb565”, “size”:153600}
{“w”:320, “h”:240, “type”=“rgb565”, “size”:153600}
{“w”:320, “h”:240, “type”=“rgb565”, “size”:153600}
MicroPython v0.5.0-31-gd3e71c0 on 2020-03-13; Sipeed_M1 with kendryte-k210
#零基础学MaixPy之LCD液晶屏 #实验程序之六:碰碰球演示 import image, lcd lcd.init(freq=20000000) i = 0 dir = 1 while(True): img = image.Image(copy_to_fb=1) img.clear() img.draw_rectangle(i,50,50,50) lcd.display(img) if dir: i += 5 if i==270: dir = 0 else: i -= 5 if i==0: dir = 1
这篇文档以 SIPEED MaixDuino 的使用为示例说明,并且大部分内容通用于 K210 系列开发板,可供购入 K210 系列顾客参考使用。
本文从芯片架构,到开发板选型,再到软件开发环境的搭建介绍了关于K210的基础ABC,这块KPU其实有很多有意思的应用,我会在后面的文章中进行更多介绍,包括SDK中各个模块的使用方式,以及如何将自己的AI模型部署到K210上面去运行。
勘智K210采用RISC-V处理器架构,具备视听一体、自主IP核与可编程能力强三大特点,支持机器视觉与机器听觉多模态识别,可广泛应用于智能家居、智能园区、智能能耗和智能农业等场景。
MaixCube 是基于Sipeed M1n 模块(主控:Kendryte K210)开发的一款集学习开发和商用一体的人脸识别产品。
MaixPy 是将 Micropython 移植到 K210 的一个项目,不但支持 MCU 常规操作, 还集成了硬件加速的 AI 机器视觉和麦克风阵列相关的算法。