v1.1.0

v1.1.0 让 OpenMV IDE 具备了固件感知能力:它基于 Qt Creator 4.0.2 构建,现在能在连接时检测出过期的 OpenMV Cam,并通过串口引导加载程序自动升级其固件,新增了对全新 Cortex-M7 OpenMV Cam 的支持,并将 General Messages 窗格变成了一个正式的 Serial Terminal。本版本更改了一些默认行为(固件自动升级和 Python 文件过滤器),用户应当注意;详见下方的 破坏性变更

亮点

  • 固件自动升级 —— 在连接时,IDE 会检测出过期的 OpenMV Cam,并通过串口引导加载程序刷写捆绑的固件,同时提供一个一并擦除内部文件系统的选项。

  • Cortex-M7 OpenMV Cam 支持 —— 全新的基于 STM32F769 的板子(OMV7)现已与现有的 Cortex-M4 板子(OMV2)一同获得支持,提供按板区分的固件和自动检测。

  • 解砖恢复 —— 如果未找到摄像头,IDE 可以在一台变砖的摄像头重新接入后,强制为其刷写匹配的固件。

  • 串口终端(Serial Terminal) —— General Messages 窗格现在变成了一个深色主题的 Serial Terminal,拥有 100000 行回滚缓冲,并在有输出时弹出。

  • 非阻塞式连接/断开 —— 连接、重连和关闭现在都会异步运行并带有进度对话框,因此 IDE 不再卡死。

  • 实时二值和灰度预览 —— 帧缓冲区查看器除了 RGB565 和 JPEG 之外,还能渲染 1 位和灰度图像。

新特性

  • 固件自动升级。 当已连接的 OpenMV Cam 报告的固件版本比捆绑的 firmware.txt 更旧时,IDE 会启动引导加载程序,擦除闪存扇区,分块编程 firmware.bin 并带有进度对话框,然后复位摄像头。用户可以选择在升级过程中一并擦除内部文件系统。(a175bff3950375ee95502177f3ca871bfb4830eb9e0dc552803018889bc38fb047581ed5

  • 解砖恢复路径。 如果未找到 OpenMV Cam,IDE 会询问是否连接了一台变砖的摄像头,让你选择板子类型,并在设备重新接入后强制刷写匹配的固件。(a175bff3930eb9e0dc

  • 保存脚本和复位操作。 新增的 Tools 菜单项可将当前脚本保存到 OpenMV Cam 的闪存驱动器(Save script to OpenMV Cam)并复位摄像头(Reset OpenMV Cam);Stop 还获得了一个 Ctrl+T 键盘快捷键。(9fc3dfa5aa175bff39889bc38fb

  • 更新通知和本地文档。 IDE 会在启动时检查 openmv.io 是否有更新的 IDE 版本,并显示下载通知。Docs Help 操作现在会打开本地捆绑的 HTML 文档(html/index.html),引脚图操作会打开捆绑的引脚图图像(html/_images/pinout.png)而非网站。(a175bff3950375ee95

  • 二值和灰度帧缓冲区。 帧缓冲区查看器现在除了 RGB565 和 JPEG 之外,还能渲染二值(1 位)和灰度图像,并且可以从工具栏实时开关帧缓冲区;较旧的 JPEG 压缩工具栏按钮已被隐藏,改用这个开/关切换。(a175bff39

  • 新增和更新的示例。 新增了一个 CPU 超频示例(最高 216MHz)、一个改进的多客户端 MJPEG WiFi 流式传输器、一个 FPS 测试,以及一个适配 OV7725 传感器的彩条测试。(a175bff3932dc31962502177f3c

其他变更与改进

  • 串口终端。 General Messages 窗格被重新用作一个 Serial Terminal,具有深色背景、提升的状态栏优先级、100000 行回滚缓冲,且不换行。当摄像头打印输出时它会弹出并闪烁。(9fc3dfa5a

  • 非阻塞式连接和断开。 连接和断开经过重做,现已改为非阻塞式并带有进度对话框以及干净的异步关闭,因此 IDE 在摄像头繁忙时不再卡死,而是显示 Busy... please wait...。(502177f3ca175bff396275d8855234f76389

  • 平滑后的 FPS 读数。 FPS 读数现在是对最近若干帧求平滑滑动平均的结果,而非瞬时值,并带有一个工具提示说明它可能与摄像头 FPS 不同。(a175bff39889bc38fb

  • 深色主题润色。 深色主题获得了在各编辑器和窗格中带箭头图像的自定义样式滚动条、Inkpot 风格中深色主题的搜索结果和作用域高亮,以及 Find 工具栏中的白色文字。(9fc3dfa5a94d8c41f19d8683355

  • 面向 Python 的文件默认值。 Find in Files 现在将其文件过滤器默认为 *.py,文件打开对话框则显示所有文件,以契合 MicroPython 开发而非 C++ 开发。(94d8c41f1a175bff39

缺陷修复

  • 改进了 macOS 上的串口处理(过滤为名称中包含 cu 的端口)和 Linux 上的串口处理(更清晰的权限被拒绝提示,建议使用 sudo adduser <user> dialout),抑制了一个 SSL 警告,将引导加载程序对话框设为应用模态,并调整了引导加载程序的时序和超时以提高可靠性。(a175bff39552803018a871bfb4830eb9e0dc

  • IDE 现在会在启动时没有打开任何文档的情况下自动打开 helloworld.py 示例,并可靠地关闭启动画面,修复了编辑窗口和启动状态相关的问题。(a175bff399d8683355502177f3c

平台与工具支持

  • Qt Creator 基础版本: 4.0.2。

  • OpenMV IDE 版本: 从 1.0.0 提升至 1.1.0。(50375ee95

  • 新板子: Cortex-M7 OpenMV Cam(STM32F769,OMV7)现已与 Cortex-M4 OpenMV Cam(STM32F427,OMV2)一同获得支持,提供按板区分的固件目录,并通过 boards.txt 进行板标识字符串的自动检测。(a175bff39

  • 捆绑固件: OMV2OMV7 两种板子的固件均更新至 1.7.0,随后又更新至 1.8.0;引导加载程序的最低/兼容固件版本为 1.6.0。(502177f3c32dc31962a175bff39

  • Windows USB 驱动: 捆绑了经过数字签名的 Windows USB 驱动文件(openmvpybcdc.inf/.cat),并将驱动目录与 IDE 一起打包。(047581ed5

破坏性变更

v1.1.0 中对用户可见的工作流和行为变更:

  • 连接时自动升级固件。 当已连接的 OpenMV Cam 固件比捆绑的 firmware.txt 版本更旧时,IDE 会在允许你继续之前提示你升级(并可选地擦除内部文件系统)。在擦除或编程步骤中取消可能会使摄像头变砖,直到它重新接入并被重新刷写为止。

  • 更改的文件默认值。 Find in Files 的默认文件过滤器从 *.cpp,*.h 更改为 *.py,文件打开对话框现在显示所有文件,而非按 MIME 类型分类的过滤器。