מבוא לבינה מלאכותית : 14-RB30 עולם המיקרובקרים ובינה מלאכותית

מבוא לבינה מלאכותית : 14-RB30 : עולם המיקרובקרים ובינה מלאכותית

(מיקרו־בקר) הוא “מחשב קטן על שבב”: מעבד + זיכרון + חומרות תקשורת (UART/I2C/SPI), טיימרים, ADC וכו’.

 

מה זה פינים (Pins)

  • הפינים הם הרגליים החשמליות של השבב/מודול.

  • יש כמה סוגים עיקריים:

    • VCC / 3.3V ו-GND: הזנת מתח ואדמה.

    • GPIO: כניסה/יציאה דיגיטלית כללית (לקרוא כפתור, להדליק LED, להפעיל טרנזיסטור).

    • פונקציות מיוחדות: UART (TX/RX), I2C (SDA/SCL), SPI (MOSI/MISO/SCK/CS), PWM, ADC (אנלוגי), לפעמים DAC.

    • פיני “Boot/Strap”: קובעים מצב אתחול/צריבה בזמן הדלקה.

מה זה “צריבה” (Flashing) של תוכנה

  • זו כתיבה של קובץ תוכנה (Firmware) לזיכרון לא-נדיף (Flash) של המיקרו־בקר.

  • זה לא “שורף” פיזית; זו כתיבה לזיכרון פנימי/חיצוני.

  • בדרך כלל עושים את זה דרך USB-Serial (מתאם UART) או דרך USB מובנה, ולעיתים דרך JTAG.

מה זה ESP32

  • משפחה של מיקרו־בקרים של Espressif עם Wi-Fi + Bluetooth.

  • נפוץ בפרויקטים כי הוא חזק, זול, והרבה פריפריות.

  • “מודול” ESP32 (כמו WROOM) כולל גם את ה-ESP32 וגם שבב Flash חיצוני על אותו מודול.

איפה נשמרת התוכנה ב-ESP32

  • התוכנה שאתה כותב נשמרת בזיכרון Flash (בדרך כלל Flash חיצוני על המודול, לא בתוך הליבה עצמה).

  • בזמן ריצה:

    • חלק מהקוד יכול לרוץ ישירות מה-Flash (Execute-In-Place) או להיטען ל-RAM לביצועים.

    • המשתנים הזמניים נמצאים ב-RAM (נמחקים בכיבוי).

  • יש גם ROM פנימי קבוע במעבד עם “Boot ROM” שמתחיל את האתחול ותומך במצב צריבה.

  • נתונים שצריכים להישמר אחרי כיבוי (הגדרות) נשמרים ב-Flash (למשל NVS) או במחיצות ייעודיות.

איך הצריבה מתבצעת בפועל (בגדול)

  1. בעת Reset/הדלקה, ה-Boot ROM בודק “Strap pins” (למשל GPIO0) כדי לבחור מצב.

  2. אם מצב צריבה: הוא מקבל תוכנה דרך UART/USB וכותב אותה ל-Flash.

  3. אם מצב רגיל: הוא טוען את ה-Bootloader מה-Flash, ואז ה-Bootloader מעלה את האפליקציה מה-Flash.

 

סוגי יציאות/כניסות במיקרו־בקר (MCU)

  1. דיגיטלי GPIO

  • קלט דיגיטלי (Digital Input): קורא רק 0 או 1 (LOW/HIGH).
    דוגמה: כפתור.

  • פלט דיגיטלי (Digital Output): מוציא 0 או 1.
    דוגמה: הדלקת LED או הפעלת ריליי/טרנזיסטור.

דוגמה כפתור (קלט דיגיטלי)

  • חיבור נפוץ: כפתור בין הפין ל-GND, ומפעילים Pull-Up פנימי.

  • כשהכפתור לא לחוץ: הפין “1”

  • כשהכפתור לחוץ: הפין “0”

