יום שני, 27 באוקטובר 2025

שרביט קסמים מיקרו:ביט (Micro:bit) עם למידת מכונה - Create AI

 מבוא - כשבינה מלאכותית נכנסת לשרביט הקסמים

בעולם שבו בינה מלאכותית מקיפה אותנו מכל צד - מזיהוי פנים בטלפון ועד המלצות במוזיקה - נראה שהטכנולוגיה הזו נשארה רחוקה ומופשטת עבור רבים. אבל מה אם היינו יכולים להפוך את הבינה המלאכותית למשהו מוחשי, משהו שאפשר להחזיק ביד ולהרגיש איך הוא לומד ומגיב לתנועות שלנו? זה בדיוק מה שמאפשר לנו Create AI של Micro:bit.

Create AI הוא כלי חדשני וחינמי שפותח על ידי קרן Micro:bit בשיתוף עם אוניברסיטת ארהוס ומיקרוסופט. הכלי מבוסס-אינטרנט ואינו דורש התקנה, והוא מאפשר לכל אחד - מתלמידי בית ספר ועד למבוגרים סקרנים - לחקור את עולם הבינה המלאכותית דרך תנועה ולמידת מכונה. בניגוד לכלים מורכבים אחרים, Create AI מציע גישה ידידותית ואינטואיטיבית: אתם מלמדים את המיקרו:ביט לזהות תנועות שונות שאתם עושים (נפנוף, טלטול, סיבוב, או כל תנועה שתמציאו) והוא לומד לזהות אותן ולהגיב בהתאם לתוכנית שכתבתם.

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



מה זה בעצם למידת מכונה?


לפני שצולים לעשייה, חשוב להבין את העיקרון שמאחורי הטכנולוגיה. למידת מכונה (Machine Learning) היא ענף בבינה המלאכותית שבו מחשבים לומדים לבצע משימות מתוך ניסיון - בדיוק כמו שאנחנו לומדים. במקום לתכנת את המחשב עם חוקים נוקשים ("אם התנועה היא X אז עשה Y"), אנחנו נותנים למחשב הרבה דוגמאות ונותנים לו ללמוד בעצמו לזהות דפוסים.

התהליך מתחלק לכמה שלבים מרכזיים:

איסוף נתונים (Data Collection) - זה השלב שבו אנחנו אוספים מידע גולמי. במקרה שלנו, האקסלרומטר של המיקרו:ביט מודד את התנועות שלנו במרחב התלת-ממדי. כל תנועה יוצרת "חתימה" ייחודית של נתונים - שילוב של תאוצה בכיוונים השונים.

תיוג נתונים (Data Labeling) - כאן אנחנו אומרים למחשב מה כל דוגמה מייצגת. למשל, אנחנו עושים תנועה עגולה ואומרים למערכת "זאת תנועת O". אנחנו עושים תנועת זיגזג ואומרים "זאת תנועת Z". התיוג הזה הוא קריטי - בלעדיו המודל לא יודע מה הוא אמור ללמוד.

אימון המודל (Model Training) - זה השלב הקסום שבו האלגוריתם בוחן את כל הדוגמאות שאספנו ומחפש דפוסים משותפים. הוא לומד לזהות מה מייחד תנועת O מתנועת Z, אילו מאפיינים של התנועה הם משמעותיים ואילו רעש. בסוף התהליך יש לנו מודל - קובץ קטן שמכיל את כל הידע שהמחשב למד.

הפעלה ובדיקה (Inference & Testing) - לאחר האימון, אנחנו מפעילים את המודל על נתונים חדשים שהוא מעולם לא ראה. כשאנחנו עושים תנועה, המודל מנתח אותה ומנסה לסווג אותה לאחת הקטגוריות שלימדנו אותו. אם האימון היה טוב, הוא יזהה נכון גם תנועות שמעט שונות מהדוגמאות המקוריות.

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

הפרויקט שלנו - שרביט קסמים אינטראקטיבי

הפרויקט משלב שני לוחות מיקרו:ביט שעובדים יחד:

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

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

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



חומרים וציוד נדרש

