בינה מלאכותית RB108-12 : פיתוח מעגל אלקטרוני – על ידי בינה מלאכותית

בינה מלאכותית RB108-12 : פיתוח מעגל אלקטרוני – על ידי בינה מלאכותית

 

 (מיקרו־בקר) הוא “מחשב קטן על שבב”: מעבד + זיכרון + חומרות תקשורת (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” לקביעת כיוון.

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

 

 

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


 

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

 

חלק 2: הוספת מסך ודרייבר תוכנה 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 מה תפקיד הנגד שמחובר לד .


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

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