דוגמה LED (פלט דיגיטלי)

  • LED עם נגד טורי (למשל 220–1kΩ) בין הפין ל-GND (או להפך).

  • הפין על “1” מדליק, “0” מכבה (תלוי בחיבור).

  1. אנלוגי (ADC / DAC)

  • ADC (Analog to Digital Converter): קורא מתח רציף ומחזיר מספר.
    דוגמה: פוטנציומטר, חיישן אור, מד מתח סוללה דרך מחלק נגדים.
    למשל: 0V → 0, 3.3V → מקסימום (תלוי ברזולוציה).

  • DAC (Digital to Analog Converter) אם קיים: מוציא מתח “אנלוגי” אמיתי.
    (ברוב המקרים משתמשים ב-PWM במקום DAC.)

  1. PWM (דיגיטלי “חצי אנלוגי”)

  • זה פלט דיגיטלי שמחליף מהר בין 0/1 ביחס זמן משתנה (Duty Cycle).

  • שימושים:

    • עמעום LED

    • שליטה במהירות מנוע DC (דרך דרייבר/טרנזיסטור)

    • יצירת אות לסרבו (בדרך כלל פולסים בקצב קבוע)

  1. ממשקי תקשורת (לא “אנלוגי/דיגיטלי” פשוט)

  • UART: תקשורת סדרתית (TX/RX) למשל למחשב/מודול GPS.

  • I2C: שני חוטים (SDA/SCL) לחיישנים רבים.

  • SPI: מהיר יותר (MOSI/MISO/SCK/CS) למסכים, זיכרונות וכו’.

דוגמאות שימוש מעשיות

א) קריאת כפתור והדלקת LED

  • GPIO כקלט עם Pull-Up, GPIO כפלט.

  • לוגיקה: אם הכפתור לחוץ → LED נדלק.

ב) הפעלת מנוע DC
אי אפשר לחבר מנוע ישירות לפין של MCU, בגלל:

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

  • רעש וחזרה חשמלית: מנוע הוא עומס אינדוקטיבי ויוצר “קפיצות מתח” (Back-EMF) שמסכנות את המיקרו.

  • מתח: מנוע יכול להיות 6V/12V וה-MCU עובד 3.3V.

לכן צריך דרייבר למנוע (Motor Driver)

מה זה דרייבר למנוע ולמה הוא נדרש
דרייבר מנוע הוא “מתווך כוח” בין המיקרו למנוע:

 

  • מקבל אותות בקרה קטנים מהמיקרו (ON/OFF, כיוון, PWM)

  • מספק למנוע זרם ומתח גבוהים ממקור הכוח

  • מגן על המיקרו מפיקים ורעש (דיודות/מנגנוני הגנה)

  • מאפשר שליטה בכיוון סיבוב (H-Bridge) ומהירות (PWM)

סוגים נפוצים

  • טרנזיסטור MOSFET יחיד + דיודת Flyback: להפעלה/כיבוי ומהירות לכיוון אחד (מנוע DC).

  • H-Bridge: שליטה גם בכיוון וגם במהירות (למשל TB6612FNG, L298N, DRV8833).

  • דרייבר למנוע צעד (Stepper): כמו A4988/DRV8825.

  • בקר ESC למנועי Brushless: זה דרייבר ייעודי למנועי BLDC.

דוגמה פשוטה להפעלת מנוע DC

  • MCU מוציא PWM לפין “EN” בדרייבר.

  • MCU מוציא שני פינים “IN1/IN2” לקביעת כיוון.

  • ספק כוח של המנוע מתחבר לדרייבר, והדרייבר למנוע.

 

 

 

 


chatGpt api


 

 

דוגמאות לפרויקטים  בעזרת מיקרו בקר

 

 

 

 

 

 

 

 

 

 

 


 

חלק 1: פיתוח תוכנה למקרו בקר ואלקטרוניקה

נשתמש במחולל  https://wokwi.com/

מיקרו מעבד esp32

נלמד על חיבור מספר מעגלים חשמליים למיקרו מעבד

ניראה את מיקרו מעבד הבא :

 

תרגיל כיתה 1

  1.  הרץ את המעגל הבא   https://wokwi.com/projects/466892877832604673
  2. נתח בעזרת בינה מלאכותית מה המעגל עושה בכללי ולכל שורה הסבר מה מחובר אלקטרונית ולאן
  3. שנה את החיבור של הלד והתוכנה ל D4

 


חיבור פוטנציומטר

 

תרגיל כיתה 2 :

  1. הרץ את המעגל הבא       https://wokwi.com/projects/369856401733268481