לפני שמתחילים, חשוב להכין את כל הציוד הנדרש:

  • שני לוחות מיקרו:ביט V2 - חשוב מאוד לוודא שמדובר בגרסה 2 (ניתן לזהות לפי רמקול קטן על חלקו האחורי של הלוח ולוגו זהוב של ה-micro:bit המשמש כחיישן מגע). הגרסה החדשה יותר כוללת מעבד מהיר יותר שמסוגל להריץ מודלי למידת מכונה. אמנם אפשר להשתמש בגרסה 1 לאיסוף נתונים בשלב האימון, אבל להרצת המודל הסופי נדרש V2.
  • הרחבת Yahboom עם מעגל לדים - זוהי הרחבה המתחברת למיקרו:ביט ויוצרת טבעת של לדים צבעוניים (Neopixel/WS2812) סביבו. ההרחבה מגיעה עם ברגים וכל הציוד הנדרש להרכבה. אם אין לכם את ההרחבה הספציפית הזו, אפשר להשתמש בכל רצועת או מעגל Neopixel אחר - פשוט תצטרכו להתאים את מספר הלדים בקוד.
  • כבל USB - לחיבור המיקרו:ביט למחשב בזמן התכנות והעלאת הקוד. רוב המיקרו:ביטים מגיעים עם כבל מיקרו-USB.
  • שתי סוללות עם חיבור למיקרו:ביט - זה חלק קריטי באימון המודל! תהליך Create AI דורש ניתוק מהמחשב וחיבור לסוללה, כדי שתוכלו לנוע בחופשיות בזמן איסוף הנתונים. 
  • שרביט או מתקן למיקרו:ביט - כאן נכנסת היצירתיות שלכם. אפשר להדפיס שרביט תלת-ממדי מעוצב עם מקומות ייעודיים למיקרו:ביט ולסוללות, להשתמש במקל עץ עם קצת סרט דבק, לעטוף את המיקרו:ביט בבד או ספוג, או כל פתרון אחר שיאפשר לכם להחזיק ולהניף את המיקרו:ביט בנוחות. העיקר שהמיקרו:ביט יהיה מקובע למקל ולא יזוז במהלך התנועות.
  • מחשב עם גישה לאינטרנט - לשימוש בכלי Create AI ובעורך MakeCode. 

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

שלב 1: אימון המודל ב-Create AI

כניסה למערכת והתחברות

כניסה למערכת Create AI היא פשוטה וישירה. פתחו את הדפדפן וגלשו לכתובת: https://createai.microbit.org

תתקבלו בממשק נקי וידידותי שמציע להתחיל פרויקט חדש. עכשיו מגיע החלק המעניין - החיבור למיקרו:ביט. המערכת תדריך אתכם בתהליך חיבור מיוחד שנקרא "Radio Link". זהו שיטת חיבור חכמה שפותחה במיוחד למטרות למידת מכונה:

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


הגדרת הפעולות - תכנון תנועות הקסם

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

תנועת O (עיגול) - תנועה מעגלית באוויר, כאילו אתם מציירים עיגול גדול. זו תנועה קלאסית שנראית ממש כמו כישוף.

תנועת Z (זיגזג) - תנועת זיגזג מהירה, כאילו אתם מצייירים את האות Z באנגלית (או זדה עברית). תנועה אנרגטית שיוצרת דפוס ברור.

תנועה ישרה קדימה  - תנועת קסם קלאסית להטלת כישוף. 

Nothing (מנוחה) - זו לא תנועה אלא המצב כשהשרביט בשקט. חשוב מאוד להגדיר גם "לא-פעולה" כדי שהמודל ידע להבדיל בין רגעים שבהם אתם עושים קסם לבין רגעים שבהם אתם פשוט מחזיקים את השרביט.

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

תהליך איסוף הנתונים

עכשיו מגיע החלק המהנה - אימון המודל על התנועות שבחרתם. בממשק Create AI, לחצו על "Add action" והקלידו את שם התנועה הראשונה (למשל "O"). המערכת תיצור עבורכם "מגירה" חדשה עבור התנועה הזו.

