ספריות OpenMV MicroPython

אזהרה

תקציר חשוב של חלק זה

  • MicroPython מספקת מודולים מובנים המשקפים את הפונקציונליות של ספריית התקן של Python (למשל os, time), וכן מודולים ייחודיים ל-MicroPython (למשל bluetooth, machine).

  • רוב מודולי ספריית התקן של Python מממשים תת-קבוצה של הפונקציונליות של מודול Python המקביל, ובמקרים מעטים מספקים הרחבות ייחודיות ל-MicroPython (למשל array, os)

  • בשל מגבלות משאבים או מגבלות אחרות, ייתכן שגרסאות port או קושחה מסוימות לא יכללו את כל הפונקציונליות המתועדת כאן.

  • כדי לאפשר הרחבה, ניתן להרחיב מקוד Python חלק מהמודולים המובנים, באמצעות טעינתו למערכת הקבצים של ההתקן.

פרק זה מתאר מודולים (ספריות פונקציות ומחלקות) המובנים בתוך MicroPython. תיעוד זה שואף באופן כללי לתאר את כל המודולים והפונקציות/מחלקות המיושמים בפרויקט MicroPython. עם זאת, MicroPython ניתנת להגדרה גמישה במידה רבה, וכל port ללוח/מערכת משובצת מסוימת עשוי לכלול רק תת-קבוצה של ספריות MicroPython הזמינות.

מתוך מחשבה זו, שימו לב כי חלק מהפונקציות/מחלקות במודול (או אפילו המודול כולו) המתוארות בתיעוד זה עשויות להיות לא זמינות בבנייה מסוימת של MicroPython על מערכת מסוימת. המקום הטוב ביותר למצוא מידע כללי על הזמינות/אי-הזמינות של תכונה מסוימת הוא הסעיף ”General Information“ המכיל מידע הנוגע ל-MicroPython port ספציפי.

בחלק מה-ports ניתן לגלות את הספריות הזמינות המובנות שניתן לייבא על ידי הזנת הפקודה הבאה ב-REPL

help('modules')

מעבר לספריות המובנות המתוארות בתיעוד זה, ניתן למצוא מודולים רבים נוספים מספריית התקן של Python, וכן הרחבות נוספות של MicroPython לה, ב-micropython-lib.

ספריות התקן ומיקרו-ספריות של Python

ספריות התקן הבאות של Python עברו ”מיקרו-יזציה“ כדי להשתלב בפילוסופיה של MicroPython. הן מספקות את הפונקציונליות המרכזית של אותו מודול ומיועדות לשמש כתחליף ישיר לספריית התקן של Python.

ספריות OpenMV Cam

הסעיפים הבאים מתארים את הספריות הזמינות בכל לוח הנתמך על ידי OpenMV, כולל הן את המודולים המובנים הייחודיים ל-MicroPython והן את ההרחבות של OpenMV עצמה.

מודולים נפוצים

מובנים בקושחה בכל לוח מצלמה של OpenMV.

מסייעי Python מוקפאים המסופקים ברוב לוחות המצלמה של OpenMV (מנהלי התקן, רישות וכלי עזר):

מסייעי רישות (דורשים ממשק רשת תקין):

מסגרת אינטרנט

מודולי מסגרת שרת אינטרנט. ראו את הסעיפים לפי לוח בהמשך לגבי אילו לוחות כוללים כל אחד מהם.

מודולים ספציפיים ל-port

מודולים הקשורים למשפחת MCU מסוימת. ראו את הסעיפים לפי לוח בהמשך לגבי אילו לוחות כוללים כל אחד מהם.

מנהלי התקן חומרה

מנהלי התקן עבור חיישנים, צגים והתקנים היקפיים אחרים המסופקים בלוח אחד או יותר הנתמכים על ידי OpenMV. ראו את הסעיפים לפי לוח בהמשך לגבי אילו לוחות כוללים כל אחד מהם.

זמינות לפי לוח

הרשימות שלהלן מציגות אילו מודולים ספציפיים ל-port ומנהלי התקן מסופקים בכל לוח. כל המודולים שב-Common, ב-מסייעי Python מוקפאים וב-מסייעי רישות (לעיל) זמינים בכל לוח מצלמה אלא אם צוין אחרת.

OpenMV N6

