Pustaka OpenMV MicroPython

Peringatan

Ringkasan penting bagian ini

  • MicroPython menyediakan modul bawaan yang mencerminkan fungsionalitas pustaka standar Python (misalnya os, time), serta modul khusus MicroPython (misalnya bluetooth, machine).

  • Sebagian besar modul pustaka standar Python mengimplementasikan sebagian fungsionalitas dari modul Python yang setara, dan dalam beberapa kasus menyediakan ekstensi khusus MicroPython (misalnya array, os)

  • Karena keterbatasan sumber daya atau batasan lainnya, beberapa port atau versi firmware mungkin tidak mencakup semua fungsionalitas yang didokumentasikan di sini.

  • Untuk memungkinkan ekstensibilitas, beberapa modul bawaan dapat diperluas dari kode Python yang dimuat ke sistem file perangkat.

Bab ini menjelaskan modul (pustaka fungsi dan kelas) yang dibangun ke dalam MicroPython. Dokumentasi ini secara umum bertujuan untuk mendeskripsikan semua modul dan fungsi/kelas yang diimplementasikan dalam proyek MicroPython. Namun, MicroPython sangat dapat dikonfigurasi, dan setiap port ke papan/sistem tertanam tertentu mungkin hanya mencakup sebagian dari pustaka MicroPython yang tersedia.

Dengan mempertimbangkan hal itu, harap diperhatikan bahwa beberapa fungsi/kelas dalam suatu modul (atau bahkan seluruh modul) yang dijelaskan dalam dokumentasi ini mungkin tidak tersedia dalam build MicroPython tertentu pada sistem tertentu. Tempat terbaik untuk menemukan informasi umum tentang ketersediaan/ketidaktersediaan fitur tertentu adalah bagian "Informasi Umum" yang berisi informasi terkait MicroPython port tertentu.

Pada beberapa port, Anda dapat menemukan pustaka bawaan yang tersedia yang dapat diimpor dengan memasukkan perintah berikut di REPL

help('modules')

Selain pustaka bawaan yang dijelaskan dalam dokumentasi ini, lebih banyak modul dari pustaka standar Python, serta ekstensi MicroPython lebih lanjut, dapat ditemukan di micropython-lib.

Pustaka standar Python dan micro-library

Pustaka Python standar berikut telah di-"micro-ifikasi" agar sesuai dengan filosofi MicroPython. Pustaka ini menyediakan fungsionalitas inti dari modul tersebut dan dimaksudkan sebagai pengganti langsung untuk pustaka standar Python.

Pustaka OpenMV Cam

Bagian berikut menjelaskan pustaka yang tersedia di setiap papan yang didukung OpenMV, termasuk modul bawaan khusus MicroPython dan ekstensi milik OpenMV.

Modul umum

Dibangun ke dalam firmware di setiap papan kamera OpenMV.

Helper Python beku yang dikirimkan di sebagian besar papan kamera OpenMV (driver, jaringan, dan utilitas):

Helper jaringan (memerlukan antarmuka jaringan yang berfungsi):

Framework web

Modul framework webserver. Lihat bagian per-papan di bawah untuk mengetahui papan mana yang menyertakan masing-masing.

Modul khusus port

Modul yang terikat pada keluarga MCU tertentu. Lihat bagian per-papan di bawah untuk mengetahui papan mana yang menyertakan masing-masing.

Driver hardware

Driver untuk sensor, layar, dan periferal lainnya yang dikirimkan pada satu atau lebih papan yang didukung OpenMV. Lihat bagian per-papan di bawah untuk mengetahui papan mana yang menyertakan masing-masing.

Ketersediaan per-papan

Daftar di bawah menunjukkan modul driver dan port-spesifik mana yang dikirimkan di setiap papan. Semua modul dalam Common, Frozen Python helpers, dan Networking helpers (di atas) tersedia di setiap papan kamera kecuali dinyatakan lain.

OpenMV N6

STM32N657 (Cortex-M55 @ 800 MHz) dengan NPU on-chip 1 GHz berperingkat 600 GOPS INT8. Dipasangkan NPU dengan sensor global-shutter PAG7936 1 MP.

  • pyb --- fungsi terkait papan

  • stm --- fungsionalitas khusus untuk MCU STM32

  • ssd1306 --- driver OLED

  • tb6612 --- driver motor TB6612

  • jwt --- JSON Web Tokens

  • microdot --- framework HTTP minimal

OpenMV AE3

SoC dual-core Alif Ensemble E3: Cortex-M55 @ 400 MHz (HP) ditambah Cortex-M55 @ 160 MHz (HE), dengan dua NPU on-chip (400 MHz / 204 GOPS HP NPU + 160 MHz / 46 GOPS HE NPU).

  • alif --- fungsi SoC Alif Ensemble

  • romfs --- utilitas helper ROMFS

  • pca9674a --- driver ekspander I2C PCA9674A

  • jwt --- JSON Web Tokens

  • microdot --- framework HTTP minimal

OpenMV Cam RT1062