הכנה לאיסוף - ודאו שמיקרו:ביט איסוף הנתונים מחובר לסוללות ושמיקרו:ביט הרדיו מחובר למחשב. המערכת תציג גרף ריק שמחכה לנתונים. הגרף הזה הוא למעשה ויזואליזציה של מה שהאקסלרומטר רואה - כל תזוזה של המיקרו:ביט תתורגם לגלים בגרף.

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

צפייה בנתונים בזמן אמת - תוך כדי התנועה, תראו את הגרף מתעורר לחיים. שלושה קווים בצבעים שונים מייצגים את שלושת הצירים (X, Y, Z) של האקסלרומטר. כל קו מראה כמה תאוצה יש באותו כיוון. תנועה מעגלית תיצור דפוס מסוים של גלים, תנועת זיגזג תיצור דפוס אחר לגמרי. זה מרתק לראות איך תנועות פיזיות מתורגמות למידע דיגיטלי.

חזרות מרובות - אל תסתפקו בהקלטה אחת! לחצו שוב על "Record" ועשו את אותה תנועה בצורה קצת שונה. המטרה היא לאסוף לפחות 10-15 דוגמאות לפחות של כל תנועה. למה כל כך הרבה? כי אף אחד לא עושה תנועה בדיוק אותו דבר פעמיים. אם תלמדו את המודל רק על 2-3 דוגמאות, הוא ילמד רק את הדוגמאות הספציפיות האלו ולא את העיקרון הכללי של התנועה. ככל שתוסיפו יותר גיוון לדוגמאות, המודל יהיה חזק וגמיש יותר.

טיפים לאיסוף איכותי:

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

חזרו על התהליך הזה עבור כל אחת מהתנועות האחרות: Z, תנועה ישרה קדימה, ו-Nothing. לתנועת Nothing פשוט תחזיקו את המיקרו:ביט בשקט או תניחו אותו על השולחן בזוויות שונות בזמן ההקלטה.

אימון המודל - הרגע הקסום

לאחר שסיימתם לאסוף נתונים עבור כל התנועות, הגיע הזמן לאמן את המודל. זהו השלב שבו המאגיה של למידת מכונה באמת קורית. לחצו על כפתור "Train model" בממשק Create AI.

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

תהליך האימון אורך בדרך כלל בין 10 שניות לדקה, תלוי בכמות הנתונים ובמהירות המערכת. המערכת תציג סרגל התקדמות, וכשהאימון יסתיים תראו תוצאות מרתקות.

בדיקת המודל - האם הקסם עובד?

ניתוח תוצאות האימון - לאחר סיום האימון, המערכת מציגה לכם אחוז התאמה (Accuracy) עבור כל תנועה. מה המשמעות של המספרים האלו?

בתמונה הזאת לדוגמא ניתן לראות:

  • תנועת O - התאמה של 18%
  • תנועת Z - התאמה של 82%
  • תנועת V - התאמה של 0%
  • תנועת Nothing - התאמה של 0%


אחוז התאמה גבוה (מעל 70-80%) אומר שהמודל למד היטב את התנועה ויזהה אותה בצורה אמינה למדי. אחוז התאמה נמוך (מתחת ל-50%) מצביע על בעיה - אולי לא היו מספיק דוגמאות, אולי הדוגמאות היו דומות מדי לתנועה אחרת, או אולי התנועה עצמה לא עקבית מספיק.

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

נסו כל אחת מהתנועות. האם המערכת מזהה אותן נכון? האם יש תנועות שהיא מתבלבלת ביניהן? זה הזמן לגלות בעיות ולתקן אותן.

תרחישי בדיקה:

  • עשו כל תנועה 5 פעמים ורשמו כמה פעמים היא זוהתה נכון
  • נסו לעשות תנועה "בין לבין" - משהו שדומה גם ל-O וגם ל-V - איך המודל מגיב?
  • עשו תנועה לגמרי חדשה שלא לימדתם - האם המודל יסווג אותה כ-"Nothing"?
  • נסו לזוז לאט מאוד או מהיר מאוד - האם יש הבדל בזיהוי?

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

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

שלב 2: העברת המודל ל-MakeCode - תכנות השרביט

מעבר לסביבת התכנות

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

