嘉楠科技
直播中

李华

8年用户 1439经验值
私信 关注
[问答]

display初始化模式为ST7701,两个摄像头没法同时显示是怎么回事?

情况一:display初始化为ST7701,两个摄像头通道0设置为分辨率为 120x80,都显示到LAYER_VID
EO1层,报错:异常: ''NoneType' object has no attribute 'del''
warning: sensor not call run()
warning: sensor not call run()
did't call Display.init()
MPY: soft reboot
无法显示到附赠的MINI屏和ide
情况二:保持前两个条件不变,一个在LAYER_VIDEO1层,一个在LAYER_VIDEO2层,无法显示到MINI
屏和ide,报错:异常: 'Bind to video layer enable rotation 90/180 only support
Display.LAYER_VIDEO1'
情况三:改为一个LAYER_VIDEO1层,一个LAYER_OSD0,无法显示到MINI屏和ide,
报错:异常: 'osd layer not support pix_format (31)'

回帖(1)

贾桂林

2025-3-11 18:14:01

根据你描述的情况,问题的核心可能在于显示初始化、摄像头配置以及图层绑定等方面的设置。以下是对两个情况的分析和可能的解决方案:


情况一分析:



  1. 错误信息'NoneType' object has no attribute 'del' 表明在某个地方尝试对一个 None 对象进行操作,可能是由于某个对象未正确初始化或绑定。

  2. sensor not call run():摄像头传感器未正确启动,可能是因为 run() 方法未被调用。

  3. 未调用 Display.init():显示模块未正确初始化,导致无法显示。


可能原因



  • 显示模块未正确初始化。

  • 摄像头传感器未正确启动。

  • 两个摄像头尝试绑定到同一个图层(LAYER_VIDEO1),导致冲突。


解决方案



  • 确保在代码中正确调用了 Display.init() 以初始化显示模块。

  • 确保每个摄像头都调用了 run() 方法以启动传感器。

  • 尝试将两个摄像头分别绑定到不同的图层,例如一个绑定到 LAYER_VIDEO1,另一个绑定到 LAYER_VIDEO2


情况二分析:



  1. 错误信息Bind to video layer enable rotation 90/180 only support 表明在绑定视频图层时,仅支持 90 度或 180 度的旋转,可能是由于旋转设置不正确。


可能原因



  • 在绑定图层时,旋转设置不正确或不被支持。

  • 图层绑定冲突或配置错误。


解决方案



  • 检查摄像头和图层绑定时是否设置了旋转角度,确保旋转角度为 90 度或 180 度,或者不设置旋转。

  • 确保每个摄像头绑定到不同的图层,并且图层配置正确。


通用建议:



  1. 检查初始化顺序:确保显示模块(Display.init())在摄像头传感器启动之前正确初始化。

  2. 图层绑定:确保每个摄像头绑定到不同的图层,避免冲突。

  3. 旋转设置:如果使用了旋转功能,确保旋转角度为 90 度或 180 度,或者不设置旋转。

  4. 调试:逐步调试代码,确保每个模块(显示、摄像头、图层)都正确初始化和配置。


示例代码结构:


import display
import sensor

# 初始化显示模块
display.init(type=display.ST7701)

# 初始化摄像头传感器
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)  # 设置分辨率
sensor.run(1)  # 启动摄像头传感器

# 绑定摄像头到图层
display.set_layer(display.LAYER_VIDEO1)
display.bind_camera(sensor.get_camera(0))

display.set_layer(display.LAYER_VIDEO2)
display.bind_camera(sensor.get_camera(1))

# 启动显示
display.start()

总结:


问题可能出在显示初始化、摄像头启动、图层绑定或旋转设置上。通过确保每个模块正确初始化和配置,并避免图层冲突,应该可以解决无法同时显示的问题。如果问题仍然存在,建议逐步调试代码,检查每个步骤是否正确执行。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分