class Pin – שליטה בפיני קלט/פלט¶
אובייקט Pin מייצג GPIO בודד ב-STM32. הוא מספק מתודות להגדרת מצב הפין (קלט, פלט, פונקציה חלופית, אנלוגי) ונגדי משיכה (pull), ולקריאה או נהיגה של הרמה הדיגיטלית שלו. לדגימה אנלוגית ראו pyb.ADC; לרשימת הפונקציות החלופיות ראו PinAF.
כל פיני המחבר מוגדרים מראש כ-pyb.Pin.board.<name>. רוב מצלמות OpenMV Cam מבוססות STM32 חושפות את פיני מחבר הקלט/פלט P0 … P9; ה-OpenMV Cam N6 חושפת פינים נוספים עד P18
p0 = pyb.Pin.board.P0
g = pyb.Pin(pyb.Pin.board.P0, pyb.Pin.IN)
ניתן גם לפנות ישירות לפורט/פין של ה-STM32 הבסיסי דרך pyb.Pin.cpu.<name>, הקרוי על שם אות הפורט ואחריה מספר הפין (לדוגמה pyb.Pin.cpu.A0). מיפוי כל פין מחבר של OpenMV לפין CPU קבוע על ידי הלוח.
ניתן לבחור פינים גם לפי שם מחרוזת:
g = pyb.Pin("P0", pyb.Pin.OUT_PP)
ניתן להוסיף שמות מותאמים אישית באמצעות Pin.dict()
MyMapperDict = {"LeftMotorDir": pyb.Pin.cpu.A0}
pyb.Pin.dict(MyMapperDict)
g = pyb.Pin("LeftMotorDir", pyb.Pin.OUT_OD)
ולשלוף אותם בחזרה:
pin = pyb.Pin("LeftMotorDir")
לחלופין, ניתן להתקין פונקציית מיפוי מותאמת אישית באמצעות Pin.mapper()
def MyMapper(pin_name):
if pin_name == "LeftMotorDir":
return pyb.Pin.cpu.A0
pyb.Pin.mapper(MyMapper)
כך שקריאה ל-pyb.Pin("LeftMotorDir", pyb.Pin.OUT_PP) מעבירה את "LeftMotorDir" ישירות לפונקציית המיפוי.
הסדר הבא קובע כיצד שם ממופה לפין פיזי:
אובייקט
Pinמועבר ישירות.פונקציית המיפוי שסיפק המשתמש מחזירה פין.
המילון שסיפק המשתמש מכיל מפתח תואם.
המחרוזת תואמת לשם פין של הלוח (
P0,P1, …).המחרוזת תואמת לשם פורט/פין של ה-CPU (
A0,B7, …).
קראו ל-pyb.Pin.debug(True) כדי להדפיס מידע אבחוני על אופן מיפוי כל אובייקט לפין.
בנאים¶
- class pyb.Pin(id: str | Pin, *args, **kwargs)¶
יוצר אובייקט Pin חדש המשויך ל-
idהנתון. אם ניתנים ארגומנטים נוספים הם מועברים ל-Pin.init()כדי להגדיר את הפין.מתודות מחלקה¶
- classmethod debug(state: bool | None = None) bool | None¶
מקבל או מגדיר את מצב הניפוי (
TrueאוFalseלהפעלה או כיבוי).
מתודות¶
- init(mode: int, pull: int = Pin.PULL_NONE, *, value: int | None = None, alt: int | str = -1) None¶
אתחול הפין:
mode יכול להיות אחד מהבאים:
Pin.IN- הגדרת הפין לקלט;Pin.OUT_PP- הגדרת הפין לפלט, עם בקרת push-pull;Pin.OUT_OD- הגדרת הפין לפלט, עם בקרת open-drain;Pin.ALT- הגדרת הפין לפונקציה חלופית, קלט או פלט;Pin.AF_PP- הגדרת הפין לפונקציה חלופית, push-pull;Pin.AF_OD- הגדרת הפין לפונקציה חלופית, open-drain;Pin.ANALOG- הגדרת הפין למצב אנלוגי.
pull יכול להיות אחד מהבאים:
Pin.PULL_NONE- ללא נגדי משיכה למעלה או למטה;Pin.PULL_UP- הפעלת נגד המשיכה למעלה (pull-up);Pin.PULL_DOWN- הפעלת נגד המשיכה למטה (pull-down).
כאשר לפין מופעל מצב המשיכה
Pin.PULL_UPאוPin.PULL_DOWN, הפין נמשך ל-3V3 או ל-GND בהתאמה דרך נגד פנימי (בדרך כלל עשרות kOhm – ראו את המאפיינים החשמליים בגיליון הנתונים של ה-STM32 עבור ה-OpenMV Cam שבשימוש).value, אם אינו None, יגדיר את ערך פלט הפורט לפני הפעלת הפין.
alt ניתן לשימוש כאשר המצב הוא
Pin.ALT,Pin.AF_PPאוPin.AF_ODכדי להגדיר את האינדקס או השם של אחת מהפונקציות החלופיות המשויכות לפין. ארגומנט זה נקרא בעברafוניתן עדיין להשתמש בו במידת הצורך.
- value(value: Any | None = None) int | None¶
מקבל או מגדיר את רמת הלוגיקה הדיגיטלית של הפין:
ללא ארגומנט, מחזיר 0 או 1 בהתאם לרמת הלוגיקה של הפין.
כאשר ניתן
value, מגדיר את רמת הלוגיקה של הפין.valueיכול להיות כל דבר הניתן להמרה לערך בוליאני. אם הוא מומר ל-True, הפין מוגדר לרמה גבוהה, אחרת הוא מוגדר לרמה נמוכה.
- af() int¶
מחזיר את הפונקציה החלופית המוגדרת כעת של הפין. המספר השלם המוחזר יתאים לאחד הקבועים המותרים לארגומנט af של פונקציית האתחול.
קבועים¶