בלוגים
בלוגים
מבוא קל למערכות משובצות (1) - מהו MicroPython?
2022-03-08 1224

ככל ש-Python הפכה לשפת התכנות השלטת, MicroPython הפכה יותר ויותר פופולרית בתחום המערכות המשובצות, במיוחד ב-ESP32 הפופולרי ובמודול Pico מבוסס המיקרו-בקר RP2040 ששוחרר זה עתה על ידי Raspberry PI Foundation.

בתור באנון שלא יכול היה לכתוב שורת קוד, הרגשתי מוגבל מאוד ברוב הזמן, ונשבעתי למצוא זמן טוב ללמוד שפת תכנות. הקדשתי את עצמי ל-MicroPython במהלך החג הלאומי בן 7 הימים, והבנתי את כל הפונקציות של ציוד היקפי על הלוח בלוח הלמידה של הרחבת Pico שתוכנן על ידי:

  • תאורה מהודרת - מונוכרום, RGB שלושה צבעים, כל מיני שילובים, ניתן לשלוט גם על ידי כפתורים וחיישנים

  • מסך ה-OLED מציג טקסט, תמונות וצורות גל

  • אות האודיו נאסף ומוצג על מסך ה-OLED - מה שיוצר תצוגת צורת גל מגניבה

  • מנגן את "אני והמדינה שלי" עם הבאזר על הלוח

  • העברת קוד של מישהו אחר ליצירת צורות גל שרירותיות - שינוי צורות גל, שינוי תדר, שינוי גודל וכו'



מה שהכי הרשים אותי במהלך ה"חקירה" של 7 ימים היה כמה קל היה להתחיל עם מערכות משובצות ב-MicroPython - משאבי קוד פתוח עשירים, צורות התייחסות שונות, כמו קורסי וידאו, מקרים של טקסט וכו'.

MicroPython היא באמת שפת תכנות מצוינת - מונחה עצמים, גמישה, פשוטה, אלגנטית!

הלמידה האישית שלי מרוויחה משיתוף של אחרים (קוד פתוח), והדרך הטובה ביותר להעביר ידע היא לשתף את מה שלמדתי ומה שלמדתי. לכן, אני מתכנן להשיק מדריך תכנות משובץ Micro Python המבוסס על Pico, שיושק רשמית בעוד חודש. כמובן, בשלב המוקדם, יתקיימו 15 קורסים חיים לעיצוב PCB, שיובילו אותך לעצב לוח למידה של Pico בעצמך. אחרי הכל, בסביבה הנוחה של לוח הדפסה חינם ומשלוח חינם, המבוסס על לוח ליבה של Pico, כל אחד יכול לעצב PCB כדי ליצור יישומים מעניינים שונים בעתיד. למידה כיצד לעצב PCB יכול להיות יתרון גם למהנדסי מערכות משובצות.

מעתה, תהיה סדרת מאמרים טכניים הקשורים לקורס זה. היום הוא הראשון:

1. מה זה MicroPython

MicroPython הוא מתורגמן קטן של שפת תכנות Python בקוד פתוח הפועל על לוח פיתוח מוטבע קטן. עם MicroPython, אתה יכול לכתוב קוד Python נקי ופשוט כדי לשלוט בחומרה מבלי שתצטרך להשתמש בשפות מורכבות כמו C או C++ (Arduino לתכנות).


לוגו של MicroPython

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

בנוסף להיותו קל לשימוש, ל-MicroPython יש כמה תכונות ייחודיות שמבדילות אותו ממערכות משובצות אחרות:

השתמש במתורגמן אינטראקטיבי: REPL (קרא קריאה- הערכת הערך- הדפס הדפס- לולאה) - זה מאפשר לך להתחבר ללוח ולגרום לו להפעיל קוד ללא קומפילציה או העלאה - מושלם ללמידה מהירה והתנסות בחומרה!

ספריות תוכנה עשירות - כמו שפת התכנות הרגילה Python, ל-MicroPython יש מספר רב של ספריות מובנות כדי לתמוך במשימות רבות. לדוגמה, באמצעות הספריות המובנות של MicroPython, קל לנתח נתוני JSON משירותי אינטרנט, לחפש טקסט באמצעות ביטויים רגולריים ואפילו לבצע תכנות שקעי רשת.

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

