MicroPython 函数库

本文档全部内容由 星瞳科技 翻译并发布。

警告

此部分的重要总结:

  • MicroPython在每个模块中实现Python功能的一个子集。
  • 为简化可扩展性,标准Python模块的MicroPython版本通常有 u (micro)前缀。
  • 由于资源的限制,任何特定MicroPython变量或端口可能略去在此文档中描述的任何特性/功能。

此章节描述内置于MicroPython的模块。有如下几种类型的模块:

  • 实现标准Python功能的子集且并不由用户进行扩展的模块。
  • 实现标准Python功能的子集且包括用户扩展的条款(通过Python编码)。
  • 对Python标准库实现MicroPython拓展的模块。
  • 特定于某一端口而不可移植的模块。

注意模块及其内容的可用性:总体而言,该文件目的为描述在MicroPython中实现的所有模块和函数/类。 但是,MicroPython为高度可配置的,且每个端口到一个特定的板/嵌入式系统仅提供MicroPython库的一个子集。 对于官方支持的端口而言,目前正尽力实现过滤不适用项目或使用可用性来标记个别描述:描述提供给定特性的端口的子句。 考虑到这一点,请注意在该文档中描述的模块中的函数/类可能在特定的板上特定的MicroPython的构建中不可用。 寻找某个特定功能的可用性/不可用性的一般信息的最佳位置是“一般信息(General Information)”部分,其中包含与特定端口相关的信息。

在某些端口上,您可以通过在REPL中import以下内容来发现可用的内置库:

help('modules')

除了在此文件中描述的内置库外,Python标准库中的许多其他模块,以及对此其的MicroPython扩展,都可在 micropython-lib 中找到。

Python标准库和micro-libraries

下面的标准Python库已被微型化,以适应MicroPython的原理。这些库执行该模块的核心功能,并被设计作为标准Python库的替代选择。 以下的某些模块使用标准的Python名,但带有“u”前缀,例如,其名称为 ujson 而不是 json 。 这表示这样的一个模块是micro-library,即仅实现CPython模块功能的一个子集。通过以不同方式命名它们, 用户可以选择编写Python级别的模块来扩展功能,从而更好地与CPython实现兼容(实际上,这正是由上述的 micropython-lib 实现的)。

在一些嵌入式平台上,添加Python级别的包装器模块以实现与CPython的命名兼容非常麻烦, 而微模块可通过其u命名和非u命名来使用。该非u命名可被您的包路径中的同名文件覆盖。 例如, import json 将首先搜索一个文件 json.py 或目录 json ,若搜寻到相关内容,则加载该数据包。 若未搜寻到目标信息,则后退以加载内置 ujson 模块。

特定于OpenMV Cam的库

以下库是特定于OpenMV Cam的。

OpenMV Cam上的第三方库

以下的第三方math库内置在您的OpenMV Cam固件中:

  • OpenRV (Hu矩,平面单应,和Quickshift++)
    • vec (向量运算)
    • mtx (快速矩阵乘法与线性求解)
  • ulab (numpy-类似数组操作库)
  • umatrix (矩阵库)
  • ulinalg (线性代数库)
  • pid (比例/积分/微分 PID控制)

以下第三方驱动程序库内置在您的OpenMV Cam固件中:

  • BNO055 IMU驱动程序
    • 示例程序位于OpenMV IDE的 IMU Shield 示例文件夹下。
  • SSD1306 OLED驱动程序
  • TB6612 步进电机驱动程序
    • 示例程序位于OpenMV IDE的 Motor Shield 示例文件夹下。
  • VL51L1X ToF测距传感器驱动程序
    • 示例程序位于OpenMV IDE的 Distance Shield 示例文件夹下。

以下第三方协议库内置在您的OpenMV Cam固件中:

  • modbus 协议库
    • 示例程序位于OpenMV IDE的 Modbus 示例文件夹下。
  • mqtt 协议库
    • 示例程序位于OpenMV IDE的 WiFi Shield 示例文件夹下。