דלגו לתוכן המרכזי
KitLab
שיעור קודם
מנוע — הלוח מזיז דברים בעולם האמיתי· 13 / 41
מנוע — הלוח מזיז דברים בעולם האמיתי
🎬

הסרטון בדרך אלינו

בינתיים — התמלול המלא של השיעור מחכה לכם למטה

מנוע — הלוח מזיז דברים בעולם האמיתי

מה בשיעור?

  • להסביר איך מנוע הופך חשמל לתנועה
  • להבין למה אסור לחבר מנוע ישירות לפין של הלוח
  • לדעת מה עושה מודול נהג המנוע ולמה הוא נחוץ
  • לחבר מנוע דרך המודול לשני פיני שליטה
  • להפוך כיוון סיבוב בעזרת שני בלוקי write analog pin
  • לשלוט במהירות עם מספר בין 0 ל-255 ובלולאת repeat until

מה נלמד כאן

  • איך מנוע הופך חשמל לסיבוב
  • למה מנוע לא יכול להתחבר ישירות לפין של הלוח
  • מה זה מודול נהג מנוע ומה הוא עושה בשבילנו
  • הבלוק write analog pin — ואיך שני פינים קובעים כיוון
  • איך שולטים במהירות בעזרת מספר ומשתנה

הרכיב שמזיז את העולם

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

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

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

וזה קפיצה אמיתית בקורס. נורית זה יפה, קול זה שימושי — אבל תנועה היא הדבר שהופך פרויקט לרובוט.


הרכיבים

המנוע

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

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

מה קורה בפנים? שני חלקים:

פירוק מנוע לחלקיו: מגנטים, רוטור עם סלילים, מברשות מגע ותושבות

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

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

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

למה צריך מודול נהג מנוע

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

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

הפתרון הוא רכיב באמצע:

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

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

המודול עושה ארבעה דברים:

  1. מספק כוח — הוא לוקח חשמל ישירות מ-5V, לא מהפין החלש.
  2. מאפשר שני כיוונים — הוא יודע להפוך את הזרם בפקודה, בלי שתנתקו חוטים.
  3. מאפשר ויסות מהירות — הוא מקבל אות משתנה ומתרגם אותו למהירות.
  4. מגן — יש בתוכו הגנות מפני זרם גדול מדי ומפני חום.

שני פינים, ארבעה מצבים

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

פין 5 פין 16 מה קורה
255 0 מסתובב קדימה במלוא הכוח
0 255 מסתובב אחורה במלוא הכוח
0 0 עומד
128 0 מסתובב קדימה בחצי מהירות

תחשבו על זה כמו נדנדה: אם צד אחד למעלה והשני למטה — יש הטיה לכיוון אחד. אם שניהם באותו גובה — אין תנועה בכלל.


החיבור

צריך: לוח ESP32, מודול נהג מנוע, מנוע זרם ישר וחוטים.

תרשים המעגל: המנוע מחובר למוצאי OA1 ו-OA2 של המודול, והמודול מקבל A-1A מפין IO05, A-1B מפין IO16, וכן 5 וולט ו-GND

תרשים חיבור: מנוע מחובר בשני חוטים למהדקים הירוקים של מודול הנהג, והמודול מחובר בארבעה חוטים אל לוח ה-ESP32

  1. שני חוטי המנוע → לשני הברגים של המהדק הירוק המסומן MOTOR A. הדקו עם מברג קטן, ותוודאו שהחוט באמת תפוס.
  2. A-1A במודול → פין 5 בלוח.
  3. A-1B במודול → פין 16 בלוח.
  4. VCC במודול → 5V בלוח.
  5. GND במודול → GND בלוח.

⚠️ שימו לב: אין כאן לוח ניסוי ואין נגד. המנוע מתחבר ישירות למודול, והמודול מתחבר ישירות ללוח.

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


הבלוקים

הבלוק החדש

הבלוק write analog pin עם תפריט מספר הפין ותיבת ערך מספרי

write analog pin [0] to (0) — הבלוק נמצא בקטגוריה Robots, ויש בו שני חלקים שונים לגמרי:

  • התפריט הנפתח [0] — בוחרים בו את מספר הפין. אצלנו 5 או 16.
  • התיבה הלבנה (0) — כאן מקלידים מספר בין 0 ל-255. זו העוצמה.

ולמה 255 ולא 4095 כמו בחיישן האור? כי אלה שני דברים הפוכים. בשיעור 6 הלוח קרא מתח והמיר אותו למספר בין 0 ל-4095. כאן הלוח כותב — הוא שולח מתח החוצה, והסולם של הכתיבה הוא 0 עד 255. קלט וכתיבה הם שני עולמות, וחשוב לא להתבלבל.

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