STM32N657 (Cortex-M55 @ 800 MHz) עם NPU על-שבבי בתדר 1 GHz המדורג ל-600 GOPS INT8. משלב את ה-NPU עם חיישן הצמצם הגלובלי PAG7936 בעל 1 MP.

  • pyb — פונקציות הקשורות ללוח

  • stm — פונקציונליות ייחודית למיקרו-בקרי STM32

  • ssd1306 — מנהל התקן OLED

  • tb6612 — מנהל התקן מנוע TB6612

  • jwt — JSON Web Tokens

  • microdot — מסגרת HTTP מינימלית

OpenMV AE3

SoC דו-ליבתי Alif Ensemble E3: Cortex-M55 @ 400 MHz (HP) בתוספת Cortex-M55 @ 160 MHz (HE), עם שני NPU על-שבביים (NPU HP בתדר 400 MHz / 400 GOPS + NPU HE בתדר 160 MHz / 46 GOPS).

  • alif — פונקציות SoC של Alif Ensemble

  • romfs — כלי עזר של ROMFS

  • pca9674a — מנהל התקן מרחיב I2C מסוג PCA9674A

  • jwt — JSON Web Tokens

  • microdot — מסגרת HTTP מינימלית

OpenMV Cam RT1062

לוח ראייה ממוחשבת חסכוני בחשמל המבוסס על NXP i.MX RT1062 (Cortex-M7 @ 600 MHz). משלב רישות USB-C במהירות גבוהה, Wi-Fi / Bluetooth ו-Ethernet 10/100.

  • mimxrt — פונקציונליות ייחודית ל-NXP i.MX RT

  • dht — חיישני טמפרטורה/לחות DHT11 ו-DHT22

  • onewire — פרוטוקול אפיק 1-Wire

  • ds18x20 — מנהל התקן חיישן טמפרטורה DS18x20

  • neopixel — בקרת נוריות WS2812 / NeoPixel

  • ssd1306 — מנהל התקן OLED

  • tb6612 — מנהל התקן מנוע TB6612

  • pca9674a — מנהל התקן מרחיב I2C מסוג PCA9674A

  • jwt — JSON Web Tokens

  • microdot — מסגרת HTTP מינימלית

OpenMV Pure Thermal

לוח דימות תרמי מערכתי מלא המבוסס על STM32H743 (Cortex-M7 @ 480 MHz) עם 64 MB של SDRAM חיצוני, 32 MB של זיכרון פלאש (flash) מסוג QSPI, מקודד JPEG חומרתי ופלט DVI/HDMI.

  • pyb — פונקציות הקשורות ללוח

  • stm — פונקציונליות ייחודית למיקרו-בקרי STM32

  • tfp410 — מסדר DVI/HDMI

  • ft5x06 — מנהל התקן מסך מגע קיבולי

  • dht — חיישני טמפרטורה/לחות DHT11 ו-DHT22

  • onewire — פרוטוקול אפיק 1-Wire

  • ds18x20 — מנהל התקן חיישן טמפרטורה DS18x20

  • neopixel — בקרת נוריות WS2812 / NeoPixel

  • ssd1306 — מנהל התקן OLED

  • tb6612 — מנהל התקן מנוע TB6612

OpenMV Cam H7 Plus

STM32H743 (Cortex-M7 @ 480 MHz) עם 32 MB של SDRAM חיצוני, 32 MB של זיכרון פלאש (flash) מסוג QSPI, מקודד JPEG חומרתי ומודול המצלמה OV5640 בעל 5MP.

  • pyb — פונקציות הקשורות ללוח

  • stm — פונקציונליות ייחודית למיקרו-בקרי STM32

  • dht — חיישני טמפרטורה/לחות DHT11 ו-DHT22

  • onewire — פרוטוקול אפיק 1-Wire

  • ds18x20 — מנהל התקן חיישן טמפרטורה DS18x20

  • neopixel — בקרת נוריות WS2812 / NeoPixel

  • ssd1306 — מנהל התקן OLED

  • tb6612 — מנהל התקן מנוע TB6612

OpenMV Cam H7

STM32H743 (Cortex-M7 @ 480 MHz) עם 1 MB של SRAM פנימי, 2 MB של זיכרון פלאש (flash) פנימי ומקודד JPEG חומרתי.

  • pyb — פונקציות הקשורות ללוח

  • stm — פונקציונליות ייחודית למיקרו-בקרי STM32

  • dht — חיישני טמפרטורה/לחות DHT11 ו-DHT22

  • onewire — פרוטוקול אפיק 1-Wire

  • ds18x20 — מנהל התקן חיישן טמפרטורה DS18x20

  • neopixel — בקרת נוריות WS2812 / NeoPixel

  • ssd1306 — מנהל התקן OLED

  • tb6612 — מנהל התקן מנוע TB6612