לחצו על כפתור "Edit in MakeCode" בממשק Create AI. הדפדפן יפתח טאב חדש עם עורך MakeCode, והפתעה - המודל שלכם כבר מחכה שם! בלוקים מיוחדים בשם "Machine Learning" התווספו לערכת הכלים שלכם, והם מכילים את כל הפעולות שלימדתם את המודל לזהות.

הבנת מבנה התוכנית

התוכנית שלנו תורכב משלושה חלקים עיקריים שעובדים ביחד:

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

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

חלק ג': פקודות עזר - בלוקים נוספים שעוזרים לנו לשלוט במודל. למשל, בלוק שנועל את המודל כדי שהוא ירוץ מהר יותר, או בלוק שמאפשר לנו לכבות ולהדליק את הזיהוי.

כתיבת הקוד - השרביט המשדר

בואו נבנה את הקוד צעד אחר צעד. נתחיל עם הבלוק "כאשר מתחיל" שרץ פעם אחת כשהמיקרו:ביט מופעל. 



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

עכשיו בואו נוסיף את הבלוקים שמגיבים לזיהוי תנועות. נתחיל עם תנועת O.

מה קורה כאן? הבלוק "כאשר ML מזהה תחילת פעולה" הוא בלוק מיוחד שנוצר אוטומטית על ידי Create AI. הוא מופעל בדיוק ברגע שמודל למידת המכונה מזהה שהתחלתם לעשות את התנועה O. בתוך הבלוק אנחנו עושים שני דברים: ראשית, שולחים את המספר 2 בתקשורת רדיו. זה הקוד הסודי שאומר לקדירה "היי, זיהיתי תנועת O!". שנית, מציגים את האות O על מסך המיקרו:ביט כמשוב חזותי למשתמש - כך תדעו שהזיהוי עבד. בנוסף, מעבירים את המשתנה lock למצב 1 = נעילה, למשך 3 שניות. לאחר 3 שניות ננקה את המסך ונפתח את משתנה הנעילה. שידור הרדיו יתרחש רק כאשר משתנה הנעילה פתוח. 

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

ונמשיך עם תנועת V. שוב, מספר ייחודי - 3 - ודפוס ייחודי למשוב.

לבסוף, נטפל במצב Nothing - כשלא עושים שום תנועה - ובכן - לא עושים גם שום פעולה... 

בחירת המספרים היא שרירותית - יכולנו לבחור 1, 2, 3, 4 או 100, 200, 300, 400. העיקר שכל תנועה תקבל מספר ייחודי שלה, ושנזכור איזה מספר מתאים לאיזו תנועה כאשר נגיע לשלב תכנות הקדירה.


העלאת הקוד לשרביט

כעת הקוד מוכן! הגיע הזמן להעלות אותו למיקרו:ביט שישמש כשרביט:

שלב 1: חיבור - חברו את המיקרו:ביט הראשון (זה שישמש כשרביט) למחשב עם כבל USB. ודאו שהמחשב מזהה אותו.

שלב 2: הורדה - ב-MakeCode, לחצו על כפתור "הורד" (Download) בתחתית המסך. הקוד יקומפל ויישמר על גבי המיקרו:ביט. 

עכשיו נתקו את המיקרו:ביט מהכבל וחברו אותו ליחידת הסוללות. הרכיבו אותו על השרביט שהכנתם. השרביט המכושף מוכן!

שלב 3: תכנות הקדירה המכושפת

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

הרכבת ההרחבה

לפני שמתחילים לתכנת, צריך להרכיב את ההרחבה פיזית למיקרו:ביט:

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

יישור - מקמו את ההרחבה מעל המיקרו:ביט כך שהחורים של שני הלוחות מיושרים. וודאו שהפינים של מחבר הקצה (Edge Connector) של המיקרו:ביט נכנסים לשקע בהרחבה.

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

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



הוספת הרחבת Neopixel למיקרו:ביט

