wondermk可以直接获取图像么?还是说需要另外烧录程序

:light_bulb: 建议使用本模板发帖,也可以自由编辑,但必须完整描述产品及问题(至少包含:产品名称、版本、问题描述)。

产品型号 / 套件:wondermk

可以的,WonderMK 出厂就具备摄像头取图能力,正常使用不需要另外烧录程序,分两种情况说明:

  1. 出厂直接用:您购买带 SD 卡版本时,SD 卡出厂已烧录好镜像(CanMV_WonderMK_Hiwonder_micropython_local_nncase),插入 TF 卡上电即可。首次开机按屏幕提示完成语言选择/配网后进入 GUI 功能界面,在「AI大模型」功能(需先完成小智AI设备绑定)里使用「场景理解」玩法,直接对模块说“拍照看看前面有什么”或“描述一下你前方看到的东西”,模块就会启动摄像头捕获一张实时图像并短暂显示在屏幕上,无需任何烧录操作。
  2. 自己编程取图:也不用重新烧录固件。用 Type-C 数据线连接电脑,打开 CanMV IDE K230 软件,把官方例程(如「多媒体课程」里的 Sensor.py,或课程附带的按键拍照、触摸拍照示例)拖入代码编辑区点击运行,即可在线获取并显示摄像头图像;需要脱机运行的话,通过菜单“工具 → 保存当前打开的脚本为(main.py)到CanMV Cam”保存,之后单独上电就会自动运行该程序。

只有一种情况才需要“烧录”:您想恢复到出厂系统,或模块开机异常无法进入界面时,才按快速使用手册中的“镜像烧录”章节重新烧录 SD 卡镜像。如果您开机后看不到摄像头画面或程序运行报错,可以把开机界面截图和报错信息发上来,我们再帮您排查。

相关帖子:


若您觉得本回复有帮助,可以点击下方按钮将其标记为解决方案。

我当前的需求是将wondermk获取的图像信息发送给与主机通信的其他主机,这里是必须借助CanMV IDE K230 软件吗?另外,我的主机是RK3588。

不需要。CanMV IDE K230 只是开发/调试用的上位机工具,图像传给 RK3588 主机靠的是你自己程序里实现的通信,运行时并不依赖 IDE。分两步说明:

  1. CanMV IDE 只用于开发调试阶段:用它把程序写入模块——在线运行,或点击“工具 → 保存当前打开的脚本为(main.py)到CanMV Cam”保存为脱机程序。保存为 main.py 之后,模块单独上电就会自动运行该程序,与电脑和 IDE 都没有关系。

  2. 把图像发给 RK3588 需要在 WonderMK 上写一个 MicroPython 程序,包含“取图”和“发送”两部分:

    • 取图:参考官方例程,如「多媒体课程」的 Sensor 例程(sensor.snapshot() 获取图像帧),以及「触摸拍照」例程(用 img.save() 把图像保存为 JPEG 文件,例如 /sdcard/photo_xxx.jpg)。
    • 发送:按你的硬件连接任选一种:
      • 串口(UART):参考「基础课程」里的 UART 例程。官方例程使用 UART3,TX=GPIO50、RX=GPIO51,波特率 115200,把图像数据通过串口发给 RK3588 的串口,RK3588 端写对应的串口接收程序即可。知识库中也收录了 WonderMK 的 I2C/UART 外部通信协议规范(默认 I2C 从机地址 0x5F、mailbox v2 窗口),供主机端做协议对接参考。
      • 网络(WiFi/TCP):参考「网络基础课程」,让模块以 STA 模式连接 WiFi,用 TCP 客户端把图像数据发送给 RK3588 上运行的服务器程序。图像数据量较大,若需要实时或较高帧率,建议优先采用 WiFi 网络方式。

简单总结:CanMV IDE 的作用只是把程序装进模块,脱机运行时它不参与;WonderMK 采集的图像是经由你程序中实现的串口/网络通道发给 RK3588 的。