MicroPython הוא גרסה של שפת Python 3. זוהי פרי מוחו של דאריין פ. ג'ורג', Ph.D., מאוניברסיטת קיימברידג', שעבד עם צוות מימון המונים לפיתוח לוח פיתוח חומרה המותאם ל-microPython בשם PyBoard בשנת 2013. MicroPython1.0 הוצג בכנס Python ( PyCon) בשנת 2014. ד"ר ג'ורג' גם הקים את אתר Micro Python.org (www.micropython.org) כדי לתמוך ב-MicroPython ו-Pyboard.


הלוגו הרשמי של MicroPython.Org

MicroPython.Org PyBoard, מבוסס על בקר STM32.


2. מה יכול MicroPython לעשות?

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

בדיוק כמו לוחות Arduino, MicroPython יכול לשלוט בחומרה ובמכשירים מחוברים -- אתה יכול לשלוט על אורות מהבהבים פינים GPIO, קריאת מתגים ועוד; יכול להניע את אות PWM שיכול להניע את השרת וה-LED; חיישנים אנלוגיים ניתנים לקריאה וקריאה באמצעות ממיר אנלוגי לדיגיטלי. קל גם לתקשר עם התקני I2C או SPI. אתה יכול אפילו למצוא תמיכה ברשת וב-WiFi בחלק מהלוחות. ל-MicroPython יש אפילו ספריות לשליטה בחומרה אחרת, כמו NeoPixels ורצועות LED, צגי OLED מיניאטוריים וכו'. בקיצור, MicroPython יכול לעשות הרבה דברים!

מהן המגבלות של MicroPython?

ל-MicroPython יש מעט מאוד מגבלות, וכמעט כל דבר ש-Arduino יכול לעשות ניתן לעשות באמצעות לוחות MicroPython. עם זאת, חשוב לציין שקוד MicroPython אינו מהיר ועשוי לדרוש יותר זיכרון מ-Arduino דומה או קוד אחר מבוסס C/C++ ברמה נמוכה, אם כי זה בדרך כלל לא משנה כי הבדלי המהירות והזיכרון אינם גדולים מספיק כדי להשפיע על רוב היישומים. שים לב שקוד שהוא קריטי לזמן או לביצועים עשוי שלא לעבוד ב-MicroPython. לדוגמה, שימוש בתוכנה לחלוטין להנעת פיני IO כדי ליישם כמה פרוטוקולי תקשורת טוריים במהירות גבוהה ב-MicroPython עשוי להיות לא הרעיון הטוב ביותר. עם זאת, ישנן דרכים לערבב קוד MicroPython וקוד C/C++ ברמה נמוכה כך שנוכל לקבל את הטוב משני העולמות - ההיגיון העיקרי הוא קוד MicroPython נקי וקל להבנה, בעוד שהחלקים הקריטיים לביצועים כתובים ב קוד מהיר יותר ברמה נמוכה.

שפת MicroPython מיישמת את רוב שפת הליבה של Python 3, אך MicroPython לא מיישמת את כל הספרייה הסטנדרטית של Python 3. פייתון ידועה כבעלת ספרייה סטנדרטית נרחבת, אך ניסיון לדחוס ספרייה כה גדולה על לוח קטן עם קילובייטים בלבד של זיכרון הוא בלתי אפשרי. במקום זאת, MicroPython מיישמת כמה גרסאות קטנות יותר של הספרייה הסטנדרטית של Python, ומספקת חווית פיתוח נהדרת.


כתב ויתור: מאמר זה נדפס מחדש מתוך "יער אלקטרוני", מאמר זה מייצג רק את דעותיו האישיות של המחבר, אינו מייצג את דעותיהם של Sakwei והתעשייה, רק משוכפל ומשותף, תומך בהגנה על זכויות קניין רוחני, נא לציין את המקור המקורי ומחבר, אם יש הפרה, אנא צור איתנו קשר כדי למחוק.



Related Recommendations
whatsapp

Service Hotline

tel: +86 755 83044319

WhatsApp

Whatsapp:+8618073002950