Papan visi mesin berdaya rendah berbasis NXP i.MX RT1062 (Cortex-M7 @ 600 MHz). Menggabungkan jaringan USB-C berkecepatan tinggi, Wi-Fi / Bluetooth, dan Ethernet 10/100.

  • mimxrt --- fungsionalitas khusus untuk NXP i.MX RT

  • dht --- sensor suhu/kelembapan DHT11 dan DHT22

  • onewire --- protokol bus 1-Wire

  • ds18x20 --- driver sensor suhu DS18x20

  • neopixel --- kontrol LED WS2812 / NeoPixel

  • ssd1306 --- driver OLED

  • tb6612 --- driver motor TB6612

  • pca9674a --- driver ekspander I2C PCA9674A

  • jwt --- JSON Web Tokens

  • microdot --- framework HTTP minimal

OpenMV Pure Thermal

Papan pencitraan termal lengkap berbasis STM32H743 (Cortex-M7 @ 480 MHz) dengan 64 MB SDRAM eksternal, 32 MB flash QSPI, codec JPEG hardware, dan keluaran DVI/HDMI.

  • pyb --- fungsi terkait papan

  • stm --- fungsionalitas khusus untuk MCU STM32

  • tfp410 --- serializer DVI/HDMI

  • ft5x06 --- driver touchscreen kapasitif

  • dht --- sensor suhu/kelembapan DHT11 dan DHT22

  • onewire --- protokol bus 1-Wire

  • ds18x20 --- driver sensor suhu DS18x20

  • neopixel --- kontrol LED WS2812 / NeoPixel

  • ssd1306 --- driver OLED

  • tb6612 --- driver motor TB6612

OpenMV Cam H7 Plus

STM32H743 (Cortex-M7 @ 480 MHz) dengan 32 MB SDRAM eksternal, 32 MB flash QSPI, codec JPEG hardware, dan modul kamera OV5640 5MP.

  • pyb --- fungsi terkait papan

  • stm --- fungsionalitas khusus untuk MCU STM32

  • dht --- sensor suhu/kelembapan DHT11 dan DHT22

  • onewire --- protokol bus 1-Wire

  • ds18x20 --- driver sensor suhu DS18x20

  • neopixel --- kontrol LED WS2812 / NeoPixel

  • ssd1306 --- driver OLED

  • tb6612 --- driver motor TB6612

OpenMV Cam H7

STM32H743 (Cortex-M7 @ 480 MHz) dengan 1 MB SRAM internal, 2 MB flash internal, dan codec JPEG hardware.

  • pyb --- fungsi terkait papan

  • stm --- fungsionalitas khusus untuk MCU STM32

  • dht --- sensor suhu/kelembapan DHT11 dan DHT22

  • onewire --- protokol bus 1-Wire

  • ds18x20 --- driver sensor suhu DS18x20

  • neopixel --- kontrol LED WS2812 / NeoPixel

  • ssd1306 --- driver OLED

  • tb6612 --- driver motor TB6612

OpenMV Cam M7

STM32F765 (Cortex-M7 @ 216 MHz) dengan 512 KB SRAM internal dan 2 MB flash internal. Dilengkapi dengan sensor OV7725.

  • pyb --- fungsi terkait papan

  • stm --- fungsionalitas khusus untuk MCU STM32

  • dht --- sensor suhu/kelembapan DHT11 dan DHT22

  • onewire --- protokol bus 1-Wire

  • ds18x20 --- driver sensor suhu DS18x20

  • neopixel --- kontrol LED WS2812 / NeoPixel

  • ssd1306 --- driver OLED

  • tb6612 --- driver motor TB6612

OpenMV Cam M4

STM32F427 (Cortex-M4 @ 180 MHz) dengan 256 KB SRAM internal dan 1 MB flash internal. Dilengkapi dengan sensor OV7725.

  • pyb --- fungsi terkait papan

  • stm --- fungsionalitas khusus untuk MCU STM32

  • dht --- sensor suhu/kelembapan DHT11 dan DHT22

  • onewire --- protokol bus 1-Wire

  • ds18x20 --- driver sensor suhu DS18x20

  • neopixel --- kontrol LED WS2812 / NeoPixel

  • ssd1306 --- driver OLED

  • tb6612 --- driver motor TB6612

Arduino Nicla Vision

Papan visi mesin 22,86 × 22,86 mm berbasis SoC dual-core STM32H747AII6: Cortex-M7 @ 400 MHz ditambah Cortex-M4 @ 200 MHz.

  • pyb --- fungsi terkait papan

  • stm --- fungsionalitas khusus untuk MCU STM32

  • lsm6dsox --- IMU 6-sumbu LSM6DSOX

  • dht --- sensor suhu/kelembapan DHT11 dan DHT22

  • ds18x20 --- driver sensor suhu DS18x20

  • onewire --- protokol bus 1-Wire

  • neopixel --- kontrol LED WS2812 / NeoPixel

Arduino Portenta H7

