אתר udemy.com מציע קורס חינמי בשם "מיקרו-בקרים ושפת C" (באנגלית כמובן), שמתבסס על לוח הפיתוח MSP430FR6989 Launchpad של חברת TI. מה לומדים בקורס הזה, ולמי הוא יכול להתאים?
בניגוד לאתרים המעונבים edx ו-Coursera, ב-udemy כל מצורע וזב חוטם יכול ליצור קורס, וחלק מהם באמת עושים את זה אז צריך להיזהר. עם זאת, במקרה הנוכחי מדובר בקורס רציני שעומדים מאחוריו אוניברסיטה בארה"ב ומרצה אמיתי. לקורס זה אין דרישות מקדימות: כל הנושאים הנלמדים מוסברים מאפס. מי שכבר יודע חלק מהחומר יכול לדלג או לרפרף על הקטעים המוכרים ולגשת ישר לנושאים המתקדמים, שעוסקים במיקרו-בקר הספציפי.
כדי להסתדר בקורס חייבים את לוח הפיתוח הספציפי שהזכרתי למעלה; מי שמסוגל להתקדם בקורס עם פתרונות אחרים כנראה לא צריך את הקורס בכלל. כרגע הלוח עולה $18, ועוד כ-$7 למשלוח עד הבית, אבל מספר פעמים בשנה יש בחנות המקוונת של TI מבצעי הנחות או משלוח חינם כך שכדאי לעקוב.
החומר בקורס הוא כמעט כולו טקסטואלי, בקובצי PDF להורדה. קטעי הווידאו קצרצרים ומשמשים בעיקר להקדמה ולקישור. הקבצים עצמם כוללים צילומי מסך וקוד מקור, והם מפורטים מאוד – מסבירים כל דבר וכל שלב וגם חוזרים לפעמים על דברים שנלמדו קודם לכן. מעבר לחומר הלימודים הרגיל יש קובצי "בונוס" עם חומר ותרגילים מתקדמים קצת יותר (ופתרונות).
ומה לומדים תכל'ס? לגבי שפת C, הקורס מעניק ממש את המינימום הדרוש לכתיבה והבנה של תוכניות פשוטות למיקרו-בקרים (דגש על אופרטורים לוגיים, ייצוג בינארי/הקסדצימלי וכו'). זה הגיוני לקורס מבוא שבכלל מתמקד בחומרה, והוא לא יהפוך אתכם למתכנתים ראויים לשמם. את זה תצטרכו להשיג במקום אחר.
ולגבי המיקרו-בקר? ובכן, MSP430FR6989 הוא ג'וק מודרני ומשוכלל, עם המון יכולות ואפשרויות מתקדמות – לגמרי לא משהו שהיה קופץ לי לראש בתור בחירה אידאלית למתחילים. מצד שני, חשוב לזכור שהקורס מכוון להיכרות עם מיקרו-בקרים באופן כללי, ורק במקרה משתמש בדגם הזה, כך שזה לא נורא כמו שזה נשמע. הרעיון הוא לא לתת כלי עבודה ספציפי למייקרים אלא להכיר עקרונות: דברים כמו קלט ופלט דיגיטליים, ADC, פסיקות, Watchdog, טיימרים, רגיסטרים וכדומה. ברור שאי אפשר להימנע פה ושם מהמוזרויות של הארכיטקטורה של MSP430, אבל בסופו של דבר הן לא מוזרות יותר מאלה של AVR או PIC או כל אופציה אחרת.
כמובן, הקורס לא מציג את מלוא היכולות של המיקרו-בקר הזה, ובטח שלא נכנס לפרטים הקטנים. הרבה מאוד דברים לא מוזכרים כלל, או רק מוזכרים בחטף בלי הסבר מעמיק (בניסוחים כמו "אין לנו אפשרות לפרט בנושא הזה"). זה בלתי נמנע – אני לא חושב שיש קורס בעולם כולו שמלמד מיקרו-בקר מודרני מההתחלה ועד הסוף. המסמכים הרשמיים (datasheet ו-User's Guide) כן מוזכרים בשלב מסוים, כך שמי שרוצה ללמוד לעומק יותר מקבל לפחות כיוון ראשוני.
אני עצמי התחלתי את הקורס הזה כי מזמן שמתי עין על משפחת המיקרו-בקרים MSP430FR: זיכרון ה-FRAM הפנימי שלהם הוא מאפיין ייחודי, בינתיים, ויש לו כמה יתרונות פוטנציאליים משמעותיים מאוד. הקורס לא מתייחס לאספקט הזה (כאמור, זה קורס על עקרונות, לא על תכונות יוצאות דופן) אבל הוא כן נותן לי את הבסיס לעבודה עם הג'וקים האלה, שממנו אוכל להמשיך דרך ה-Datasheet לנושאים המתקדמים.
לסיכום, מדובר בקורס איכותי שיכול להוות היכרות ראשונית טובה עם עולם המיקרו-בקרים, ובסיס להתחלת עבודה עם הלוח MSP430FR6989 Launchpad. עם זאת הוא מחייב השקעה והרבה קריאה באנגלית – דומה הרבה יותר ללמידה מספר מאשר קורס רגיל – וכדי להפיק ממנו תועלת יישומית, צריך יהיה להשקיע עוד יותר בלמידה עצמאית של הנושאים המתקדמים. אבל זה נכון כמובן לכל דבר שאנחנו לומדים כמייקרים… 😉
היי עידו
שים לב שהשבוע (מה-30 לאפריל ועד ה-6 למאי) יש הנחות בחנות של TI.
אולי כדאי להוציא על זה פוסט
הם עושים הנחות בערך כל חודש. את המבצע הקודם פרסמתי בפייסבוק, גם זה יגיע 🙂
הקורס מגיע עם תרגילים כלשהם? מלמד עבודה עם חיישנים / התקנים אחרים? נשמע לי כמו משהו קריטי (כשלומדים פיתוח)
יש תרגילים (לא הרבה), ומדברים על קלט/פלט דיגיטליים, UART, ADC, ומודול פנימי שקיים במיקרו-בקר לשליטה בתצוגות LCD (גולמיות, לא מודולים חיצוניים שלמים). כדי לעבוד עם רכיבים חיצוניים תצטרך השלמות על תקשורת I2C ו-SPI, ולמצוא מקורות מידע אחרים על הרכיבים החיצוניים עצמם – כאמור הקורס הזה הוא לא סדנה למייקרים אלא מבוא ל-C ולמיקרו-בקרים.
אולי משהו איתי לא בסדר אבל אני עדיין אוהב ללמוד דברים בצורה המסורתית של לקחת ספר בנושא ולקרוא אותו מהתחלה ועד הסוף. קראתי בעבר את שפת תכנות C של דניס ריצ'י שהוא זה שפיתח את השפה. עוד שני ספרים על משפחות בקרים שונות וזהו מה עוד יש ללמוד? נכון שדברים לפעמים מתחדשים כמו fram אבל בגדול הרוב נשאר דומה, יש היום עודף מידע לא רואים את העצים מרוב היער.
כמו שכתבתי, הקורס הספציפי הזה מיועד למתחילים וגם דומה מאוד לקריאת ספר, אז אתה קצת מתפרץ לדלת פתוחה… מעבר לזה, לכל אחד סגנון למידה ויכולות למידה שונות, וטוב שיש מגוון אפשרויות.