דלגו לתוכן המרכזי
KitLab
שיעור קודם
פסנתר פירות — TouchPad· 29 / 41
פסנתר פירות — TouchPad
🎬

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

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

פסנתר פירות — TouchPad

מה בשיעור?

  • חישת מגע קיבולית
  • למה אין חלקים נעים
  • פיני Touch ואילו לא לסמוך עליהם
  • TouchPad כמחלקה ולא כפונקציה
  • כיוונון סף המגע

מה נלמד כאן

  • חישת מגע קיבולית
  • TouchPad — מחלקה ייעודית של MicroPython
  • פסנתר מפירות

פסנתר מתפוחים

פסנתר פירות

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


הידע שצריך

1. חישת מגע קיבולית

עקרון החישה

הטכנולוגיה שמאחורי כל מסך מגע בעולם.

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

מודול פנימי בשבב מנטר ברציפות, וסטייה משמעותית = מגע.

אין כאן שום חלק נע. אין מגעים, אין קפיץ, אין ריטוט. לכן מסכי מגע מחזיקים שנים.

2. פיני המגע

תשעה פינים, אבל לא כולם שמישים:

⚠️ ל-GPIO0 ו-GPIO2 יש תפקידי אתחול מיוחדים. השתמשו ב-4, 12, 13, 14, 27, 32, 33 — בדיוק שבעה, אחד לכל תו.

3. TouchPad

from machine import TouchPad, Pin

touch = TouchPad(Pin(4))
value = touch.read()

TouchPad היא מחלקה ייעודית ב-MicroPython — אין צורך בספרייה חיצונית, היא מובנית.

read() מחזירה את ערך הקיבול. ככל שהערך נמוך יותר — המגע חזק יותר.

ב-Arduino זו הייתה פונקציה בודדת touchRead(pin). כאן זה אובייקט — עקבי עם Pin, PWM ו-ADC שכבר מכירים.


הניסוי

המטרה: נגיעה בפרי מנגנת תו.

רשימת רכיבים

הרכיב כמות
לוח ESP32 1
לוח ניסוי 400 נקודות 1
זמזם פסיבי 1
טרנזיסטור + נגד 1kΩ 1
פירות 3 עד 7

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

התרשים החשמלי

התרשים החשמלי

החיבור

חיבור הרכיבים

תקעו חוט חשוף לכל פרי וחברו לפין מגע.


הקוד

from machine import Pin, PWM, TouchPad
import time

touch_pins = [4, 12, 13, 14, 27, 32, 33]
tones      = [523, 587, 659, 698, 784, 880, 988]
noteNames  = ["DO", "RE", "MI", "FA", "SO", "LA", "TI"]

pads = [TouchPad(Pin(p)) for p in touch_pins]

buzzer = PWM(Pin(5))
buzzer.duty(0)

threshold = 300        # תכווננו אותו!

while True:
    for i in range(7):
        if pads[i].read() < threshold:
            print(noteNames[i])
            buzzer.freq(tones[i])
            buzzer.duty(512)
            time.sleep(0.15)
            buzzer.duty(0)

⚠️ הסף 300 הוא נקודת התחלה. הוא תלוי בפרי, בלחות ובאורך החוט.

תמדדו קודם: הריצו print(pads[0].read()) והסתכלו על המספרים כשנוגעים וכשלא. בחרו סף באמצע.

שימו לב לשלוש רשימות מקבילות — פין, תדר ושם. אותה תבנית משיעור 9.

מה אמור לקרות

מנגנים על פירות


נסו בעצמכם

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

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

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

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