מעבדות

מעבדת פיתוח תוכנה משובצת מחשב ויישומים

מרצה אחראי: מר ולדי בודניצקי

רציונל הקורס

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

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

היקף השוק בתחום מתפתח זה צפוי להגיע ל-116.2 מיליארד דולר עד 2025 בהשוואה ל 86.5 מיליארד דולר בלבד בשנת 2020. צמיחה זו נובעת בעיקר מהצרכים ההולכים וגדלים בתחומים של טכנולוגיות דיגיטליות מודרניות כגון: תעשיית יצירת מערכות ה-IoT, מערכות SOC (System-on-chip) המבוססות על FPGA, מערכות זמן אמת ועוד. בתחום זה נכללות בין היתר חברות סטארט-אפ וגם תעשיות גדולות.

למי מיועד הקורס

הקורס מיועד לסטודנטים B.Sc במדעי המחשב ולמתמטיקה שימושית של הפקולטה למדעים.

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

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

אפיון המעבדה

שם הקורס מבוא לתוכנה משובצת מחשב ויישומים - 67026
שם הפקולטה מדעים
מחלקה מדעי המחשב
מרצה מר ולדי בודניצקי
שעות שבועיות 4
נקודות זכות 3.5
אופן הוראה הרצאה (3 שעות) + תרגול (1 שעה)
שנת לימודים תואר ראשון
מיקום מרכז מעבדות מחשוב – בניין 8, קומה 1, חדר 100
כמות הסטודנטים בקורס עד 20 סטודנטים
דרישות קדם מבוא למערכות מחשב - 60069
סדנה מתקדמת בתכנות - 61108
סילבוס עברית | אנגלית
רציונאל מסמך רציונאל לקורס

מטרת הקורס

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

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

תיאור תמציתי של הקורס ושיטת ההוראה

במהלך הקורס, הסטודנטים ישתמשו בערכת פיתוח נפוצה ופופולרית (כגון הארדואינו – Arduino Uno R3), המשתמשת במיקרו-בקר ATmega328p. כפלטפורמה להכשרה המעשית.

בתהליך הלמידה, הסטודנטים ירכשו ידע של שימוש בתכנות ברמה נמוכה (low-level programming) עבור מיקרו-בקרים ליצירת יישומים שונים.

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

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

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

הכלים המשמשים למעבדה

Tinkercad (Autodesk)

A 3D modeling web browser program tool that allows Arduino-based systems simulation in virtual World.

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

  1. מודל תלת מימד וירטואלי של ערכת הפיתוח Arduino UNO R3.
  2. מגוון חיישנים תלת-ממדיים וירטואליים המאפשרים קריאת נתונים מהסביבה, כמו:
    • חיישן תאורה - Photoresistor
    • חיישן טמפרטורה - Temperature Sensor
    • חיישן מרחק אולטראסוני - Ultrasonic Sensor
    • חיישן לחות אדמה - Soil moisture sensor וכו'
  3. מגוון מפעילים תלת-ממדיים וירטואליים המאפשרים תפעול מבוקר של מערכת משובצת מחשב, כמו:
    • לד - LED 
    • זמזם - Buzzer
    • מנוע DC - DC Motor וכו'
  4. פיתוח באמצעות חיבור בלוקים פונקציונליים
    צילום מסך להדגמה
  5. סימולציה (emulation) של כתיבת קוד Low-Level
    צילום מסך להדגמה
  6. סימולציה מערכתית של ערכים ומצבים שונים​
    צילום מסך להדגמה

Arduino IDE (גרסה: 2.1.0)
סביבת הפיתוח המשולבת של ארדואינו

An Integrated Development Environment (IDE) is a software that helps programmers develop software code efficiently, compiling, and building low-level embedded programming software.

כלי תכנות מ"Arduino.cc" לפיתוח, קומפילציה ובנייה של תוכנה משובצת מחשב.

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

ניתן להשתמש בסביבת הפיתוח לוקאלית (מקומי) ואף ניתן לפתח באמצעות שימוש בסביבת Web לצורך הטמעת התוכנה המשובצת מחשב.

Arduino Sensor Kit - Bundle
קיט חיישנים ארדואינו

An Arduino “Plug & Play” Sensors Kit Bundle integrating 10 commonly used modules.

כוללת מיקרו-בקר Arduino UNO R3 וסט של 10 "Plug & Play" מודולים נפוצים של חיישנים ומפעילים.

  • ערכת החיישנים של Arduino מיועדת לסטודנטים שרק מתחילים להשתמש ב- Arduino ומעוניינים לקבל נסיון של הטמעת תוכנה משובצת מחשב בצורה ידידותית
  • Arduino Sensor Kit-Bundle
    10 המודולים והחיישנים הפופולריים ביותר עבור Arduino UNO כולם על לוח אחד

Arduino Sensor Kit-Bundle

למעבדות נוספות במרכז מעבדות המחשוב: