מילון מונחים¶
- baremetal¶
מערכת ללא מערכת הפעלה (מלאה), למשל מערכת מבוססת MCU. בעת ריצה על מערכת baremetal, MicroPython מתפקדת למעשה כמערכת הפעלה קטנה, מריצה תוכניות משתמש ומספקת מפרש פקודות (REPL).
- buffer protocol¶
כל אובייקט Python שניתן להמיר אוטומטית לבתים, כגון אובייקטי
bytes,bytearray,memoryviewו-str, אשר כולם מממשים את ”buffer protocol“.- board¶
בדרך כלל זה מתייחס ללוח מעגל מודפס (PCB) המכיל מיקרו-בקר ורכיבים תומכים. קושחת MicroPython מסופקת בדרך כלל לכל לוח בנפרד, מכיוון שהקושחה מכילה גם פונקציונליות ספציפית ל-MCU וגם פונקציונליות ברמת הלוח כגון דרייברים או שמות פינים.
- bytecode¶
ייצוג קומפקטי של תוכנית Python הנוצר על ידי קומפילציה של קוד המקור של Python. זהו מה שה-VM מבצע בפועל. בדרך כלל ה-bytecode נוצר אוטומטית בזמן ריצה והוא בלתי נראה למשתמש. שים לב שבעוד ש-CPython ו-MicroPython שתיהן משתמשות ב-bytecode, הפורמט שונה. ניתן גם לבצע קומפילציה מראש של קוד המקור באופן לא מקוון באמצעות ה-cross-compiler.
- callee-owned tuple¶
זוהי תבנית ספציפית ל-MicroPython שבה, מטעמי יעילות, פונקציות או שיטות מובנות מסוימות עשויות לעשות שימוש חוזר באותו אובייקט tuple בסיסי כדי להחזיר נתונים. זה חוסך את הצורך להקצות tuple חדש בכל קריאה, ומפחית את פיצול ה-heap. תוכניות לא צריכות להחזיק הפניות ל-callee-owned tuples ובמקום זאת רק לחלץ מהן נתונים (או ליצור עותק).
- CircuitPython¶
וריאנט של MicroPython שפותח על ידי Adafruit Industries.
- CPython¶
CPython הוא מימוש ההתייחסות של שפת התכנות Python, והידוע ביותר. עם זאת, הוא אחד ממימושים רבים (כולל Jython, IronPython, PyPy ו-MicroPython). בעוד שהמימוש של MicroPython שונה באופן מהותי מ-CPython, הוא שואף לשמור על כמה שיותר תאימות.
- cross-compiler¶
ידוע גם בשם
mpy-cross. כלי זה רץ על המחשב שלך וממיר .py file המכיל קוד MicroPython ל-.mpy file המכיל bytecode של MicroPython. משמעות הדבר היא שהוא נטען מהר יותר (הלוח אינו צריך לקמפל את הקוד), ומשתמש בפחות מקום בזיכרון הפלאש (ה-bytecode חסכוני יותר במקום).- driver¶
ספריית MicroPython המממשת תמיכה ברכיב מסוים, כגון חיישן או צג.
- FFI¶
ראשי תיבות של Foreign Function Interface. מנגנון המשמש את ה-MicroPython Unix port כדי לגשת לפונקציונליות של מערכת ההפעלה. זה אינו זמין ב-ports מסוג baremetal.
- filesystem¶
רוב ה-ports והלוחות של MicroPython מספקים מערכת קבצים המאוחסנת בזיכרון הפלאש הזמינה לקוד המשתמש באמצעות ממשקי הקבצים הסטנדרטיים של Python כגון
open(). חלק מהלוחות גם הופכים מערכת קבצים פנימית זו לנגישה למארח דרך אחסון המוני (mass storage) של USB.- frozen module¶
מודול Python שעבר קומפילציה צולבת ונארז לתוך תמונת הקושחה. זה מפחית את דרישות ה-RAM מכיוון שהקוד מבוצע ישירות מזיכרון הפלאש.
- Garbage Collector¶
תהליך רקע הרץ ב-Python (וב-MicroPython) כדי לשחזר זיכרון שאינו בשימוש ב-heap.
- GPIO¶
קלט/פלט למטרות כלליות. האמצעי הפשוט ביותר לשליטה באותות חשמליים (המכונים בדרך כלל ”פינים“) במיקרו-בקר. GPIO מאפשר בדרך כלל לפינים להיות קלט או פלט, ולהגדיר או לקרוא את הערך הדיגיטלי שלהם (”0“ או ”1“ לוגי). MicroPython מפשטת את הגישה ל-GPIO באמצעות המחלקות
machine.Pinו-machine.Signal.- GPIO port¶
קבוצה של פיני GPIO, בדרך כלל מבוססת על תכונות חומרה של פינים אלה (למשל ניתנים לשליטה על ידי אותו אוגר (register)).
- heap¶
אזור ב-RAM שבו MicroPython מאחסנת נתונים דינמיים. הוא מנוהל אוטומטית על ידי ה-Garbage Collector. ל-MCUs ולוחות שונים יש כמויות שונות מאוד של RAM הזמין ל-heap, ולכן זה ישפיע על מידת המורכבות של התוכנית שלך.
- interned string¶
אופטימיזציה המשמשת את MicroPython כדי לשפר את יעילות העבודה עם מחרוזות. מחרוזת interned מופנית על ידי הזהות (הייחודית) שלה ולא על ידי הכתובת שלה, ולכן ניתן להשוות אותה במהירות רק לפי המזהה שלה. משמעות הדבר היא גם שניתן לבטל כפילויות של מחרוזות זהות בזיכרון. interning של מחרוזות הוא כמעט תמיד בלתי נראה למשתמש.
- MCU¶
מיקרו-בקר. למיקרו-בקרים יש בדרך כלל הרבה פחות משאבים ממחשב שולחני, מחשב נייד או טלפון, אך הם קטנים יותר, זולים יותר ודורשים הרבה פחות חשמל. MicroPython תוכננה להיות קטנה ומיטבית מספיק כדי לרוץ על מיקרו-בקר מודרני ממוצע.
- micropython-lib¶
MicroPython מופצת (בדרך כלל) כקובץ הפעלה/בינארי יחיד עם מספר מצומצם של מודולים מובנים. אין ספרייה סטנדרטית מקיפה הניתנת להשוואה לזו של CPython. במקום זאת, קיים פרויקט קשור אך נפרד micropython-lib המספק מימושים למודולים רבים מהספרייה הסטנדרטית של CPython.
חלק מהמודולים ממומשים ב-Python טהור ורצים על כל port; קושחת OpenMV מקפיאה מבחר מהם (דרייברים של חיישנים, רשתות ועוזרי שירות) ישירות לתוך תמונת הקושחה כך שניתן לייבא אותם ללא התקנה של שום דבר. מספר קטן יותר של מודולי micropython-lib משתמשים ב-FFI ועובדים רק על ה-MicroPython Unix port; אלה אינם זמינים ב-OpenMV Cams.
בניגוד לספריית הסטנדרט של CPython, מודולי micropython-lib שאינם מוקפאים פנימה מותקנים בנפרד - או על ידי העתקתם למערכת הקבצים, או, בלוחות בעלי יכולת רשת, באמצעות mip.
- MicroPython port¶
MicroPython תומכת ב-לוחות, מערכות הפעלה בזמן אמת (RTOS) ומערכות הפעלה שונות, וניתן להתאים אותה בקלות יחסית למערכות חדשות. MicroPython עם תמיכה במערכת מסוימת נקראת ”port“ למערכת זו. ל-ports שונים עשויה להיות פונקציונליות שונה מאוד. תיעוד זה נועד להיות התייחסות לממשקי ה-API הגנריים הזמינים ב-ports שונים (”ליבת MicroPython“). שים לב ש-ports מסוימים עדיין עשויים להשמיט חלק מממשקי ה-API המתוארים כאן (למשל עקב מגבלות משאבים). כל הבדל כזה, והרחבות ספציפיות ל-port מעבר לפונקציונליות הליבה של MicroPython, יתוארו בתיעוד הנפרד הספציפי ל-port.
- MicroPython Unix port¶
ה-Unix port הוא אחד מ-MicroPython ports המרכזיים. הוא נועד לרוץ על מערכות הפעלה תואמות POSIX, כגון Linux, MacOS, FreeBSD, Solaris וכו«. הוא גם משמש כבסיס ל-Windows port. ה-Unix port שימושי מאוד לפיתוח ובדיקה מהירים של שפת MicroPython ושל מאפיינים שאינם תלויי מכונה. הוא יכול גם לתפקד באופן דומה לקובץ ההפעלה
pythonשל CPython.- mip¶
מתקין חבילות עבור MicroPython (mip - ”mip installs packages“). הוא מתקין חבילות MicroPython מ-micropython-lib, מ-GitHub, או מכתובות URL שרירותיות. ניתן להשתמש ב-mip על ההתקן בלוחות בעלי יכולת רשת, וגם באופן פנימי על ידי כלים כגון mpremote.
ראה ניהול חבילות למידע נוסף על השימוש ב-
mip.- mpremote¶
כלי לאינטראקציה עם התקן MicroPython. ראה שליטה מרחוק ב-MicroPython: mpremote.
- .mpy file¶
הפלט של ה-cross-compiler. צורה מקומפלת של .py file המכילה bytecode של MicroPython במקום קוד מקור של Python.
- native¶
בדרך כלל מתייחס ל-”native code“, כלומר קוד מכונה עבור המיקרו-בקר היעד (ARM Thumb ב-OpenMV Cams מבוססות Cortex-M). ניתן להחיל את הדקורטור
@micropython.nativeעל פונקציית MicroPython כדי לייצר native code במקום bytecode עבור אותה פונקציה, מה שכנראה יהיה מהיר יותר אך ישתמש בכמות גדולה יותר של RAM.- port¶
בדרך כלל קיצור של MicroPython port, אך יכול גם להתייחס ל-GPIO port.
- .py file¶
קובץ המכיל קוד מקור של Python.
- pyboard.py¶
כלי בצד המארח, כיום מיושן, לאינטראקציה עם לוח MicroPython — הרצת סקריפטים וגישה למערכת הקבצים דרך ה-REPL הגולמי. ראה את החלופה שלו, mpremote.
- REPL¶
ראשי תיבות של ”Read, Eval, Print, Loop“. זוהי שורת הפקודה האינטראקטיבית של Python, שימושית לניפוי שגיאות או לבדיקת קטעי קוד קצרים. OpenMV Cams הופכות את ה-REPL לזמין למחשב מארח דרך USB (התקן טורי מסוג USB CDC).
- small integer¶
MicroPython ממטבת את הייצוג הפנימי של מספרים שלמים כך שערכים ”קטנים“ אינם תופסים מקום ב-heap, וחישובים איתם אינם דורשים הקצאת heap. ברוב ה-ports בני 32 סיביות, זה מתאים לערכים בטווח
-2**30 <= x < 2**30, אך יש להתייחס לכך כפרט מימוש ולא להסתמך עליו.- stream¶
ידוע גם בשם ”file-like object“. אובייקט Python המספק גישת קריאה-כתיבה רציפה לנתונים הבסיסיים. אובייקט stream מממש ממשק מתאים, המורכב משיטות כגון
read(),write(),readinto(),seek(),flush(),close()וכו«. stream הוא מושג חשוב ב-MicroPython; אובייקטי קלט/פלט רבים מממשים את ממשק ה-stream, ולכן ניתן להשתמש בהם באופן עקבי וניתן להחלפה בהקשרים שונים. למידע נוסף על streams ב-MicroPython, ראה את המודולio.- UART¶
ראשי תיבות של ”Universal Asynchronous Receiver/Transmitter“. זהו התקן היקפי השולח נתונים דרך זוג פינים (TX ו-RX). לוחות רבים כוללים דרך להפוך לפחות אחד מה-UARTs לזמין למחשב מארח כיציאה טורית דרך USB.
- upip¶
מנהל חבילות מיושן כיום עבור MicroPython, בהשראת ה-pip של CPython, אך קטן בהרבה ובעל פונקציונליות מצומצמת. ראה את החלופה שלו, mip.
- webrepl¶
דרך להתחבר ל-REPL (ולהעביר קבצים) בהתקן דרך האינטרנט מתוך דפדפן. ראה https://micropython.org/webrepl