OpenMV Cam M7

STM32F765 (Cortex-M7 @ 216 MHz) עם 512 KB של SRAM פנימי ו-2 MB של זיכרון פלאש (flash) פנימי. מצורף עם חיישן OV7725.

  • pyb — פונקציות הקשורות ללוח

  • stm — פונקציונליות ייחודית למיקרו-בקרי STM32

  • dht — חיישני טמפרטורה/לחות DHT11 ו-DHT22

  • onewire — פרוטוקול אפיק 1-Wire

  • ds18x20 — מנהל התקן חיישן טמפרטורה DS18x20

  • neopixel — בקרת נוריות WS2812 / NeoPixel

  • ssd1306 — מנהל התקן OLED

  • tb6612 — מנהל התקן מנוע TB6612

OpenMV Cam M4

STM32F427 (Cortex-M4 @ 180 MHz) עם 256 KB של SRAM פנימי ו-1 MB של זיכרון פלאש (flash) פנימי. מצורף עם חיישן OV7725.

  • pyb — פונקציות הקשורות ללוח

  • stm — פונקציונליות ייחודית למיקרו-בקרי STM32

  • dht — חיישני טמפרטורה/לחות DHT11 ו-DHT22

  • onewire — פרוטוקול אפיק 1-Wire

  • ds18x20 — מנהל התקן חיישן טמפרטורה DS18x20

  • neopixel — בקרת נוריות WS2812 / NeoPixel

  • ssd1306 — מנהל התקן OLED

  • tb6612 — מנהל התקן מנוע TB6612

Arduino Nicla Vision

לוח ראייה ממוחשבת בגודל 22.86 × 22.86 מ“מ המבוסס על SoC דו-ליבתי STM32H747AII6: Cortex-M7 @ 400 MHz בתוספת Cortex-M4 @ 200 MHz.

  • pyb — פונקציות הקשורות ללוח

  • stm — פונקציונליות ייחודית למיקרו-בקרי STM32

  • lsm6dsox — IMU בעל 6 צירים מסוג LSM6DSOX

  • dht — חיישני טמפרטורה/לחות DHT11 ו-DHT22

  • ds18x20 — מנהל התקן חיישן טמפרטורה DS18x20

  • onewire — פרוטוקול אפיק 1-Wire

  • neopixel — בקרת נוריות WS2812 / NeoPixel

Arduino Portenta H7

לוח פיתוח תעשייתי בגודל 66 × 25 מ“מ המבוסס על SoC דו-ליבתי STM32H747XI: Cortex-M7 @ 400 MHz בתוספת Cortex-M4 @ 200 MHz.

  • pyb — פונקציות הקשורות ללוח

  • stm — פונקציונליות ייחודית למיקרו-בקרי STM32

  • dht — חיישני טמפרטורה/לחות DHT11 ו-DHT22

  • ds18x20 — מנהל התקן חיישן טמפרטורה DS18x20

  • onewire — פרוטוקול אפיק 1-Wire

  • neopixel — בקרת נוריות WS2812 / NeoPixel

  • lora — מנהל התקן מודם LoRa

  • ssd1306 — מנהל התקן OLED

  • tb6612 — מנהל התקן מנוע TB6612

Arduino Giga R1 WiFi

לוח בגודל 101 × 53 מ“מ בפורמט Mega המבוסס על SoC דו-ליבתי STM32H747XI: Cortex-M7 @ 480 MHz בתוספת Cortex-M4 @ 240 MHz, עם מסך מגע מובנה ברזולוציה 800x480.

  • pyb — פונקציות הקשורות ללוח

  • stm — פונקציונליות ייחודית למיקרו-בקרי STM32

  • dht — חיישני טמפרטורה/לחות DHT11 ו-DHT22

  • onewire — פרוטוקול אפיק 1-Wire

  • neopixel — בקרת נוריות WS2812 / NeoPixel

  • gt911 — בקר מגע קיבולי בעל 5 נקודות מסוג GT911

  • ft5x06 — מנהל התקן מסך מגע קיבולי

Arduino Nano RP2040 Connect