כעת פתחו פרויקט חדש ב-MakeCode (https://makecode.microbit.org). כדי לשלוט על הלדים של Yahboom, נצטרך להוסיף ספריית תוכנה מיוחדת:

שלב 1 - בעורך MakeCode, גללו כלפי מטה ברשימת קטגוריות הבלוקים עד שתראו כפתור "הרחבות" (Extensions) או "מתקדם" (Advanced) ← "הרחבות".

שלב 2 - לחצו על "הרחבות". תיפתח חלונית חיפוש עם הרחבות פופולריות.

שלב 3 - בשורת החיפוש, הקלידו "neopixel" (באנגלית). תופיע הרחבה רשמית בשם "neopixel" עם אייקון צבעוני.

שלב 4 - לחצו על ההרחבה. היא תתווסף לפרויקט שלכם, ותראו קטגוריה חדשה בשם "Neopixel" ברשימת הבלוקים.

עכשיו יש לכם גישה לכל הבלוקים המיוחדים לשליטה על לדי Neopixel - הדלקה, כיבוי, שינוי צבעים, אפקטים מיוחדים ועוד.


כתיבת הקוד - הקדירה המאזינה

נתחיל עם הגדרות התחלתיות:



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

הגדרת רצועת הלדים - הבלוק "הגדר strip" יוצר משתנה מיוחד שמייצג את רצועת הלדים. אנחנו מגדירים כמה פרמטרים:

  • הפין (P2) - זה הפין הדיגיטלי שאליו מחוברת רצועת הלדים בהרחבת Yahboom
  • מספר הלדים (24) - בהרחבת Yahboom יש 24 לדים במעגל. אם יש לכם רצועה אחרת, התאימו את המספר
  • פורמט RGB - זה אומר שכל לד יכול להציג צבע עם שילוב של אדום, ירוק וכחול. 

הגדרת מצב הלדים בהדלקה - השורה האחרונה דואגת שהלדים יהיו כבויים בתחילת התוכנית. 

כעת נוסיף את הבלוק המרכזי - קליטת הפקודות מהשרביט:


זהו הבלוק שעושה את כל הקסם! בואו נבין מה קורה כאן:

הבלוק "כאשר רדיו מקבל" - זה בלוק אירוע מיוחד שמופעל אוטומטית כל פעם שמגיעה הודעה דרך הרדיו. המשתנה receivedNumber מכיל את המספר ששלח השרביט.

מבנה תנאים מדורג - אנחנו בודקים מה הערך של המספר שהתקבל. כל מספר מפעיל תגובה אחרת:

  • מספר 2 (תנועת O) - מדליקים את כל הלדים בירוק מהבהב. הפעולה נעשית על ידי פונקציה שנקראת Unstable על שם חוסר היציבות והאקראיות שבהדלקה. 

  • מספר 1 (תנועת Z) - הלדים נדלקים במעגל מדורג של לבן וכחול בעזרת הפונקציה Circle. 

  • מספר 3 (תנועת שרביט ישרה) - הלדים נדלקים באדום ומתעמעמים לאט עד לכיבוי מלא.

  • כאשר לא מתקבל מספר - מכבים את כל הלדים. 

לנוחיותכם, צרפתי כאן את הקוד של כל הפונקציות: 



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

העלאת הקוד לקדירה

חברו את המיקרו:ביט השני (זה עם הרחבת ה Yahboom) למחשב.

הורידו את הקוד מ-MakeCode למיקרו:ביט.

נתקו את המיקרו:ביט מהכבל וחברו ליחידת סוללות או מטען נייד. הקדירה המכושפת מוכנה!

רגע האמת - בדיקה וכיול

עכשיו לשני המיקרו:ביטים שלכם יש את הקוד ומחוברים לסוללות. הגיע הרגע המרגש - לראות אם הקסם באמת עובד!

הפעלה - הפעילו את שני המיקרו:ביטים. 

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

  1. המיקרו:ביט של השרביט מציג I על המסך
  2. הלדים בקדירה נדלקים באדום

אם זה עבד - ברכות! המערכת שלכם פועלת. אם לא - אל תפחדו, בואו נפתור בעיות.

פתרון בעיות נפוצות

בעיה: השרביט לא מזהה תנועות

  • וודאו שהמודל נאמן עם מספיק דוגמאות
  • בדקו שהקוד שהעליתם כולל את המודל המאומן
  • נסו לעשות את התנועה בצורה יותר מובהקת
  • בדקו שהסוללות טעונות

בעיה: השרביט מזהה אבל הקדירה לא מגיבה

  • וודאו ששני המיקרו:ביטים על אותה קבוצת רדיו (12)
  • בדקו שההרחבה מחוברת כראוי למיקרו:ביט
  • נסו להעלות שוב את הקוד לקדירה

בעיה: הלדים לא נדלקים

  • בדקו את חיבור ההרחבה - אולי הברגים רופפים
  • ודאו שהגדרתם את הפין הנכון (P2 בהרחבת Yahboom)
  • בדקו שהגדרתם את מספר הלדים הנכון (24 בהרחבת ה Yahboom)
  • נסו להריץ תוכנית פשוטה שרק מדליקה לדים, כדי לוודא שההרחבה תקינה

בעיה: המערכת מגיבה איטי או לא עקבית

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

למידה והבנה - מושגים שלמדנו

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

Machine Learning (למידת מכונה) - תחום בבינה מלאכותית שבו מחשבים לומדים מניסיון. במקום לתכנת חוקים נוקשים, אנחנו נותנים למחשב דוגמאות ונותנים לו ללמוד בעצמו דפוסים ולקבל החלטות.

Data Collection (איסוף נתונים) - תהליך איסוף המידע הגולמי ממנו המודל לומד. בפרויקט שלנו, זה היה איסוף נתוני תנועה מהאקסלרומטר תוך כדי ביצוע התנועות השונות.

Data Labeling (תיוג נתונים) - התהליך שבו אנחנו מספרים למודל מה כל דוגמה מייצגת. כשעשינו תנועת O ואמרנו למערכת "זאת תנועת O", זה תיוג נתונים.

Training (אימון) - השלב שבו האלגוריתם בוחן את הדוגמאות ולומד לזהות דפוסים. זה קרה כשלחצנו על "Train Model" ב-Create AI.

Model (מודל) - הקובץ הדיגיטלי שנוצר בסוף האימון ומכיל את כל הידע שהמחשב למד. המודל הזה יכול לקבל נתונים חדשים ולסווג אותם.

Inference (הסקה) - התהליך שבו מודל מאומן מקבל נתונים חדשים ומסווג אותם. כשהמיקרו:ביט מזהה שעשינו תנועת O - זה inference.

Classification (סיווג) - סוג של משימת למידת מכונה שבה המטרה היא להחליט לאיזו קטגוריה משהו שייך. בפרויקט שלנו סיווגנו כל תנועה לאחת מארבע הקטגוריות (O, Z, V, Nothing).

Accuracy (דיוק) - מדד שמספר לנו כמה טוב המודל מסווג. דיוק של 82% אומר שב-82 מתוך 100 המקרים המודל מזהה נכון.

Accelerometer (אקסלרומטר) - חיישן שמודד תאוצה ושינויים בתנועה במרחב התלת-ממדי. המיקרו:ביט כולל אקסלרומטר מובנה שמודד תנועה בשלושה צירים: X (ימין-שמאל), Y (קדימה-אחורה), ו-Z (מעלה-מטה).

Radio Communication (תקשורת רדיו) - שיטה לתקשורת אלחוטית בין מכשירים. המיקרו:ביט משתמש בתקשורת רדיו בתדר 2.4GHz (דומה ל-Bluetooth) כדי לשלוח הודעות בין מכשירים.

Neopixel / WS2812 - סוג של לדים חכמים שניתן לשלוט על כל אחד מהם בנפרד ולהגדיר לו צבע בפורמט RGB (אדום-ירוק-כחול). כל לד הוא למעשה מחשב זעיר עם שלושה לדים פנימיים.

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

סיכום ומחשבות לסיום

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

הפרויקט הזה מדגים איך טכנולוגיה מתקדמת יכולה להיות נגישה וכיפית. Create AI של Micro:bit מוריד את המחסום להיכנס לעולם הבינה המלאכותית, ומאפשר לכם להיות לא רק צרכנים של AI אלא יוצרים שלה. אתם לא רק משתמשים בטכנולוגיה - אתם מבינים אותה מבפנים.

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

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

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






אין תגובות:

הוסף רשומת תגובה

הערות? הארות? יש לך משהו חשוב לספר לכולם? שאלות?

נשמח לשמוע!

(התגובה תפורסם בהקדם בכפוף לאישור מערכת מייקינג)