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

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

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

- השורה האדומה — האוקטבה הנמוכה (C3 עד B3), צלילים עמוקים
- השורה הכחולה — האוקטבה האמצעית (C4 עד B4), הכי נפוצה
- השורה הירוקה — האוקטבה הגבוהה (C5 עד B5), צלילים דקים
שימו לב לדבר יפה: C4 הוא 262 הרץ, ו-C5 הוא 525 הרץ — בערך כפול. אותו תו בדיוק, אוקטבה מעל. זה החוק של המוזיקה: כפול תדר = אוקטבה אחת מעלה.
התווים של כוכב קטן

מתחת לכל מספר כתובות המילים באנגלית: 1 1 5 5 זה ״Twinkle twinkle״, 6 6 5 זה ״little star״. המספרים הם התווים, ולפי הטבלה 1 הוא C, 5 הוא G, 6 הוא A.
וכמה זמן מחזיקים כל תו? זה נקבע לפי סימנים:
| הסימן | כמה פעימות |
|---|---|
| מספר רגיל (1) | פעימה אחת |
| מספר עם קו מתחת | חצי פעימה |
| מספר עם נקודה אחריו | פעימה וחצי |
| מספר עם מקף אחריו | שתי פעימות |
למעלה בתווים רשום 100 — כלומר 100 פעימות בדקה. בדקה יש 60,000 מילי-שניות, אז כל פעימה היא 60,000 חלקי 100 = 600 מילי-שניות. זה המספר שנכניס לתוכנית.
החיבור
צריך: לוח ESP32, לוח ניסוי, זמזם פסיבי, טרנזיסטור S8050, נגד 1kΩ וחוטים. בדיוק אותו מעגל כמו בשיעור הקודם — רק הזמזם מתחלף.


- הטרנזיסטור בלוח הניסוי, כל רגל בשורה נפרדת.
- נגד 1kΩ מהשורה של הבסיס לשורה חופשית, ומשם חוט אל פין 5.
- הפולט אל GND.
- הרגל השלילית של הזמזם לשורה של הקולט.
- הרגל החיובית (+) אל 5V.
והטרנזיסטור עדיין הכרחי, מאותה סיבה: הפין נותן זרם קטן מדי, והטרנזיסטור פותח את הברז לזרם גדול.
הבלוקים
הבלוק שמנגן תו

p-buzzer [5] frequency [B0] duration [half] beat — זה הבלוק המרכזי של השיעור, והוא נמצא בקטגוריה Robots. יש בו שלושה תפריטים נפתחים:
- [5] — מספר הפין שאליו מחובר הזמזם.
- [B0] — התו. פותחים את התפריט ובוחרים מתוך רשימה ארוכה של תווים: C4, D4, E4, G4 וכן הלאה. זה מה שקובע אם הצליל יהיה גבוה או נמוך.
- [half] — אורך התו, במספר פעימות. בוחרים למשל half beat (חצי), whole beat (שלמה) או double beat (כפולה).
תו אחד = בלוק אחד. שיר עם שלושים תווים = שלושים בלוקים. עכשיו אתם מבינים למה נצטרך טריק.
הבלוק שקובע את הקצב

set the buzzer [5] beat duration to (1000) ms — ״קבע שפעימה אחת אורכת כך וכך מילי-שניות״.
הבלוק הזה הולך פעם אחת בלבד, בהתחלה, לפני כל התווים. הוא קובע את מהירות השיר כולו:
- מספר גדול (למשל 1000) → פעימה ארוכה → שיר איטי
- מספר קטן (למשל 300) → פעימה קצרה → שיר מהיר
בשביל כוכב קטן ב-100 פעימות לדקה נכניס 600.
זו חלוקת עבודה יפה: הבלוק הזה אומר ״כמה זמן זו פעימה״, ובלוק p-buzzer אומר ״כמה פעימות התו הזה״. משנים מספר אחד — כל השיר מאיץ או מאט.
My Blocks — לבנות בלוק משלכם
עכשיו לחלק הכי מרגש. שיר שלם זה הרבה מאוד בלוקים, ומסך העבודה נהיה בלגן. הפתרון: לייצר בלוק חדש משלכם.

כך עושים את זה:
- לוחצים על הקטגוריה הוורודה My Blocks בצד שמאל.
- לוחצים על הכפתור Make a Block.
- מקלידים שם — למשל part1 — ולוחצים OK.

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

מתחת ל-define part1 יושבים התווים C4 C4 G4 G4 A4 A4 G4 — זה ״Twinkle twinkle little star״. שימו לב שהתו האחרון מקבל double beat, כי הוא ארוך יותר.
מתחת ל-define part2 יושבים F4 F4 E4 E4 D4 D4 C4 — זה ״how I wonder what you are״.
והנה התוכנית הראשית:

תסתכלו כמה זה נקי:
- set the buzzer [5] beat duration to (600) ms — קובעים את הקצב, פעם אחת.
- בתוך ה-forever מגיעים שישה בלוקים ורודים בלבד: part1, part2, part3, part3, part1, part2.
- ולסיום wait [2] seconds — הפסקה קטנה לפני שהשיר מתחיל מחדש.
שימו לב ש-part3 מופיע פעמיים ברצף ו-part1 מופיע בהתחלה ובסוף. כתבנו אותם פעם אחת, והשתמשנו בהם שוב ושוב. זה בדיוק הכוח של My Blocks.
מריצים
⬇ להורדת הקובץ Passive_buzzer.sb3 — גוררים אותו לתוך ACECode ולוחצים Upload.
ההסבר המלא על צריבה נמצא בשיעור ההתקנה.
אחרי הצריבה — הלוח מנגן כוכב קטן, עוצר שתי שניות, ומתחיל מהתחלה.

אם שומעים רק ביפ אחד ארוך — כנראה חיברתם בטעות את הזמזם האקטיבי. תהפכו אותו ותבדקו שהגב פתוח.
מה קרה כאן
כל בלוק p-buzzer אומר ללוח: תרים ותוריד את המתח בפין 5 בתדר מסוים, במשך זמן מסוים. התדר קובע את גובה הצליל, והזמן קובע את אורך התו. הרבה תווים ברצף — זה שיר.
set the buzzer beat duration הוא כמו המטרונום: הוא קובע כמה זמן שווה ״פעימה אחת״ בכל השיר.
ו-My Blocks הוא הכלי שהפך תוכנית של שלושים בלוקים לתוכנית של שישה. זה לא רק יפה יותר — זה גם קל יותר לתקן. אם טעיתם בתו, אתם מתקנים אותו במקום אחד בלבד.
תרגילים
1. תאיצו ותאיטו. שנו את המספר בבלוק set the buzzer beat duration מ-600 ל-300, וצרבו. עכשיו נסו 1200. אותו שיר, שתי אישיות שונות לגמרי.
2. תעלו אוקטבה. בתוך define part1, שנו את כל התווים מ-C4, G4, A4 ל-C5, G5, A5. השיר יישמע כמו תיבת נגינה של תינוקות.
3. חזרו על המשפט. בתוך ה-forever, גררו עוד בלוק part1 ועוד בלוק part2 בסוף. עכשיו השיר ארוך יותר.
4. הבלוק שלכם. צרו בלוק חדש ב-Make a Block בשם ending, ותחתיו חברו שלושה בלוקי p-buzzer: C4, C4 ואז C4 עם double beat. גררו את ending אל סוף הרצף בתוך ה-forever. הרגע הלחנתם סיומת משלכם.