如果你告诉我打算用串口还是有线/无线网络、图像分辨率与实时性要求,我可以再给出更具体的参考例程。


若您觉得本回复有帮助,可以点击下方按钮将其标记为解决方案。

使用串口,我当前手里只有官方的nexarm资料,这里我需要的是视频流,不是单帧图片。

可以的,NexArm 官方资料里正好包含 WonderMK 的对外通信协议,可以基于它来对接。但需要先说明一点:这套官方协议目前没有「通过串口直接传 JPEG 图片文件」的现成通道,图像回传部分需要您在 WonderMK 上自己写 MicroPython 程序。分几部分说明:

  1. 协议里有什么(您手里的 NexArm 资料可查)

    • 在 NexArm 出厂程序的 K230_MCP_Test_Demo/protocol 目录下有 wondermk_i2c_uart_protocol.md,定义了 WonderMK 的 I2C/UART 对外协议:帧格式为 AA 55 + Len(2) + Ctrl + Func + Txn + Payload + XOR,支持分包/重组、RSP 响应和 RPT 主动上报。
    • 相机/媒体命令:CMD_MEDIA_CAMERA_SNAPSHOT (0x81) 触发拍照并保存(照片默认存到 /sharefs/media/photos,默认前缀 image_),另有设置照片前缀(0x82)、删除照片(0x83)等命令。
    • 但协议的上报内容主要是检测结果(目标框 0x72、文字 0x73、OCR 0x74、颜色 0x75、巡线 0x76 等)和心跳/状态,没有定义“原始图像数据”作为 payload 的传输通道。
  2. 把图像发到 RK3588,需要在 WonderMK 上自己写程序(取图 + 发送两步)

    • 取图:参考 WonderMK「多媒体课程」的 Sensor 例程(sensor.snapshot() 获取图像帧)和「触摸拍照」例程(img.save() 把图像保存为 JPEG 文件)。
    • 发送:参考「基础课程」的 UART 例程——官方例程用的就是 UART3,TX=GPIO50、RX=GPIO51,波特率 115200(UART.UART3 + FPIOA 映射 + u1.write()/u1.read())。把 JPEG 数据分块通过 u1.write() 发出,发每块前先带一个长度头,RK3588 端按长度接收并拼接成完整图片文件。建议两端约定好帧头/长度/校验字段,避免粘包和丢包。
  3. 串口带宽提醒:115200bps 理论约 11.5 KB/s,一张 320x240 的 JPEG 通常有几十 KB,传一张照片约需数秒,适合「按需拍照回传」;如果需要实时视频流或较高帧率,串口带宽会不够,建议改用 WiFi/TCP 通道。

  4. RK3588 接收端:用 pyserial 或系统串口接口读取即可。接线注意 WonderMK 的 UART 为 TTL 电平,TX 接 RK3588 的 RX(交叉)、RX 接其 TX,并保证共地。

如果您告诉我目标分辨率、回传频率(单张/连续)以及 RK3588 上打算使用的串口引脚,我可以给出更具体的程序框架。


若您觉得本回复有帮助,可以点击下方按钮将其标记为解决方案。

我在NexArm出厂程序并没有看到你所说的Demo目录,这里只有对机械臂的控制部分。关于wondermk相机只有AI视觉玩法这一个部分,但是我发现其中的输出是模型处理后的结果给机械臂来运动,而不是原始的视频流。这里我的需求是获取视频流 ,我没有看到任何传输接口在教程当中

正在为您安排官方支持人员处理。

若需要我继续协助,可以回复或@我。 @hiwonder_wanchenccc

本帖所在的【技术支持】板块主要致力于解决官方产品的基础故障和默认功能答疑。如果您需要图像回传,可以在CanMV IDE K230 软件获取。关于获取的图像信息发送给与主机通信的其他主机二次开发问题,后续请您移步至【综合讨论】或 【开发讨论】板块,那里有更多开发者可以一起交流。