MaixCAM MaixPy 屏幕使用

更新历史
日期 版本 作者 更新内容
2024-03-31 1.0.0 neucrack 初版文档

简介

MaixPy 提供了display模块,可以将图像显示到屏幕上,同时,也可以将图像发送到 MaixVision 显示,方便调试和开发。

API 文档

本文介绍常用方法,更多 API 请看 API 文档的 display 部分。

使用屏幕

  • 导入display模块:
from maix import display
  • 创建一个Display对象:
disp = display.Display()
  • 显示图像:
disp.show(img)

这里img对象是maix.image.Image对象,可以通过camera模块的read方法获取,也可以通过image模块的load方法加载文件系统中的图像,也可以通过image模块的Image类创建一个空白图像。

比如:

from maix import image, display

disp = display.Display()
img = image.load("/root/dog.jpg")
disp.show(img)

这里需要先把dog.jpg文件传到设备的/root目录下。

显示文字:

from maix import image, display

disp = display.Display()
img = image.Image(320, 240)
img.draw_rect(0, 0, disp.width(), disp.height(), color=image.Color.from_rgb(255, 0, 0), thickness=-1)
img.draw_rect(10, 10, 100, 100, color=image.Color.from_rgb(255, 0, 0))
img.draw_string(10, 10, "Hello MaixPy!", color=image.Color.from_rgb(255, 255, 255))
disp.show(img)

从摄像头读取图像并显示:

from maix import camera, display, app

disp = display.Display()
cam = camera.Camera(320, 240)
while not app.need_exit():
    img = cam.read()
    disp.show(img)

这里用了一个while not app.need_exit(): 是方便程序在其它地方调用app.set_exit_flag()方法后退出循环。

调整背光亮度

在系统的设置应用中可以手动调整背光亮度,如果你想在程序中调整背光亮度,可以使用set_backlight方法,参数就是亮度百分比,取值范围是 0-100:

disp.set_backlight(50)

注意,程序退出回到应用选择界面后会自动恢复到系统设置的背光亮度。

显示到 MaixVision

在使用 MaixVision 运行代码时,能够将图像显示到 MaixVision 上,方便调试和开发。

在调用show方法时,会自动压缩图像并发送到 MaixVision 显示。

当然,如果你没有屏幕,或者为了节省内存不想初始化屏幕,也可以直接调用maix.dispaly对象的send_to_maixvision方法发送图像到 MaixVision 显示。

from maix import image,display

img = image.Image(320, 240)
disp = display.Display()

img.draw_rect(0, 0, img.width(), img.height(), color=image.Color.from_rgb(255, 0, 0), thickness=-1)
img.draw_rect(10, 10, 100, 100, color=image.Color.from_rgb(255, 0, 0))
img.draw_string(10, 10, "Hello MaixPy!", color=image.Color.from_rgb(255, 255, 255))
display.send_to_maixvision(img)

更换其它型号屏幕

如果想换不同尺寸的屏幕,可以到商城咨询购买。
对于 MaixCAM,目前支持 4 款屏幕:

  • 2.3寸 552x368 分辨率电容触摸屏: MaixCAM 带的屏幕。
  • 2.4寸 640x480 分辨率电容触摸屏: MaixCAM-Pro 带的屏幕。
  • 5寸 854x480 分辨率无触摸屏: 注意无触摸,类似手机屏幕大小。
  • 7寸 1280x800 分辨率电容触摸屏:7寸大屏,适合更多需要固定屏幕观看场景。

不同屏幕的刷新图像时间差别在1~5毫秒,差别不是很大,主要的区别在于图像分辨率大了图像处理时间的差别。

更换屏幕需要同时修改配置文件,否则可能刷新时序不同会导致烧屏(屏幕留下显示过的影子),所以需要注意,最好严格按照下面的步骤操作,如果出现了烧屏的问题也不要紧张,断电放置一晚上一般会恢复。

  • 按照烧录系统的文档烧录系统,烧录完成后会有 U 盘出现。
  • 打开 U 盘内容,看到有一个 uEnv.txt 文件。
  • 编辑uEnv.txt文件,修改pannel键值,取值如下:
    • 2.3寸(MaixCAM 自带屏幕):st7701_hd228001c31
    • 2.4寸(MaixCAM-Pro 自带屏幕): st7701_lct024bsi20
    • 5寸:st7701_dxq5d0019_V0 早期(2023年)测试屏幕st7701_dxq5d0019b480854
    • 7寸:mtd700920b,早期(2023年)测试屏幕用 zct2133v1
  • 保存uEnv.txt,并且点击弹出 U 盘,不要只接断电,否则可能文件丢失。
  • 按下板子的reset按键,或者重新上电启动。

以上的方式最保险,保证上电前已经设置好了屏幕型号,如果你已经烧录好系统了,也可以修改系统的/boot/uEnv.txt文件然后重启。