קדימה ואחורה

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

שני בלוקים: write analog pin 5 to 255 ומתחתיו write analog pin 16 to 0

זה קדימה: פין 5 מקבל 255, פין 16 מקבל 0.

שני בלוקים: write analog pin 5 to 0 ומתחתיו write analog pin 16 to 255

וזה אחורה: בדיוק להפך. אותם שני בלוקים, המספרים התחלפו מקומות.

הכלל לזכור: לעולם אל תשאירו את שני הפינים על 255. זה מבלבל את המודול ועלול לחמם אותו.


מריצים

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

ניסוי 1: כיוון

⬇ להורדת הקובץ Motor_Direction_Control.sb3 — גוררים אותו לתוך ACECode ולוחצים Upload.

ההסבר המלא על צריבה נמצא בשיעור ההתקנה.

תוכנית בלוקים: בתוך forever שלוש קבוצות — 255 ו-0 עם המתנה, 0 ו-255 עם המתנה, ו-0 ו-0 עם המתנה

בתוך ה-forever יש שלוש קבוצות, כל אחת בנויה משני בלוקי write analog pin ובלוק wait [2] seconds:

  1. 5 → 255, 16 → 0 ואז המתנה — שתי שניות קדימה
  2. 5 → 0, 16 → 255 ואז המתנה — שתי שניות אחורה
  3. 5 → 0, 16 → 0 ואז המתנה — שתי שניות עצירה

תצלום: לוח ESP32 מחובר בארבעה חוטים למודול נהג מנוע, שממנו יוצאים שני חוטים למנוע כתום

תדביקו פיסת נייר קטנה על הציר כדי לראות את הכיוון בבירור.

ניסוי 2: מהירות

⬇ להורדת הקובץ Motor_Speed_Control.sb3 — גוררים אותו לתוך ACECode ולוחצים Upload.

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

תוכנית בלוקים: משתנה Speed שמתחיל ב-0, ובתוך forever שתי לולאות repeat until שמעלות ומורידות אותו בקפיצות של 1

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

  • set [Speed] to (0) — שם 0 בקופסה. פעם אחת, בהתחלה.
  • repeat until (Speed = 255) — לולאה ירוקה-כתומה שחוזרת עד שהתנאי מתקיים. שימו לב לצורה: התנאי יושב בחריץ משושה בראש הבלוק.
  • write analog pin [5] to (Speed) — וכאן הקסם: במקום מספר קבוע, גררנו את הקופסה עצמה לתוך התיבה. בכל סיבוב המנוע מקבל את מה שיש בקופסה עכשיו.
  • change [Speed] by (1) — מוסיף 1 לקופסה.
  • wait [0.05] seconds — המתנה זעירה, שבלעדיה הכול היה קורה מהר מדי מכדי לשמוע.

ואז בא בלוק repeat until שני, בדיוק הפוך: הוא רץ עד ש-Speed מגיע ל-0, ובמקום להוסיף 1 הוא מוסיף 1-, כלומר מוריד.

תצלום: המערכת המלאה מחוברת — לוח, מודול ומנוע כתום עם חוט אדום ושחור

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


מה קרה כאן

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

בקובץ הראשון המספרים היו קבועים (255 ו-0) והכיוון התחלף. בקובץ השני הכיוון היה קבוע והמספר זחל בקפיצות של 1, בעזרת קופסה בשם Speed.

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


תרגילים

1. חצי כוח. בקובץ הכיוון, שנו את כל ה-255 ל-128. המנוע יסתובב לאט יותר וישמע שקט יותר. נסו גם 60 — ייתכן שהוא בכלל לא יזוז, כי אין מספיק כוח להתגבר על החיכוך. זה בסדר גמור, וזה נקרא ״סף ההתנעה״.

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

3. האצה איטית. בקובץ המהירות, שנו את wait [0.05] seconds ל-0.02. ההאצה תהיה מהירה בהרבה. נסו גם 0.1 להאצה איטית ודרמטית.

4. תעצרו למעלה. בקובץ המהירות, שנו בבלוק repeat until את התנאי מ-Speed = 255 ל-Speed = 150. עכשיו המנוע לא מגיע למלוא המהירות אף פעם. תסתכלו על התנאי בחריץ המשושה — זה שם מחליטים מתי הלולאה נגמרת.

🧰 הרכיבים לשיעור הזה

רוצים את חומרי הקורס והעדכונים?

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