באיזו שפת תכנות עליך להשתמש עבור פרויקטי המיקרו-בקר שלך? בואו נחקור את ארבע האפשרויות הטובות ביותר.
לוחות פיתוח מיקרו-בקרים הפכו למרכיב עיקרי בקרב קהילת היצרנים. התקנים הניתנים לתכנות אלה תוכננו במיוחד לעיבוד אותות קלט ופלט כדרך לשלוט על מודולים ורכיבים שונים כמו חיישנים, מנועים, נוריות, והתקני קלט אנושיים (HIDs).
אבל לפני כן, תצטרך ללמוד שפת סקריפטים שהמיקרו-בקר יכול לפרש כדי לתכנת את המכשירים האלה. שפות המיקרו-בקר הפופולריות ביותר כיום כוללות MicroPython, CircuitPython, Arduino (פשוטה C++) ו-C. לכל אחת מהשפות הללו יש יתרונות וחסרונות משלה.
MicroPython
MicroPython היא יישום קל משקל של שפת התכנות Python 3 שתוכננה במיוחד עבור מיקרו-בקרים. הוא שוחרר ב-2013 על ידי ד"ר דמיאן ג'ורג' לצורך יצירת אב טיפוס מהיר יותר וכדי לאפשר לאנשים שכבר מכירים את Python לתכנת מיקרו-בקרים עם שפה דומה.
מאפיינים
MicroPython היא שפת סקריפטים מצוינת למתחילים שרוצים לתכנת מיקרו-בקרים. למתחילים ללא ניסיון בקידוד יהיה קל לקרוא ולהבין כי הוא משתמש בפקודות הניתנות לקריאה על ידי אדם במבנים פשוטים. יתר על כן, הוא משתמש בסביבת זמן ריצה של read-evaluate-print-loop (REPL), המאפשרת חווית קידוד אינטראקטיבית.
ביצועים
כדי לתכנת מיקרו-בקר באמצעות MicroPython, הקושחה המכילה את המתורגמן, הספריות ותלויות שונות אחרות מובזקת לתוך המיקרו-בקר. זה מאפשר לפרש ולהפעיל את קוד MicroPython באופן מקומי על ידי המיקרו-בקר, מה שמאפשר יצירת אב טיפוס מהיר מכיוון שניתן לספק משוב חי בזמן הקידוד.
עם זאת, בשל כיצד מעבדים מבצעים קוד, שפות מתפרשות כמו MicroPython יהיו איטיות משמעותית בהשוואה לשפות קומפילציה כמו C++. לכן, כברירת מחדל, למרות שבניית אב טיפוס יכולה להיות הרבה יותר מהירה, ביצוע הקוד עצמו איטי יותר.
תְאִימוּת
מכיוון ש-MicroPython משתמש במשאבים מקומיים כדי לפרש ולהפעיל תוכניות, למיקרו-בקר חייב להיות מינימום של 256kB של זיכרון פלאש ו-16kB של זיכרון RAM. לרוע המזל, כמה לוחות פיתוח פופולריים כמו Arduino Uno אינם עומדים במפרט הנדרש. עם זאת, עדיין יש הרבה לוחות התואמים ל-MicroPython.
נכון לעכשיו, MicroPython תומך רשמית ב- Pyboard, ESP32, ESP8266, Raspberry Pi Pico, BBC micro: bit, לוחות פיתוח STM32, וכמה לוחות Arduino כגון Nano 33 BLE, Nano RP2040, Giga R1 ו-Portenta H7.
קהילה ותמיכה
מאז השקתו ב-2013, MicroPython צברה מאז קהל עוקבים נכבד. למתחילים אמור להיות קל ללמוד את MicroPython עם התיעוד הכתוב היטב שלו. אם אתה זקוק לעזרה נוספת, ל-MicroPython יש גם פורום קהילתי שבו משתמשים משתפים הדרכות, רעיונות ועונים על כל מיני בעיות שיכולות להיות לך בנוגע ל-MicroPython.
ארדואינו
Arduino היא פלטפורמת קוד פתוח פופולרית המיועדת בעיקר לחובבי אלקטרוניקה ועשה זאת בעצמך. שפת התכנות Arduino מבוססת על שפות התכנות C ו-C++. שפת הארדואינו שוחררה בשנת 2005 על ידי קבוצה של מהנדסים, אמנים ומעצבים מאיטליה.
מאפיינים
שפת התכנות Arduino משתמשת בגרסה מופשטת של C ו-C++, מה שמקל על הלמידה והפיתוח איתה. ביצוע הקוד באמצעות Arduino מהיר יותר באופן משמעותי ממקבילותיו בשפה המתפרשת בשל אופיו הקומפילד. יתר על כן, Arduino דורש רק כמות קטנה של משאבי מערכת כדי לעבוד, מה שהופך אותו לתואם עם לוחות פיתוח ומיקרו-בקרים רבים.
ביצועים
שלא כמו MicroPython ו-CircuitPython, Arduino היא שפת תכנות מהודרת. משמעות הדבר היא שהקוד מורכב תחילה על מהדר (כבר כלול ב-Arduino IDE) ולאחר מכן מבוצע כתוכנית שלמה על ידי המיקרו-בקר.
זה משפר משמעותית את ביצוע הקוד מכיוון שהמיקרו-בקר לא צריך להשתמש במשאבים כדי לפרש כל שורת קוד. בנוסף, קומפילציה של התוכנית גם מתרגמת אותה לקוד מכונה שהמיקרו-בקר יכול להפעיל באופן טבעי מבלי להתקין תלות.
זה משפר משמעותית את מהירות ביצוע הקוד מכיוון שהמיקרו-בקר יכול להפעיל ישירות את התוכנית מבלי להקצות משאבי זמן ומשאבי חומרה לתרגום הקוד.
לוחות נתמכים
מכיוון ששלב הקומפילציה נעשה באמצעות ה-IDE, למיקרו-בקרים יכולים לעבוד עד 32kB של זיכרון פלאש ו-2kB של זיכרון RAM. אז מלבד לוחות ארדואינו, יש הרבה חלופות לוח Arduino אתה יכול להשתמש כדי לתכנת עם Arduino. רבים מהלוחות הללו ישתמשו במיקרו-בקרים כמו ATmega328P, ATmega2560, SAMx8E, ESP8266, ESP32 ו- STM32.
קהילה ותמיכה
בהיותה פלטפורמת קוד פתוח מאז 2005, ל- Arduino יש כמה מהתיעוד הטוב ביותר שקיים. קרן Arduino מספקת באופן פעיל עדכונים, תמיכה ומוצרים מרגשים חדשים מדי שנה. הקהילה העולמית היא גם אחת הפעילות הפעילות ביותר בשיתוף מדריכים ורעיונות ובמענה לכל פתרון בעיות שאתה עלול להיתקל בהן. עם Arduino, מובטחת לך רמת תמיכה טובה.
CircuitPython
CircuitPython הוא היישום של Adafruit של Python 3, בנוי על גבי MicroPython. למרות שמקורו ב-MicroPython, CircuitPython מציע מספר שיפורים כדי להפוך את הלמידה של מיקרו-בקרים לקלה ומהנה.
מאפיינים
CircuitPython נוצר כדי לעזור למתחילים ללמוד כיצד לתכנת מיקרו-בקרים. כדי להשיג זאת, CircuitPython מספק מספר תכונות, כולל קידוד אינטראקטיבי סביבה, ספריות מובנות, תחביר פשוט (פשוט יותר מ-MicroPython), ותיעוד מעולה ומדריכים.
ביצועים
מכיוון ש-CircuitPython מבוסס על MicroPython, יש לו הרבה מאותן חוזקות וחולשות. זמן ריצת התוכנית יהיה מעט יותר איטי מ-MicroPython מכיוון ש-CircuitPython מספק יותר תכונות וספריות נוספות. עם זאת, ההבדל כנראה לא מורגש מכיוון ש- CircuitPython דורש מיקרו-בקרים בעלי יכולת גבוהה יותר כדי לעבוד.
לוחות נתמכים
עם ספריות משולבות ותחביר פשוט יותר, לוחות פיתוח מיקרו-בקר זקוקים למשאבים נוספים כדי להשתמש ב-CircuitPython. לכל הפחות, למיקרו-בקר צריך להיות מעבד של 8 סיביות, 256kB של זיכרון פלאש (512kB מומלץ) ו-32kB של RAM (64kB מומלץ). נכון לעכשיו, CircuitPython תומך ביותר מ-390 לוחות פיתוח, הרשומים ב- אתר רשמי.
קהילה ותמיכה
ידוע כי Adafruit מייצר מוצרים ידידותיים למתחילים. ככזה, אתה יכול למצוא תיעוד וספרים קלים להבנה על CircuitPython. למרות שהשפה הוצגה רק ב-2017, עדיין יש לה קהל לקוחות גדול יותר מ-MicroPython, אליו תוכלו להגיע דרך Discord והפורום הרשמי. כמו קרן Arduino, Adafruit מספקת עדכונים, תמיכה ומוצרים חדשים באופן פעיל, מה שאומר שהתמיכה צריכה להיות קלה למצוא.
ג
C היא שפת תכנות לשימוש כללי שפותחה בשנות ה-70 על ידי דניס ריצ'י במעבדות בל. זוהי שפת תכנות מהודרת שבה מהנדסים ואנשי מקצוע אחרים השתמשו לעתים קרובות כדי לתכנת מיקרו-בקרים ברמות גבוהות של יעילות.
מאפיינים
למרות ששפה קשה יותר ללמוד, היתרון העיקרי של C על פני MicroPython, CircuitPython ו- Arduino הוא רמת המהירות, היעילות, השליטה והניידות שהוא מספק. זה הופך את C לשפה הטובה ביותר לתכנות את שני המיקרו-בקרים לשימוש במוצרים מוגמרים.
ביצועים
מלבד הניידות הנהדרת שלו, C ידועה בביצועים שלה. זה יכול להריץ תוכניות מהר יותר מ- Arduino, MicroPython ו- CircuitPython, אפילו עם מיקרו-בקר בעל משאבים נמוכים יותר. הסיבה לכך היא ש-C היא שפה יעילה יותר, הדורשת הכי פחות תלות. למרות שתוכנית Arduino מהודרת, כמו C one, יכולה להיות מופעלת על חומרה ממתכת חשופה, קוד המכונה שלה מגיע אפוי מראש עם ספריות וכלים שמפחיתים את הביצועים.
לוחות נתמכים
שפת C היא כל כך ניידת שאפשר להשתמש בה כדי לתכנת כמעט כל מיקרו-בקר מבוסס Arm. בנוסף, ניתן להשתמש בו על לוחות המבוססים על המיקרו-בקרים Atmel AVR, STM32, PIC ו-MSP.
קהילה ותמיכה
בשל אפליקציית התכנות החזקה שלה והעובדה שהיא כבר בת כמה עשורים, לשפת התכנות C יש קהילה מקוונת ענקית. אתה יכול למצוא עזרה בקלות דרך פורומים מקוונים שונים, חדרי צ'אט ובלוגים המוקדשים לדיון ושיתוף רעיונות על שפת C.
באיזו שפה כדאי לתכנת?
אז מהי השפה הטובה ביותר לתכנת מיקרו-בקרים? זה מאוד תלוי בבן אדם. שפת C תהיה הטובה ביותר עבור אנשי מקצוע המתכננים אלקטרוניקה לייצור.
מי שאין לו ניסיון בקידוד, עשוי לרצות להתחיל עם CircuitPython מכיוון שיש לו תכונות ותיעוד שהופכים את הלמידה לקלה ומהנה. מי שמכיר את Python ימצא שקל לתכנת מיקרו-בקרים עם MicroPython.
ועבור רוב קהילת עשה זאת בעצמך/יוצרים, Arduino עדיין תהיה השפה הטובה ביותר לתכנות מיקרו-בקרים, מכיוון שהוא מציע איזון יוצא דופן בין ביצועים, ניידות, תכונות ו קהילה.