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 (misalnyabluetooth,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.
array--- array dari data numerikasyncio--- penjadwal I/O asinkronbinascii--- konversi biner/ASCIIbuiltins--- fungsi dan eksepsi bawaancmath--- fungsi matematika untuk bilangan komplekscollections--- tipe koleksi dan kontainererrno--- kode kesalahan sistemgc--- kendalikan garbage collectorgzip--- kompresi & dekompresi gziphashlib--- algoritma hashingheapq--- algoritma antrian heapio--- aliran input/outputjson--- enkoding dan dekoding JSONmarshal--- Serialisasi objek Pythonmath--- fungsi matematikaos--- layanan "sistem operasi" dasarplatform--- akses ke data identifikasi platform dasarrandom--- menghasilkan bilangan acakre--- ekspresi reguler sederhanaselect--- menunggu event pada sekumpulan streamsocket--- modul socket- Modul
ssl--- SSL/TLS - Modul
string.templatelib--- Dukungan Template String - Modul
struct--- pack dan unpack tipe data primitif sys--- fungsi-fungsi khusus sistemtime--- fungsi-fungsi terkait waktutypes--- nama untuk tipe bawaanzlib--- kompresi & dekompresi zlib
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.
bluetooth--- Bluetooth tingkat rendahcryptolib--- cipher kriptografideflate--- kompresi & dekompresi deflateframebuf--- manipulasi buffer bingkaimachine--- fungsi-fungsi terkait perangkat kerasmicropython--- akses dan kontrol internal MicroPythonnetwork--- konfigurasi jaringanopenamp--- menyediakan dukungan Asymmetric Multiprocessing (AMP) standaructypes--- mengakses data biner secara terstrukturvfs--- kontrol sistem berkas virtualcsi--- sensor kamerasensor--- sensor kameraimage--- visi mesingif--- perekaman gifmjpeg--- perekaman mjpegaudio--- Modul Audiodisplay--- driver displayfir--- driver sensor termal (fir == far infrared)tof--- driver sensor time-of-flightimu--- sensor imuomv--- Informasi OpenMV Camcrc--- Komputasi CRCml--- Machine Learningulab--- library array kompatibel-numpyprotocol--- Saluran Protokol OpenMVlogging--- pencatatan peristiwasenml--- Sensor Markup Language
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.
dht--- sensor suhu/kelembaban DHT11 dan DHT22onewire--- Protokol bus 1-Wireds18x20--- driver sensor suhu DS18x20neopixel--- kendali LED WS2812 / NeoPixellsm6dsox--- IMU 6-sumbu LSM6DSOXbmi270--- BMI270 6-axis IMUbmm150--- BMM150 3-axis magnetometerlsm9ds1--- IMU 9-sumbu LSM9DS1hts221--- sensor kelembapan/suhu HTS221lps22h--- sensor tekanan LPS22HB/HHhs3003--- sensor kelembaban/suhu HS3003espflash--- pemflash firmware bootloader ROM ESP32imu--- helper IMU untuk Arduino Nano 33 BLE Sensessd1306--- Driver OLEDtb6612--- Driver motor TB6612pca9674a--- Driver I2C Expandertfp410--- Pengontrol DVI/HDMIft5x06--- Driver Layar Sentuhgt911--- Pengontrol Sentuh Kapasitif 5-Titik GT911lora--- Driver modem LoRaapds9960--- Driver Sensor Kedekatan, Gerak, dan Warnaromfs--- Utilitas pembantu ROMFS
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 papanstm--- fungsionalitas khusus untuk MCU STM32ssd1306--- driver OLEDtb6612--- driver motor TB6612jwt--- JSON Web Tokensmicrodot--- 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 Ensembleromfs--- utilitas helper ROMFSpca9674a--- driver ekspander I2C PCA9674Ajwt--- JSON Web Tokensmicrodot--- 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 RTdht--- sensor suhu/kelembapan DHT11 dan DHT22onewire--- protokol bus 1-Wireds18x20--- driver sensor suhu DS18x20neopixel--- kontrol LED WS2812 / NeoPixelssd1306--- driver OLEDtb6612--- driver motor TB6612pca9674a--- driver ekspander I2C PCA9674Ajwt--- JSON Web Tokensmicrodot--- 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 papanstm--- fungsionalitas khusus untuk MCU STM32tfp410--- serializer DVI/HDMIft5x06--- driver touchscreen kapasitifdht--- sensor suhu/kelembapan DHT11 dan DHT22onewire--- protokol bus 1-Wireds18x20--- driver sensor suhu DS18x20neopixel--- kontrol LED WS2812 / NeoPixelssd1306--- driver OLEDtb6612--- 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 papanstm--- fungsionalitas khusus untuk MCU STM32dht--- sensor suhu/kelembapan DHT11 dan DHT22onewire--- protokol bus 1-Wireds18x20--- driver sensor suhu DS18x20neopixel--- kontrol LED WS2812 / NeoPixelssd1306--- driver OLEDtb6612--- 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 papanstm--- fungsionalitas khusus untuk MCU STM32dht--- sensor suhu/kelembapan DHT11 dan DHT22onewire--- protokol bus 1-Wireds18x20--- driver sensor suhu DS18x20neopixel--- kontrol LED WS2812 / NeoPixelssd1306--- driver OLEDtb6612--- 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 papanstm--- fungsionalitas khusus untuk MCU STM32dht--- sensor suhu/kelembapan DHT11 dan DHT22onewire--- protokol bus 1-Wireds18x20--- driver sensor suhu DS18x20neopixel--- kontrol LED WS2812 / NeoPixelssd1306--- driver OLEDtb6612--- 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 papanstm--- fungsionalitas khusus untuk MCU STM32dht--- sensor suhu/kelembapan DHT11 dan DHT22onewire--- protokol bus 1-Wireds18x20--- driver sensor suhu DS18x20neopixel--- kontrol LED WS2812 / NeoPixelssd1306--- driver OLEDtb6612--- 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 papanstm--- fungsionalitas khusus untuk MCU STM32lsm6dsox--- IMU 6-sumbu LSM6DSOXdht--- sensor suhu/kelembapan DHT11 dan DHT22ds18x20--- driver sensor suhu DS18x20onewire--- protokol bus 1-Wireneopixel--- 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 papanstm--- fungsionalitas khusus untuk MCU STM32dht--- sensor suhu/kelembapan DHT11 dan DHT22ds18x20--- driver sensor suhu DS18x20onewire--- protokol bus 1-Wireneopixel--- kontrol LED WS2812 / NeoPixellora--- driver modem LoRassd1306--- driver OLEDtb6612--- 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 papanstm--- fungsionalitas khusus untuk MCU STM32dht--- sensor suhu/kelembapan DHT11 dan DHT22onewire--- protokol bus 1-Wireneopixel--- kontrol LED WS2812 / NeoPixelgt911--- kontroler sentuh kapasitif 5-titik GT911ft5x06--- 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 RP2040espflash--- flasher firmware bootloader ROM ESP32lsm6dsox--- IMU 6-sumbu LSM6DSOXdht--- sensor suhu/kelembapan DHT11 dan DHT22onewire--- protokol bus 1-Wireds18x20--- driver sensor suhu DS18x20neopixel--- 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 SoftDevicebmi270--- IMU 6-sumbu BMI270bmm150--- magnetometer 3-sumbu BMM150lsm9ds1--- IMU 9-sumbu LSM9DS1hts221--- sensor kelembapan/suhu HTS221lps22h--- sensor tekanan LPS22HB/HHhs3003--- sensor kelembapan/suhu HS3003apds9960--- driver sensor proximity, gestur, dan warnadht--- sensor suhu/kelembapan DHT11 dan DHT22onewire--- protokol bus 1-Wireds18x20--- driver sensor suhu DS18x20neopixel--- 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.