13.1.2. 脚本、示例与文档文件夹

13.1.2.1. 新建文件

新建一个文件,IDE 会打开一个 untitled_N.py 缓冲区,其中预置了一个最简的捕获循环——复位传感器、配置像素格式和帧尺寸,然后不断地拍摄快照并打印帧率。这个起始脚本会针对已连接的开发板进行适配,因此创建后即可运行。该缓冲区仅存在于内存中:你可以反复编辑和运行它而无需保存,这使得新建文件成为测试想法的最低成本方式。将它保存到磁盘后,它就变成了一个普通脚本。

13.1.2.2. 示例菜单

File → Examples 提供了一个分类整理的示例脚本库,基本覆盖了摄像头拥有的每一项功能——每个主题一个文件夹,从基本快照到颜色跟踪、机器学习以及开发板外设。打开一个示例时,它会像新建文件一样被加载到内存缓冲区中,因此你可以自由地修改和运行它而不会改动已安装的副本。

默认情况下,菜单会按已连接的开发板及其传感器进行过滤:需要你的摄像头不具备的硬件的示例会被隐藏,并且在显示任何内容之前菜单会要求先建立连接。当你想浏览完整集合时,Tools → Filter examples by board and sensor type 可以关闭该过滤。

示例在打开时也会被适配。这些脚本是针对典型的彩色传感器编写的,因此当已连接的摄像头有所不同时——例如热成像或事件传感器、原生分辨率不同的开发板——IDE 会在加载时将像素格式和帧尺寸的相关行调整为你的硬件所支持的值,于是示例打开即可运行。

逐一研读示例菜单是了解摄像头能做什么的最快途径;大多数应用程序都是从一个逐渐发展起来的示例开始的。

13.1.2.3. 文档文件夹

对于你自己的脚本,IDE 会监视文档文件夹内的一个 OpenMV 目录(Documents/OpenMV)。你存储在那里的所有内容(包括子目录)都会出现在 File → Documents Folder 下,因此你的脚本集合只需一个菜单即可访问。该菜单会实时读取目录——你在 IDE 之外添加的文件会在下次打开菜单时显示出来。

IDE 以单实例方式运行:从文件管理器打开一个 .py 文件,或将其拖放到 IDE 窗口上,它都会在正在运行的窗口中打开,而不会启动第二个副本。

13.1.2.4. 交叉编译脚本

Tools → MicroPython Tools → Copy/Convert Python File 会将一个 .py 文件复制到目标位置——连接了摄像头时即为摄像头的驱动器——并让你选择在此过程中如何处理:原样复制、去除空白和/或注释以缩小它,或使用与目标开发板匹配的 mpy-cross 编译器将它编译为 .mpy 字节码文件。.mpy 文件的导入方式与它所来源的 .py 完全相同,加载更快,并且不附带源代码——这是向摄像头文件系统分发库模块时应采用的形式。连接了摄像头时,IDE 会自动选择目标开发板;否则对话框会询问要为哪个开发板编译。开发板的选择很重要,因为它决定了编译器面向的处理器架构:.mpy 文件是与它将要运行的摄像头匹配的,为不同开发板系列编译的文件不保证能够加载。

参见

参见 MicroPython 工具,了解作为独立命令行工具的 mpy-cross 和 mpremote,以及 MicroPython .mpy 文件,了解 .mpy 文件格式本身。