מיקרו פייתון היא גרסת פייתון קטנה שמתאימה לתכנות בקרים ומערכות משובצות.
מיקרו פייתון היא למעשה מפרש פייתון + הספריות הבסיסיות של שפת פייתון וכדי לתכנת בקרים עם מיקרו-פייתון צריך לצרוב אותה אל הבקר .
היא תומכת כרגע בין היתר בלוחות הבאים:
- pyboard – זהו הלוח הרשמי של מיקרו-פייתון שמגיע עם הקושחה מובנית בפנים
- wipy – לוח wifi מקצועי שאפשר לתכנת עם מיקרו-פייתון דרך האינטרנט
- teensy – לוח קטן שמבוסס על ARM וכולל סביבת פיתוח ייעודית
- micro:bit – עוד לוח קטנצ’יק מבוסס ARM שאפשר לתכנת עם מיקרו-פייתון
- ארדואינו זירו וכל הלוחות המבוססים על SAMD21
- ESP8266 – עד היום תכנתנו אותו עם LUA ארדואינו או C. מהיום אפשר גם עם מיקרו-פייתון
ESP8266
ללוח הזה יש מספיק זכרון וכח מחשוב כדי להריץ מיקרו-פייתון אז יאללה אפשר להתחיל. קודם כל צריך להוריד את הקושחה ולצרוב אותה על הלוח ופה יש הסברים איך לעשות את זה. בעקרון התוכנה שצורבת את הקושחה ללוח נקראית esptool.
אחרי שצרבנו את הקושחה של מיקרו פייתון ללוח אפשר להתחיל לתכנת את הלוח. מיקרו-פייתון מציגה את עצמה בתור טרמינל שאפשר להכניס אליו פקודות והגישה אליו היא על ידי REPL(read-evaluate-print loop) . אפשר לתכנת דרך פתחה של תקשורת טורית או על ידי הרשת – WebREPL .
תכנות על ידי תקשורת טורית הוא הפשוט והמומלץ למתחילים אבל האפשרות של תכנות דרך הרשת היא מעניינת מאוד ופותחת אפשרויות חדשות. דמיינו את הלוח יושב איפשהו ופתאום אנחנו מחליטים להעלות לו קוד חדש. תכנות דרך האוויר(over the air programming) היא הדרך לתכנת אותו מכל מקום בעולם. לשנות הגדרות רשת או להעלות קוד חדש.
בכל מקרה נתרכז הפעם בהעלאת קוד על ידי תקשורת טורית. לווינדוס צריך תוכנה שנקראית putty וללינוקס ומאק צריך תוכנה שנקראית screen.
בלינוקס ומאק הפקודה הבאה מתחילה תכנות ב- REPL :
screen /dev/ttyUSB0 115200
כמובן הכניסו את הפורט המתאים.
עכשיו אנחנו בתוך הטרמינל וצריך ללחוץ ENTER כדי לתפעל את זה:
מי היה מאמין? פשוט כותבים קוד פייתון סטנדרטי לוחצים ENTER והתוכנה מופעלת בלוח ESP8266!!
או קיי אז אפשר להריץ קוד סטנדרטי של פייתון על ESP8266 אבל איך מתפעלים את הפינים, איך מתחברים לאינטרנט?
יש ספריות שלמות שמייבאים אל הלוח כמו שמייבאים כל ספריה אחרת של פייתון וכל הספריות האלה נמצאות בתוך הקושחה שהורדנו אל הלוח.
ספריית machine היא זו שמדליקה ומכבה רגליים והיא ספרייה כללית שאמורה להתאים לכל הלוחות הנתמכים. להבהב נורה ב- ESP8266 :
import machine import time pin = machine.Pin(4, machine.Pin.OUT) while True: pin.high() time.sleep(1) pin.low() time.sleep(1)
ככה אנחנו מהבהבים נורה בפין 4 שנקרא על הלוח D2
באותו אופן אפשר לקבל קלט מכפתור, להפעיל PWM ,לקבל קלט אנלוגי ADC ועוד ועוד…
רק לבדוק את התיעוד של הספריות הקיימות ולהפעיל את הפונקציות . מיקרו-פייתון היא די חדשה אז מסמכי התיעוד שלה משתנים לפעמים באופן יומיומי.
ספריית network היא חשובה לנו מאוד כשמפעילים את ESP8266 כי אנחנו רוצים להשתמש ביכולות האינטרנט שלו.
יש תיעוד מפורט וספציפי של ספרייה זו ל- ESP8266 (זכרו שמיקרו-פייתון יכולה לפעול על הרבה לוחות) והוא נמצא כאן. בסך הכל הצלחתי להפעיל לקוח ושרת די בקלות וזה הרבה יותר קל מלהפעיל בסביבת הפיתוח של ארדואינו למשל.
העברת קבצים אל הלוח
במקום לתכנת את ESP8266 ישירות דרך REPL אפשר לכתוב את התוכנה בכל עורך טקסט, כמובן שעדיף IDLE3 ולהעביר אותה אל מערכת הקבצים של הלוח. כותבים את התוכנה על המחשב האישי שלנו ואז מעבירים את הקובץ אל הלוח באמצעות תוכנה שנקראית ampy . את הכלי הזה צריך להוריד למחשב ואז אפשר להעביר ולהריץ קבצים על הלוח, להוריד קבצים מהלוח למחשב, וגם למחוק קבצים.
לדוגמה השורה הבאה מעלה קובץ פייתון מקומי test.py אל ESP8266 ומריצה אותו:
ampy --port /dev/ttyUSB0 run test.py
זהו בגדול הסיפור…. יש עוד המון אפשרויות ודברים שאפשר לעשות עם מיקרו-פייתון וצריך לא להבהל מההתקנה הראשונית שנראית בהתחלה מסובכת.
בסך הכול אחרי שעוברים את ההתקנה הראשונית אפשר לתכנת את לוח ESP8266 עם פייתון שזה תענוג.
כל הכבוד, תודה רבה