【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)
版本降级和其他测试
- 重新烧录镜像(重装玄学没用)
- 测试外设模块(按键/音频是正常)
- 尝试OpenMV框架(同现崩溃现象)
- 降级版本试试。 (就成功了?!) ✔

之后试着写 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
有不错的支持。