Bibliotecas de OpenMV MicroPython

Advertencia

Resumen importante de esta sección

  • MicroPython proporciona módulos integrados que reflejan la funcionalidad de la biblioteca estándar de Python (p. ej. os, time), así como módulos específicos de MicroPython (p. ej. bluetooth, machine).

  • La mayoría de los módulos de la biblioteca estándar de Python implementan un subconjunto de la funcionalidad del módulo equivalente de Python y, en algunos casos, proporcionan algunas extensiones específicas de MicroPython (p. ej. array, os)

  • Debido a limitaciones de recursos u otras restricciones, es posible que algunos ports o versiones de firmware no incluyan toda la funcionalidad documentada aquí.

  • Para permitir la extensibilidad, algunos módulos integrados pueden extenderse desde código Python cargado en el sistema de archivos del dispositivo.

Este capítulo describe los módulos (bibliotecas de funciones y clases) que están integrados en MicroPython. Esta documentación, en general, aspira a describir todos los módulos y funciones/clases que están implementados en el proyecto MicroPython. Sin embargo, MicroPython es altamente configurable, y cada port a una placa/sistema embebido en particular puede incluir solo un subconjunto de las bibliotecas de MicroPython disponibles.

Teniendo esto en cuenta, tenga presente que algunas funciones/clases de un módulo (o incluso el módulo completo) descritas en esta documentación pueden no estar disponibles en una compilación concreta de MicroPython en un sistema concreto. El mejor lugar para encontrar información general sobre la disponibilidad o no disponibilidad de una característica concreta es la sección «General Information», que contiene información relativa a un MicroPython port específico.

En algunos ports puede descubrir las bibliotecas integradas disponibles que se pueden importar introduciendo lo siguiente en el REPL:

help('modules')

Más allá de las bibliotecas integradas descritas en esta documentación, se pueden encontrar muchos más módulos de la biblioteca estándar de Python, así como otras extensiones de MicroPython a la misma, en micropython-lib.

Bibliotecas estándar de Python y micro-bibliotecas

Las siguientes bibliotecas estándar de Python han sido «micro-ificadas» para adaptarse a la filosofía de MicroPython. Proporcionan la funcionalidad principal de ese módulo y están pensadas para ser un reemplazo directo de la biblioteca estándar de Python.

Bibliotecas de OpenMV Cam

Las siguientes secciones describen las bibliotecas disponibles en cada placa compatible con OpenMV, incluyendo tanto los módulos integrados específicos de MicroPython como las propias extensiones de OpenMV.

Módulos comunes

Integrados en el firmware de cada placa de cámara OpenMV.

Asistentes de Python congelados (frozen) incluidos en la mayoría de las placas de cámara OpenMV (controladores, redes y utilidades):

Asistentes de red (requieren una interfaz de red funcional):

Framework web

Módulos del framework de servidor web. Consulte las secciones por placa a continuación para saber qué placas incluyen cada uno.

Módulos específicos del port

Módulos vinculados a una familia de MCU específica. Consulte las secciones por placa a continuación para saber qué placas incluyen cada uno.

Controladores de hardware

Controladores para sensores, pantallas y otros periféricos incluidos en una o más placas compatibles con OpenMV. Consulte las secciones por placa a continuación para saber qué placas incluyen cada uno.

Disponibilidad por placa

Las listas a continuación muestran qué módulos específicos del port y controladores se incluyen en cada placa. Todos los módulos de Common, Frozen Python helpers y Networking helpers (arriba) están disponibles en cada placa de cámara salvo que se indique lo contrario.

OpenMV N6

STM32N657 (Cortex-M55 @ 800 MHz) con una NPU integrada de 1 GHz valorada en 600 GOPS INT8. Combina la NPU con el sensor de obturador global PAG7936 de 1 MP.

  • pyb — funciones relacionadas con la placa

  • stm — funcionalidad específica de las MCU STM32

  • ssd1306 — controlador OLED

  • tb6612 — controlador de motor TB6612

  • jwt — JSON Web Tokens

  • microdot — framework HTTP mínimo

OpenMV AE3

SoC de doble núcleo Alif Ensemble E3: Cortex-M55 @ 400 MHz (HP) más Cortex-M55 @ 160 MHz (HE), con dos NPU integradas (NPU HP de 400 MHz / 204 GOPS + NPU HE de 160 MHz / 46 GOPS).

  • alif — funciones del SoC Alif Ensemble

  • romfs — utilidades auxiliares de ROMFS

  • pca9674a — controlador del expansor I2C PCA9674A

  • jwt — JSON Web Tokens

  • microdot — framework HTTP mínimo

OpenMV Cam RT1062