2. שנה את  המעגל והתוכנה שיהיה מחובר לפין D27

 


 

 

https://wokwi.com/projects/348323129018286675


תרגיל 3

חיבור סרבו esp32  ועבודה עם ספריות

 

הוספת דרייבר וספריות

 

 

הרצץ את התוכנה :  הבאה

https://wokwi.com/projects/452940039931262977

 


תרגיל כיתה 3

קישור לקוד מוכן

https://wokwi.com/projects/399760959908478977

  1. בנה בערת בינה מלאכותית את המערכת הבאה

 

 


תרגיל 4

הרץ בעזרת בינה מלאכותית את המערכת הבאה

 

https://wokwi.com/projects/391611667822716929

 


תרגיל 5 העעשרה

 

 

 


תרגיל כיתה 6

 

  1. צרו בעזרת בינה מלאכותית  esp32 woki שמדליק לד כחול ואדום מהבהב כמו של משטרה

מתקדם  –  חלק ב: הוספת מסך ודרייבר תוכנה EPS32 –  OLED למיקרו בקר ESP3

תרגיל כיתה 5 עלו לפי הסרטון

1: הוספת מסך ודרייבר תוכנה EPS32 –  OLED למיקרו בקר ESP3

חלק 3:

מה עושה הקוד :

הקוד הוא תוכנית Arduino ל-ESP32-S3 שמחליפה מצב של שני פינים כל חצי שנייה, כך שהם תמיד הפוכים אחד לשני.

מה קורה בפועל

  1. הגדרות בתחילת הקוד

  • PIN1 = 1 זה GPIO1

  • LED2 = 2 זה GPIO2 (מחובר אליו LED לפי ההערה)

  1. setup() רץ פעם אחת אחרי הדלקה/Reset

  • pinMode(PIN1, OUTPUT); מגדיר את GPIO1 כפלט

  • pinMode(LED2, OUTPUT); מגדיר את GPIO2 כפלט

  • digitalWrite(PIN1, LOW); מתחיל עם GPIO1 כבוי (0V)

  • digitalWrite(LED2, HIGH); מתחיל עם GPIO2 דלוק (3.3V)
    כלומר: בתחילת העבודה PIN1=OFF ו-LED2=ON

  1. loop() רץ בלולאה אינסופית
    מחזור 1:

  • PIN1 נהיה HIGH (נדלק)

  • LED2 נהיה LOW (נכבה)

  • delay(500) מחכה 500ms

מחזור 2:

  • PIN1 נהיה LOW (נכבה)

  • LED2 נהיה HIGH (נדלק)

  • delay(500) מחכה 500ms

תוצאה

  • GPIO1 נדלק/נכבה בקצב 1Hz (חצי שנייה ON, חצי שנייה OFF).

  • GPIO2 עושה בדיוק ההפך: כשה-GPIO1 ON אז ה-LED כבוי, וכשה-GPIO1 OFF אז ה-LED דלוק.

הערה חשובה
ב-ESP32-S3 לא בכל לוח מומלץ להשתמש ב-GPIO1/2 בלי לבדוק: לעיתים הם משמשים ל-UART/USB או פונקציות Boot בלוחות מסוימים. אם יש בעיה בצריבה/Serial, תבחר פינים אחרים (למשל 4,5,6,7 תלוי בלוח).

קוד :

 

diagram.json

 

תרגיל כיתה 1  : פיתוח תוכנה ואלקטרוניקה בעזרת בינה מלאכותית

נתון המערכת הבאה :

 

קישור לסימולטור של המעגל  :  https://wokwi.com/projects/452940039931262977

1.נתח בעזרת בינה מלאכותית התוכנה עושה העבר את קוד התוכנה לבינה מלכותית

2.בקש הסבר על כל שורת קוד – ומה התוכנה עושה

3.נתח דרך הבינה מלאכותית באיזה ערכים הלד  נידלק ואיזה ערכים הלד נכבה

4. העתק לבינה מלאכותית את הסמכה האלקטרונית של המעגל הבאה

4.1 מה תפקיד הנגד שמחובר לד .


העשרה

 


חלק ג: יצירת מעגל בעזרת בינה מלאכותית

בינה מלאכותית יצירת מערכת שלמה