.. _micropython_lib: MicroPython 函数库 ===================== 本文档全部内容由 `星瞳科技 `_ 翻译并发布。 .. warning:: 此部分的重要总结: * 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`` 模块。 .. toctree:: :maxdepth: 1 builtins.rst array.rst cmath.rst gc.rst math.rst sys.rst ubinascii.rst ucollections.rst uerrno.rst uhashlib.rst uheapq.rst uio.rst ujson.rst uos.rst ure.rst uselect.rst usocket.rst ussl.rst ustruct.rst utime.rst uzlib.rst _thread.rst MicroPython特定的库 ------------------------------ MicroPython实现的特定功能可在以下库中找到。 .. toctree:: :maxdepth: 3 framebuf.rst machine.rst micropython.rst network.rst ucryptolib.rst uctypes.rst 特定于OpenMV Cam的库 ------------------------------------ 以下库是特定于OpenMV Cam的。 .. toctree:: :maxdepth: 3 pyb.rst omv.time.rst omv.sensor.rst omv.image.rst omv.nn.rst omv.tf.rst omv.gif.rst omv.mjpeg.rst omv.lcd.rst omv.fir.rst omv.tv.rst omv.cpufreq.rst omv.imu.rst omv.rpc.rst omv.rtsp.rst omv.omv.rst 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`` 示例文件夹下。