לוח בפורמט Nano המבוסס על RP2040 עם מודול ה-Wi-Fi/Bluetooth מסוג U-blox NINA-W102. אינו נתמך עוד באופן פעיל; גרסת הקושחה האחרונה של OpenMV עבור לוח זה נשמרת לשימוש ארכיוני.

  • rp2 — מסייעי PIO / DMA / זיכרון פלאש (flash) ייחודיים ל-RP2040

  • espflash — כלי לצריבת קושחת מאתחל (bootloader) ROM של ESP32

  • lsm6dsox — IMU בעל 6 צירים מסוג LSM6DSOX

  • dht — חיישני טמפרטורה/לחות DHT11 ו-DHT22

  • onewire — פרוטוקול אפיק 1-Wire

  • ds18x20 — מנהל התקן חיישן טמפרטורה DS18x20

  • neopixel — בקרת נוריות WS2812 / NeoPixel

Arduino Nano 33 BLE Sense

לוח בפורמט Nano המבוסס על Nordic nRF52840 עם חבילת חיישני Arduino המובנית. אינו נתמך עוד באופן פעיל; גרסת הקושחה האחרונה של OpenMV עבור לוח זה נשמרת לשימוש ארכיוני.

  • ubluepy — API של התקן היקפי ומרכז Bluetooth LE על Nordic SoftDevice

  • bmi270 — IMU בעל 6 צירים מסוג BMI270

  • bmm150 — מגנטומטר בעל 3 צירים מסוג BMM150

  • lsm9ds1 — IMU בעל 9 צירים מסוג LSM9DS1

  • hts221 — חיישן לחות/טמפרטורה HTS221

  • lps22h — חיישן לחץ LPS22HB/HH

  • hs3003 — חיישן לחות/טמפרטורה HS3003

  • apds9960 — מנהל התקן חיישן קרבה, מחוות וצבע

  • dht — חיישני טמפרטורה/לחות DHT11 ו-DHT22

  • onewire — פרוטוקול אפיק 1-Wire

  • ds18x20 — מנהל התקן חיישן טמפרטורה DS18x20

  • neopixel — בקרת נוריות WS2812 / NeoPixel

הרחבת ספריות מובנות מ-Python

ניתן להרחיב תת-קבוצה של המודולים המובנים באמצעות קוד Python על ידי אספקת מודול בעל אותו שם במערכת הקבצים. הרחבה זו חלה על מודולי ספריית התקן הבאים של Python המובנים בקושחה: array, binascii, collections, errno, gzip, hashlib, heapq, io, json, os, platform, random, re, select, socket, ssl, struct, time, zlib, וכן המודול machine הייחודי ל-MicroPython. כל שאר המודולים המובנים אינם ניתנים להרחבה ממערכת הקבצים.

הדבר מאפשר למשתמש לספק מימוש מורחב של ספרייה מובנית (אולי כדי לספק תאימות CPython נוספת או פונקציונליות חסרה). שיטה זו נמצאת בשימוש נרחב ב-micropython-lib, ראו ניהול חבילות למידע נוסף. מודול מערכת הקבצים יבצע בדרך כלל ייבוא כללי (wildcard) של המודול המובנה כדי לרשת ממנו את כל המשתנים הגלובליים (מחלקות, פונקציות ומשתנים).

ב-MicroPython גרסה v1.21.0 ומעלה, כדי למנוע ממודול מערכת הקבצים לייבא את עצמו, הוא יכול לכפות ייבוא של המודול המובנה על ידי ניקוי זמני של sys.path במהלך הייבוא. לדוגמה, כדי להרחיב את המודול time מ-Python, קובץ בשם time.py במערכת הקבצים יבצע את הפעולות הבאות:

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

def extra_method():
  pass

התוצאה היא ש-time.py מכיל את כל המשתנים הגלובליים של המודול המובנה time, אך מוסיף את extra_method.

בגרסאות מוקדמות יותר של MicroPython, ניתן לכפות ייבוא של מודול מובנה על ידי הוספת u לתחילת שמו. לדוגמה, import utime במקום import time. לדוגמה, time.py במערכת הקבצים יכול להיראות כך:

from utime import *

def extra_method():
  pass

שיטה זו עדיין נתמכת, אך שיטת ה-sys.path המתוארת לעיל מועדפת כעת מכיוון שהקידומת u תוסר משמות המודולים המובנים בגרסה עתידית של MicroPython.

למעט כאשר נדרש באופן ספציפי לכפות שימוש במודול המובנה, קוד צריך תמיד להשתמש ב- import module ולא ב- import umodule.