Placa de visión artificial de bajo consumo basada en el NXP i.MX RT1062 (Cortex-M7 @ 600 MHz). Combina redes USB-C de alta velocidad, Wi-Fi / Bluetooth y Ethernet 10/100.

  • mimxrt — funcionalidad específica de NXP i.MX RT

  • dht — sensores de temperatura/humedad DHT11 y DHT22

  • onewire — protocolo de bus 1-Wire

  • ds18x20 — controlador del sensor de temperatura DS18x20

  • neopixel — control de LED WS2812 / NeoPixel

  • ssd1306 — controlador OLED

  • tb6612 — controlador de motor TB6612

  • pca9674a — controlador del expansor I2C PCA9674A

  • jwt — JSON Web Tokens

  • microdot — framework HTTP mínimo

OpenMV Pure Thermal

Placa de imagen térmica de sistema completo basada en el STM32H743 (Cortex-M7 @ 480 MHz) con 64 MB de SDRAM externa, 32 MB de memoria flash QSPI, un códec JPEG por hardware y salida DVI/HDMI.

  • pyb — funciones relacionadas con la placa

  • stm — funcionalidad específica de las MCU STM32

  • tfp410 — serializador DVI/HDMI

  • ft5x06 — controlador de pantalla táctil capacitiva

  • dht — sensores de temperatura/humedad DHT11 y DHT22

  • onewire — protocolo de bus 1-Wire

  • ds18x20 — controlador del sensor de temperatura DS18x20

  • neopixel — control de LED WS2812 / NeoPixel

  • ssd1306 — controlador OLED

  • tb6612 — controlador de motor TB6612

OpenMV Cam H7 Plus

STM32H743 (Cortex-M7 @ 480 MHz) con 32 MB de SDRAM externa, 32 MB de memoria flash QSPI, un códec JPEG por hardware y el módulo de cámara OV5640 de 5 MP.

  • pyb — funciones relacionadas con la placa

  • stm — funcionalidad específica de las MCU STM32

  • dht — sensores de temperatura/humedad DHT11 y DHT22

  • onewire — protocolo de bus 1-Wire

  • ds18x20 — controlador del sensor de temperatura DS18x20

  • neopixel — control de LED WS2812 / NeoPixel

  • ssd1306 — controlador OLED

  • tb6612 — controlador de motor TB6612

OpenMV Cam H7

STM32H743 (Cortex-M7 @ 480 MHz) con 1 MB de SRAM interna, 2 MB de memoria flash interna y un códec JPEG por hardware.

  • pyb — funciones relacionadas con la placa

  • stm — funcionalidad específica de las MCU STM32

  • dht — sensores de temperatura/humedad DHT11 y DHT22

  • onewire — protocolo de bus 1-Wire

  • ds18x20 — controlador del sensor de temperatura DS18x20

  • neopixel — control de LED WS2812 / NeoPixel

  • ssd1306 — controlador OLED

  • tb6612 — controlador de motor TB6612

OpenMV Cam M7

STM32F765 (Cortex-M7 @ 216 MHz) con 512 KB de SRAM interna y 2 MB de memoria flash interna. Incluye el sensor OV7725.

  • pyb — funciones relacionadas con la placa

  • stm — funcionalidad específica de las MCU STM32

  • dht — sensores de temperatura/humedad DHT11 y DHT22

  • onewire — protocolo de bus 1-Wire

  • ds18x20 — controlador del sensor de temperatura DS18x20

  • neopixel — control de LED WS2812 / NeoPixel

  • ssd1306 — controlador OLED

  • tb6612 — controlador de motor TB6612

OpenMV Cam M4

STM32F427 (Cortex-M4 @ 180 MHz) con 256 KB de SRAM interna y 1 MB de memoria flash interna. Incluye el sensor OV7725.

  • pyb — funciones relacionadas con la placa

  • stm — funcionalidad específica de las MCU STM32

  • dht — sensores de temperatura/humedad DHT11 y DHT22

  • onewire — protocolo de bus 1-Wire

  • ds18x20 — controlador del sensor de temperatura DS18x20

  • neopixel — control de LED WS2812 / NeoPixel

  • ssd1306 — controlador OLED

  • tb6612 — controlador de motor TB6612

Arduino Nicla Vision

Placa de visión artificial de 22.86 × 22.86 mm basada en el SoC de doble núcleo STM32H747AII6: Cortex-M7 @ 400 MHz más Cortex-M4 @ 200 MHz.

  • pyb — funciones relacionadas con la placa

  • stm — funcionalidad específica de las MCU STM32

  • lsm6dsox — IMU de 6 ejes LSM6DSOX

  • dht — sensores de temperatura/humedad DHT11 y DHT22

  • ds18x20 — controlador del sensor de temperatura DS18x20

  • onewire — protocolo de bus 1-Wire

  • neopixel — control de LED WS2812 / NeoPixel

Arduino Portenta H7

