查看: 127|回复: 39

MicroPython动手做(37)——驱动LCD与图文显示

[复制链接]
  • TA的每日心情
    开心
    2020-7-4 08:25
  • 签到天数: 382 天

    [LV.9]以坛为家II

    发表于 2020-6-30 18:02 | 显示全部楼层 |阅读模式
    1、在屏幕绘制文本信息



    [mw_shl_code=arduino,true]#MicroPython动手做(37)——驱动LCD与图文显示
    #在屏幕绘制文本信息

    import mixno
    import lcd
    import image


    lcd.init(freq=15000000,color=0x0000)
    image = image.Image()
    image = image.draw_string(0,0,"MixPY",(255,0,0),5,mono_space=0)
    lcd.display(image)
    [/mw_shl_code]

  • TA的每日心情
    开心
    2020-7-4 08:25
  • 签到天数: 382 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-6-30 18:09 | 显示全部楼层
    01.jpg
  • TA的每日心情
    开心
    2020-7-4 08:25
  • 签到天数: 382 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-6-30 18:10 | 显示全部楼层
    MxiPY 实验图形编程

    02.jpg
  • TA的每日心情
    开心
    2020-7-4 08:25
  • 签到天数: 382 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-6-30 18:28 | 显示全部楼层
    2、LCD_显示驱动(import lcd)
    屏幕显示2.8‘’ LCD 240*320驱动配置

    (1)初始化显示

    [mw_shl_code=arduino,true]lcd.init(type=1, freq=15000000, color=lcd.BLACK)[/mw_shl_code]

    初始化LCD屏幕显示

    参数:
    type:LCD的类型(保留给未来使用):
    0: None
    1: lcd shield(默认值)

    freq:LCD(实际上指SPI的通讯速率) 的频率

    color:LCD初始化的颜色:
    RGB56516 位的颜色值,比如0xFFFF
    RGB888元组, 比如(236, 36, 36)
    系统color常量,默认lcd.BLACK

    返回:
    None

    (2)注销驱动

    [mw_shl_code=arduino,true]lcd.deinit()[/mw_shl_code]

    注销LCD驱动,释放I/O引脚

    参数:


    返回:
    None

  • TA的每日心情
    开心
    2020-7-4 08:25
  • 签到天数: 382 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-6-30 18:40 | 显示全部楼层
    (3)获取分辨率宽度

    [mw_shl_code=arduino,true]lcd.width()[/mw_shl_code]

    获取LCD的宽度(水平分辨率)

    参数:


    返回:
    int类型的屏幕分辨率宽度

    (4)获取分辨率高度

    [mw_shl_code=arduino,true]lcd.height()[/mw_shl_code]

    获取LCD的高度(垂直分辨率)

    参数:


    返回:
    int类型的屏幕分辨率高度

    (5)获取/设置频率

    [mw_shl_code=arduino,true]lcd.height()[/mw_shl_code]

    设置或者获取LCD(SPI) 的频率

    参数:
    freq: LCD(SPI) 的频率

    返回:
    int类型的屏幕 (SPI) 的频率

  • TA的每日心情
    开心
    2020-7-4 08:25
  • 签到天数: 382 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-6-30 18:48 | 显示全部楼层
    (6)显示图像
    [mw_shl_code=arduino,true]lcd.display(image, roi=Auto)[/mw_shl_code]
    在液晶屏上显示一张image(GRAYSCALE或RGB565)

    参数:
    image:显示图像image(GRAYSCALE或RGB565)
    roi :一个感兴趣区域的矩形元组(x, y, w, h),若未指定,即为图像矩形
    若 roi 宽度小于lcd宽度,则用垂直的黑色边框使 roi 居于屏幕中心(即用黑色填充未占用区域)
    若 roi 宽度大于lcd宽度,则 roi 居于屏幕中心,且不匹配像素不会显示(即液晶屏以窗口形态显示 roi 的中心)
    若 roi 高度小于lcd高度,则用垂直的黑色边框使 roi 居于屏幕中心(即用黑色填充未占用区域)
    若 roi 高度大于lcd高度,则 roi 居于屏幕中心,且不匹配像素不会显示(即液晶屏以窗口形态显示 roi 的中心)

    返回:
    None
    roi 是键值参数,必须在函数调用中通过写入 roi= 来显式地调用

    (7)屏幕清空
    [mw_shl_code=arduino,true]lcd.clear(color)[/mw_shl_code]
    将液晶屏清空为黑色或者指定的颜色

    参数:
    color :将屏幕清空为黑(默认值)或者指定的颜色
    RGB56516 位的颜色值,比如0xFFFF
    RGB888元组, 比如(236, 36, 36)
    系统color常量,默认lcd.BLACK

    返回:
    None

    (8)设置屏幕方向
    [mw_shl_code=arduino,true]lcd.rotation(dir)[/mw_shl_code]
    设置LCD屏幕方向

    参数:
    dir: 取值范围 [0,3], 从0到3依次顺时针旋转

    返值:
    当前方向,取值[0,3]

  • TA的每日心情
    开心
    2020-7-4 08:25
  • 签到天数: 382 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-6-30 18:55 | 显示全部楼层
    (9)设置镜面显示
    [mw_shl_code=arduino,true]lcd.mirror(invert)[/mw_shl_code]
    设置LCD是否镜面显示

    参数:
    invert: 是否镜面显示,True或者False

    返值:
    当前设置,是否镜面显示,返回True或者False

    (10)显示文本
    [mw_shl_code=arduino,true]lcd.draw_string(x, y, text, text_color, color)[/mw_shl_code]
    在液晶屏上显示文本字符(不支持中文)

    参数:
    *x,y:图像中的(x, y)位置开始绘制,您可以单独传递x,y,也可以作为元组(x,y)传递

    text :写入图像的字符串。\n,\r, 和\r\n结束符将光标移至下一行
    text_color:文本字符颜色
    RGB56516 位的颜色值,比如0xFFFF
    系统color常量,默认lcd.RED
    color:屏幕背景颜色
    RGB56516 位的颜色值,比如0xFFFF
    系统color常量,默认lcd.BLACK

    返回:
    None

    (11)系统默认常量color颜色:
    lcd.BLACK0x0000 黑色
    lcd.NAVY0x000F 深蓝色
    lcd.DARKGREEN0x03E0 深绿色
    lcd.DARKCYAN0x03EF 深青色
    lcd.MAROON0x7800 褐红色
    lcd.PURPLE0x780F 紫色
    lcd.OLIVE0x7BE0 橄榄色
    lcd.LIGHTGREY0xC618 浅灰色
    lcd.DARKGREY0x7BEF 深灰色
    lcd.BLUE0x001F 蓝色
    lcd.GREEN0x07E0 绿色
    lcd.CYAN0x07FF 青色
    lcd.RED0xF800 红色
    lcd.MAGENTA0xF81F 洋红色
    lcd.YELLOW0xFFE0 黄色
    lcd.WHITE0xFFFF 白色
    lcd.ORANGE0xFD20 橙色
    lcd.GREENYELLOW0xAFE5 绿黄色
    lcd.PINK0xF81F 粉红色

  • TA的每日心情
    开心
    2020-7-4 08:25
  • 签到天数: 382 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-6-30 19:52 | 显示全部楼层
    3、调整显示文本字号与颜色


    [mw_shl_code=arduino,true]#MicroPython动手做(37)——驱动LCD与图文显示
    #调整显示文本字号与颜色

    import mixno
    import lcd
    import image


    lcd.init(freq=15000000,color=0x0000)
    image = image.Image()
    image = image.draw_string(47,30,"MicroPython",(0,220,0),5,mono_space=0)
    image = image.draw_string(45,100,"MixPY",(255,0,0),11,mono_space=0)
    lcd.display(image)[/mw_shl_code]
  • TA的每日心情
    开心
    2020-7-4 08:25
  • 签到天数: 382 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-6-30 19:53 | 显示全部楼层
    03.jpg
  • TA的每日心情
    开心
    2020-7-4 08:25
  • 签到天数: 382 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-6-30 19:55 | 显示全部楼层
    MxiPY 实验图形编程

    04.jpg
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    求助,用l298n模块控制电机转速,老是无缘无故的转动怎么...
    求助,用l298n模块控制电
    代码如下:int state1=0; int state2=0; void setup() { pinMode(9,OUTPUT); pinMode(
    【干货分享】mega2560原理图PCB图纸altium designer18
    【干货分享】mega2560原理
    分享一下mega2560的板子 AD版本 **** 本内容被作者隐藏 **** ergo
    绑定github账号,免费增加设备额度
    绑定github账号,免费增加
    免费增加blinker设备额度的方法: 1.登录点灯管理台( https://admin.diandeng.tech/
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表