v1.7.0¶
v1.7.0 引入了 cpufreq 模块(CPU 频率 / 超频控制)、MicroPython 的 os 模块、MLX 热成像传感器的刷新率 / 分辨率控制,以及初步的 OpenMV Cam M7(STM32F7)开发板适配。fir.init() 的签名、超大帧的处理方式以及默认 JPEG 质量都发生了变化——请阅读下方的破坏性变更。
亮点¶
cpufreq模块——查询 / 设置 CPU 频率,并附带超频示例。MLX 热成像 ——
fir.init()现接受刷新率和 ADC 分辨率参数。OpenMV Cam M7 —— 初步的 STM32F7 开发板适配。
破坏性变更:
fir.init()现在仅接受关键字参数,超大帧会自动裁剪,且默认 JPEG 质量已下调——请参阅破坏性变更。
新功能¶
cpufreq—— 新增cpufreq模块,提供cpufreq.get_frequency()/cpufreq.set_frequency()以及CPUFREQ_120MHZ/144/168/192/216MHZ常量,另附overclocking.py示例。MLX / FIR ——
fir.init()现在接受刷新率和 ADC 分辨率参数,并为 MLX 热成像传感器提供相应的refresh/resolution控制。
其他变更与改进¶
调优了 OV7725 的 AGC/AEC 区域(减少运动模糊),为 OV7725 启用了 DSP 纯色彩条,并修复了 IDE 帧缓冲区流式传输(不再出现过时 / 重复帧)。
缺陷修复¶
修复了
sensor.snapshot()中的 DCMI/DMA 传输大小溢出问题,整理了 JPEG 压缩缓冲区溢出的处理逻辑,改进了 OV7725 的 AEC/AGC 工作区域以获得更好的自动曝光 / 增益,并修正了 OV7725 的彩条 / 自检脚本。
硬件与开发板支持¶
OpenMV Cam M7(STM32F7 / OPENMV7) —— 初步的开发板和引导加载程序支持。
OpenMV 2 —— 传感器时钟由 MCO 输出驱动。
破坏性 API 变更¶
v1.6.0 与 v1.7.0 之间用户可见的 API 破坏性变更。范围:modules/ 中的 Python C 模块和 scripts/libraries/ 中的 Python 库。
每项变更都标注了其影响等级:
minor —— 影响范围窄的 API;仅影响使用过它的脚本。
behavior —— API 不变,但结果不同;请重新检查经过调优的脚本。
变更按影响等级依次分组。如果你只想移植代码,可直接跳到末尾的 迁移清单。每个提交哈希都链接到其在 GitHub 上的差异。
fir.init() 现在仅接受关键字参数 (minor)¶
fir.init() 经过重构,改为接受关键字参数(type= / refresh= / resolution=,默认 refresh 为 64 Hz,最大 512 Hz),而非位置参数。请将位置参数形式的 fir.init(...) 调用更新为关键字形式。
提交: 958c5b7f7
超大帧自动裁剪到 QVGA (behavior)¶
当原始帧超过开发板的最大原始帧尺寸时,sensor.snapshot() 不再抛出异常——超大原始帧现在会被开窗 / 裁剪到 QVGA(只有 JPEG 模式的原始帧仍会被拒绝)。如果你依赖之前的错误行为,请选择受支持的帧尺寸。
OpenMV 2 的最大帧尺寸降至 QVGA (behavior)¶
在 OpenMV 2 上,积分图像 / 原始 / 色块的最大帧尺寸已从 VGA 降至 QVGA。现在在 OpenMV 2 上对灰度 / RGB565 / 色块 / 积分图像操作请求 VGA 时,会被裁剪到 QVGA——请重新设计依赖该开发板上 VGA 处理的脚本。
提交: 7499062bd
默认 JPEG 质量下调 (behavior)¶
默认 JPEG 质量已下调(默认值从 50 → 35,并降低了 IDE 的子采样阈值),以获得更可靠的流式传输。默认情况下,捕获 / 流式传输的 JPEG 图像质量明显更低——如果需要之前的质量,请向 image.compress() 显式传入 quality。
提交: d9c8b1535
迁移清单¶
要顺利移植到 v1.7.0,通常需要做的工作是:
将位置参数形式的
fir.init(...)调用转换为关键字形式(fir.init 变更)。使用受支持的帧尺寸,而非依赖旧的超大帧错误(超大帧变更),并重新设计 OpenMV 2 上的 VGA 处理(OpenMV 2 帧尺寸变更)。
如果需要之前的 JPEG 质量,请向
image.compress()显式传入quality(JPEG 质量变更)。
其余所有脚本均可原样运行。