Placa de desarrollo industrial de 66 × 25 mm basada en el SoC de doble núcleo STM32H747XI: Cortex-M7 @ 400 MHz más Cortex-M4 @ 200 MHz.

  • pyb — funciones relacionadas con la placa

  • stm — funcionalidad específica de las MCU STM32

  • dht — sensores de temperatura/humedad DHT11 y DHT22

  • ds18x20 — controlador del sensor de temperatura DS18x20

  • onewire — protocolo de bus 1-Wire

  • neopixel — control de LED WS2812 / NeoPixel

  • lora — controlador de módem LoRa

  • ssd1306 — controlador OLED

  • tb6612 — controlador de motor TB6612

Arduino Giga R1 WiFi

Placa de formato Mega de 101 × 53 mm basada en el SoC de doble núcleo STM32H747XI: Cortex-M7 @ 480 MHz más Cortex-M4 @ 240 MHz, con una pantalla táctil integrada de 800x480.

  • pyb — funciones relacionadas con la placa

  • stm — funcionalidad específica de las MCU STM32

  • dht — sensores de temperatura/humedad DHT11 y DHT22

  • onewire — protocolo de bus 1-Wire

  • neopixel — control de LED WS2812 / NeoPixel

  • gt911 — controlador táctil capacitivo de 5 puntos GT911

  • ft5x06 — controlador de pantalla táctil capacitiva

Arduino Nano RP2040 Connect

Placa de formato Nano basada en RP2040 con el módulo Wi-Fi/Bluetooth U-blox NINA-W102. Ya no recibe soporte activo; la última versión del firmware de OpenMV para esta placa se conserva para uso de archivo.

  • rp2 — asistentes de PIO / DMA / flash específicos del RP2040

  • espflash — programador del firmware del bootloader ROM de ESP32

  • lsm6dsox — IMU de 6 ejes LSM6DSOX

  • dht — sensores de temperatura/humedad DHT11 y DHT22

  • onewire — protocolo de bus 1-Wire

  • ds18x20 — controlador del sensor de temperatura DS18x20

  • neopixel — control de LED WS2812 / NeoPixel

Arduino Nano 33 BLE Sense

Placa de formato Nano Nordic nRF52840 con el conjunto de sensores integrados de Arduino. Ya no recibe soporte activo; la última versión del firmware de OpenMV para esta placa se conserva para uso de archivo.

  • ubluepy — API de periférico y central Bluetooth LE sobre el Nordic SoftDevice

  • bmi270 — IMU de 6 ejes BMI270

  • bmm150 — magnetómetro de 3 ejes BMM150

  • lsm9ds1 — IMU de 9 ejes LSM9DS1

  • hts221 — sensor de humedad/temperatura HTS221

  • lps22h — sensor de presión LPS22HB/HH

  • hs3003 — sensor de humedad/temperatura HS3003

  • apds9960 — controlador de sensor de proximidad, gestos y color

  • dht — sensores de temperatura/humedad DHT11 y DHT22

  • onewire — protocolo de bus 1-Wire

  • ds18x20 — controlador del sensor de temperatura DS18x20

  • neopixel — control de LED WS2812 / NeoPixel

Extender bibliotecas integradas desde Python

Un subconjunto de los módulos integrados se puede extender mediante código Python proporcionando un módulo del mismo nombre en el sistema de archivos. Esta extensibilidad se aplica a los siguientes módulos de la biblioteca estándar de Python que están integrados en el firmware: array, binascii, collections, errno, gzip, hashlib, heapq, io, json, os, platform, random, re, select, socket, ssl, struct, time, zlib, así como el módulo específico de MicroPython machine. Ningún otro módulo integrado se puede extender desde el sistema de archivos.

Esto permite al usuario proporcionar una implementación extendida de una biblioteca integrada (quizás para ofrecer compatibilidad adicional con CPython o funcionalidad faltante). Esto se utiliza ampliamente en micropython-lib, consulte Gestión de paquetes para obtener más información. El módulo del sistema de archivos normalmente hará una importación con comodín del módulo integrado para heredar todos los globales (clases, funciones y variables) del integrado.

En MicroPython v1.21.0 y superiores, para evitar que el módulo del sistema de archivos se importe a sí mismo, puede forzar una importación del módulo integrado borrando temporalmente sys.path durante la importación. Por ejemplo, para extender el módulo time desde Python, un archivo llamado time.py en el sistema de archivos haría lo siguiente:

_path = sys.path
sys.path = ()
try:
  from time import *
finally:
  sys.path = _path
  del _path

def extra_method():
  pass

El resultado es que time.py contiene todos los globales del módulo integrado time, pero añade extra_method.

En versiones anteriores de MicroPython, puede forzar una importación de un módulo integrado añadiendo una u al inicio de su nombre. Por ejemplo, import utime en lugar de import time. Por ejemplo, time.py en el sistema de archivos podría tener este aspecto:

from utime import *

def extra_method():
  pass

Esta forma todavía es compatible, pero el método de sys.path descrito anteriormente es ahora el preferido, ya que el prefijo u se eliminará de los nombres de los módulos integrados en una versión futura de MicroPython.

Salvo cuando necesita específicamente forzar el uso del módulo integrado, el código siempre debería usar import module en lugar de import umodule.