【RISC-V 开发】 k230摄像头功能调试记录📄

12 天前(已编辑)
/ ,
1

阅读此文章之前,你可能需要首先阅读以下的文章才能更好的理解上下文。

【RISC-V 开发】 k230摄像头功能调试记录📄

没想到开个摄像头开了我两天时间 ...


调试摄像头功能出bug,如下:

  • reset 后,计算机识别不了设备
  • 启动 sensor sensor.run() 后大概率崩掉
  • 写入不了 main.py

调试过程

初始测试验证

官方demo都跑不起来?

# 官方示例代码
import time, os, sys
from media.sensor import *
from media.display import * 
from media.media import * 
sensor = Sensor() 
sensor.reset() 
sensor.set_framesize(Sensor.FHD) #设置帧大小FHD(1920x1080),默认通道0
sensor.set_pixformat(Sensor.RGB565) #设置输出图像格式,默认通道0

Display.init(Display.VIRT, sensor.width(), sensor.height())
MediaManager.init() #初始化media资源管理器
sensor.run() #启动sensor
clock = time.clock()

while True:

    clock.tick()
    img = sensor.snapshot() #拍摄一张图
    Display.show_image(img) #显示图片
    print(clock.fps()) #打印FPS
板子直接卡掉,要插拔才能重新识别

调试尝试

增加延时缓解

一开始认为是cpu跑满了,加个sleep(以前在stm上发生过类似问题)

while True:
  time.sleep(3)
  ...
首次运行成功但后续仍崩溃,说明存在资源竞争问题而非单纯性能不足?(后面试了也有几次能跑起来)

尝试二:降低图像参数

官方用例默认是拉满的,查看文档调整为 x480灰度图

sensor.set_framesize(Sensor.VGA) 
sensor.set_pixformat(Sensor.GRAYSCALE)
没什么卵用

版本降级和其他测试

  1. 重新烧录镜像(重装玄学没用)
  2. 测试外设模块(按键/音频是正常)
  3. 尝试OpenMV框架(同现崩溃现象)
  4. 降级版本试试。 (就成功了?!) ✔

之后试着写 main.py也ok了,看来是这个新版本的镜像有问题,花了不是时间在上面 ...

重新调试出bug



估计就是没有释放资源,加个 try...export 释放资源

try:
  ...
export:
  ...
finally:
    sensor.stop()
    Display.deinit()
    os.exitpoint(os.EXITPOINT_ENABLE_SLEEP)
    time.sleep_ms(100)
    MediaManager.deinit()

后续

既然摄像头能用了,后面准备弄个 CV 试试水。查阅了一下官方文档,貌似官方弄了个库,对onnx 有不错的支持。

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...