Papan dev industri 66 × 25 mm berbasis SoC dual-core STM32H747XI: Cortex-M7 @ 400 MHz ditambah Cortex-M4 @ 200 MHz.

  • pyb --- fungsi terkait papan

  • stm --- fungsionalitas khusus untuk MCU STM32

  • dht --- sensor suhu/kelembapan DHT11 dan DHT22

  • ds18x20 --- driver sensor suhu DS18x20

  • onewire --- protokol bus 1-Wire

  • neopixel --- kontrol LED WS2812 / NeoPixel

  • lora --- driver modem LoRa

  • ssd1306 --- driver OLED

  • tb6612 --- driver motor TB6612

Arduino Giga R1 WiFi

Papan berform-factor Mega 101 × 53 mm berbasis SoC dual-core STM32H747XI: Cortex-M7 @ 480 MHz ditambah Cortex-M4 @ 240 MHz, dengan touchscreen 800x480 on-board.

  • pyb --- fungsi terkait papan

  • stm --- fungsionalitas khusus untuk MCU STM32

  • dht --- sensor suhu/kelembapan DHT11 dan DHT22

  • onewire --- protokol bus 1-Wire

  • neopixel --- kontrol LED WS2812 / NeoPixel

  • gt911 --- kontroler sentuh kapasitif 5-titik GT911

  • ft5x06 --- driver touchscreen kapasitif

Arduino Nano RP2040 Connect

Papan berform-factor Nano berbasis RP2040 dengan modul Wi-Fi/Bluetooth U-blox NINA-W102. Tidak lagi didukung secara aktif; rilis firmware OpenMV terakhir untuk papan ini disimpan untuk keperluan arsip.

  • rp2 --- helper PIO / DMA / flash khusus RP2040

  • espflash --- flasher firmware bootloader ROM ESP32

  • lsm6dsox --- IMU 6-sumbu LSM6DSOX

  • dht --- sensor suhu/kelembapan DHT11 dan DHT22

  • onewire --- protokol bus 1-Wire

  • ds18x20 --- driver sensor suhu DS18x20

  • neopixel --- kontrol LED WS2812 / NeoPixel

Arduino Nano 33 BLE Sense

Papan berform-factor Nano Nordic nRF52840 dengan suite sensor Arduino on-board. Tidak lagi didukung secara aktif; rilis firmware OpenMV terakhir untuk papan ini disimpan untuk keperluan arsip.

  • ubluepy --- API periferal dan central Bluetooth LE pada Nordic SoftDevice

  • bmi270 --- IMU 6-sumbu BMI270

  • bmm150 --- magnetometer 3-sumbu BMM150

  • lsm9ds1 --- IMU 9-sumbu LSM9DS1

  • hts221 --- sensor kelembapan/suhu HTS221

  • lps22h --- sensor tekanan LPS22HB/HH

  • hs3003 --- sensor kelembapan/suhu HS3003

  • apds9960 --- driver sensor proximity, gestur, dan warna

  • dht --- sensor suhu/kelembapan DHT11 dan DHT22

  • onewire --- protokol bus 1-Wire

  • ds18x20 --- driver sensor suhu DS18x20

  • neopixel --- kontrol LED WS2812 / NeoPixel

Memperluas pustaka bawaan dari Python

Sebagian dari modul bawaan dapat diperluas dengan kode Python dengan menyediakan modul dengan nama yang sama di sistem file. Ekstensibilitas ini berlaku untuk modul pustaka standar Python berikut yang dibangun ke dalam firmware: array, binascii, collections, errno, gzip, hashlib, heapq, io, json, os, platform, random, re, select, socket, ssl, struct, time, zlib, serta modul machine khusus MicroPython. Semua modul bawaan lainnya tidak dapat diperluas dari sistem file.

Hal ini memungkinkan pengguna untuk menyediakan implementasi yang diperluas dari pustaka bawaan (mungkin untuk memberikan kompatibilitas CPython tambahan atau fungsionalitas yang hilang). Ini digunakan secara ekstensif di micropython-lib, lihat Manajemen paket untuk informasi lebih lanjut. Modul sistem file biasanya melakukan impor wildcard dari modul bawaan untuk mewarisi semua global (kelas, fungsi, dan variabel) dari modul bawaan.

Pada MicroPython v1.21.0 dan yang lebih tinggi, untuk mencegah modul sistem file mengimpor dirinya sendiri, modul tersebut dapat memaksakan impor modul bawaan dengan sementara mengosongkan sys.path selama impor. Misalnya, untuk memperluas modul time dari Python, sebuah file bernama time.py di sistem file akan melakukan hal berikut:

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

def extra_method():
  pass

Hasilnya adalah time.py berisi semua global dari modul bawaan time, tetapi menambahkan extra_method.

Pada versi MicroPython yang lebih lama, Anda dapat memaksakan impor modul bawaan dengan menambahkan u di awal namanya. Misalnya, import utime alih-alih import time. Sebagai contoh, time.py di sistem file bisa terlihat seperti:

from utime import *

def extra_method():
  pass

Cara ini masih didukung, tetapi metode sys.path yang dijelaskan di atas kini lebih dianjurkan karena awalan u akan dihapus dari nama modul bawaan di versi MicroPython mendatang.

Selain ketika secara khusus perlu memaksakan penggunaan modul bawaan, kode harus selalu menggunakan import module bukan import umodule.