תוכן עניינים:

אוסו! מקלדת: 8 שלבים (עם תמונות)
אוסו! מקלדת: 8 שלבים (עם תמונות)

וִידֵאוֹ: אוסו! מקלדת: 8 שלבים (עם תמונות)

וִידֵאוֹ: אוסו! מקלדת: 8 שלבים (עם תמונות)
וִידֵאוֹ: רק רציתי חברים 2024, יולי
Anonim
אוסו! מקלדת
אוסו! מקלדת

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

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

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

הערה 2: עדכנתי את הקוד מספר פעמים ואני עד לגרסה 3ish כעת. אשאיר את כל הקוד באינטרנט אבל אני ממליץ לך להשתמש בגרסה האחרונה. כרגע אין לה פונקציונליות LED, אבל היא אמורה להיות הביצועים הטובים ביותר.

שלב 1: חומרים והסברים

חומרים והסברים
חומרים והסברים

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

1 כבל Arduino pro micro + USB

3 מתגים אדומים של Kailh BOX

3 10k נגד (0805 SMD)

3 קבלים 100nF (0805 SMD)

4 LED APA102 rgb (5050 SMD)

3 מפתחות

1 מעגל מודפס (PCB) המסופק בפרויקט זה

1 מארז מודפס בתלת מימד מסופק בפרויקט זה

מדוע אני משתמש במיקרו Arduino pro?

לרוב לוחות הארדואינו כמו ה- Uno (Atmega328) אין תמיכה מקורית בתקשורת USB. כן אתה יכול לתכנת אותם באמצעות USB בקלות רבה ואני חושב שיש דרכים לעקיפת הבעיה, אבל אני אוהב לשמור על זה פשוט בכל הנוגע לתקשורת USB ואני לא יודע אם הפתרונות עונים לא פחות. לוחות אלה משתמשים בשבב חיצוני כדי לאפשר תקשורת USB ואילו ל- Arduino pro micro (Atmega32U4) יש את זה מובנה.

המתגים

ישנם מתגים מכניים רבים בהם ניתן להשתמש. לינארי, מישוש או קליקני מ- Kailh או Cherry MX. בחר מה שאתה אוהב. השתמשתי במתגי Kailh מכיוון שהם היו זולים ב- Ailexpress. אם תבחר להשתמש ב- PCB תזדקק למתגי Kailh BOX. הצבע קובע את ההרגשה.

הרכיבים האלקטרוניים

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

הדיור

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

שלב 2: סכמטי

הסכימטי
הסכימטי

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

העבר חיבורים ל- Arduino

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

מעגל ההפלה

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

התבונן תחילה בסימולציה זו כדי לצייר תמונה ראשונה (לחץ במהירות על המתג והסתכל על האות למטה)

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

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

מִתקַדֵם:

Atmaga32U4 קורא שפל דיגיטלי ב 0.2Vcc - 0.1V = 0.9 וולט. המתח של הקבל בכל עת בפריקתו הוא Vcc * e^(-t/RC). אם אתה מודד זמן ירידה שונה במתג שלך אתה יכול לחשב את ערכי הנגד והקבלים שלך.

טופס נוסחה

נוריות הלדים

נוריות ה- rgb הן נוריות APA102 אשר ניתנות להתייחסות בנפרד באמצעות שעון וקו נתונים. אין צורך ברכיבים חיצוניים כדי לגרום להם לעבוד. עבור נוריות רבות אתה צריך להשתמש בקבל מקביל ל -5 וולט ולטחון אך עם 4 נוריות בלבד אתה לא צריך את זה.

שלב 3: עיצוב הלוח

עיצוב הלוח
עיצוב הלוח

ה- PCB תוכנן ב- JLCPCB. אני לא בחסותם אבל בשביל אב טיפוס זול הם מייצרים PCB מעולה. תמורת 2 דולר אתה מקבל 10 מאותו לוח, אך המשלוח היה בערך 11 דולר בשבילי. אם אינך מעוניין בהכרח בתאורת rgb ומתכנן להכין רק אחת, עליך לשקול להכין את המקלדת ללא PCB.

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

להזמנת ה- PCB היכנסו אל https://jlcpcb.com/ ובחרו באפשרות 2 שכבות. הוא יבקש ממך קובץ גרבר. הורד את קובץ ".zip" וגרור אותו לחלון. אתה לא צריך לפתוח אותו. ההגדרות צריכות להיות בסדר ואתה יכול להמשיך ולהשלים את ההזמנה.

שלב 4: עצות עיצוב והרכבה של מארז

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

לְעַצֵב

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

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

הַרכָּבָה

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

1. הלחמה של רכיבי ה- SMD. אלה הנגדים, הקבלים ונורות הלדים.

2. הלחמה של מיקרו Arduino pro.

3. הנח את שלושת המתגים בכריכה המודפסת בתלת -ממד לפני הלחמה. לא ניתן להסיר את לוח המכסה לאחר הלחמת המתגים. לא מומלץ לבצע הלחמת המתגים ועלולה להרוס אותם.

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

5. הנח את כיסוי הכיסוי המורכב במארז המודפס בתלת -ממד ואבטח בעזרת סרט דק או השתמש בברגים אם הם אינם מפריעים למכסי המפתחות.

6. הנח את KeyCaps על המתגים וסיימת.

המלצות

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

גם כמה רגלי אחיזה בתחתית נחמדות לאנטי החלקה ונותנים לאור ה- rgb לזרוח.

שלב 5: הקוד V1 (הפסקת חומרה)

הקוד V1 (הפסקת חומרה)
הקוד V1 (הפסקת חומרה)
הקוד V1 (הפסקת חומרה)
הקוד V1 (הפסקת חומרה)

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

מעלה את הקוד

קודם כל הורד את כל 3 קבצי ה-.ino והכניס אותם לתיקייה אחת. אם אין לך את Arduino IDE פשוט הורד אותו בחינם באתר הרשמי של arduino.

חבר את Arduino למחשב שלך ופתח את "OSU_Keyboard_code_V1.ino". בלוח הכלים בחר "Arduino/Genuino Micro". גם ב- Tools בחר את יציאת ה- COM הנכונה. זה יכול לפעמים להשתנות. כדי להעלות את הקוד ל- Arduino שלך פשוט לחץ על החץ בפינה השמאלית העליונה של המסך והמתן עד שיגיד לך שהוא הושלם בפינה השמאלית התחתונה.

OSU_Keyboard_code_V1

כולל והגדרה

ראשית עליך לכלול את ספריית המקלדת. זה מאפשר להשתמש ב- Arduino כמקלדת.

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

לאחר מכן נתחי היציאה של נתוני ה- LED והשעון.

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

להכין

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

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

Keyboard.begin () פשוט מפעיל את חיבור ה- USB כמקלדת.

שלוש ההפסקות הבאות מקושרות לסיכות המתג. בכל פעם שמתגלה שינוי בסיכת המתג תתבצע תוכנית זעירה. התוכנית הקטנה הזו תצא בהמשך.

לוּלָאָה

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

אני משתמש בו רק כדי לשנות ולעדכן את צבע הנורות.

מפריע

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

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

LED (מוסבר בסדר אחר)

אם אתה סקרן כיצד הנורות נשלטות, עליך להסתכל בגיליון הנתונים של APA102.

חתיכה אחת

זו שוב גרסת מניפולציה היציאה הישירה של כתיבה דיגיטלית.

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

OneByte

פעולה זו חוזרת על OneBit 8 פעמים עם לולאת "for". הוא קורא את הביט הראשון בבתים ומעביר את הערך שלו לפונקציית oneBit ועושה את אותו הדבר עבור 7 הביטים הבאים.

LedData

זה חוזר על OneByte 4 פעמים כדי לספק את הנתונים הדרושים עבור LED אחד. הבייט הראשון מתחיל ב- 111xxxxx וערך בהירות של 5 ביט במקום xxxxx. ניתן להגדיר את הבהירות בין 0 ל -31 (2^5 = 32 רמות).

3 הבייטים הבאים מיועדים לערכים כחול, ירוק ואדום. בייט אחד לכל צבע.

ColorWheelThisLed

פונקציה זו מכנה ledData נותנת לה את צבעי ה- rgb בהתאם לזווית בגלגל הצבעים.

הערך של 16 סיביות הוא דיבידנד ב -6 חלקים ברווח שווה של 60 מעלות. התבוננות בתמונות עשויה לעזור לך להבין טוב יותר.

(מסופקת גם גרסת 8 סיביות אך הוספה כי היא מהבהבת מדי)

StartEndFrame

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

אני משתמש רק במסגרת ההתחלה כי אין צורך במסגרת הקצה. מסגרת ההתחלה היא 4 בתים של 0. מסגרת הסיום היא 4 בתים של 255 (11111111).

שלב 6: קוד V2 (תוכנת Debounce עם טיימרים)

קוד V2 (תוכנת Debounce עם טיימרים)
קוד V2 (תוכנת Debounce עם טיימרים)

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

לא אסביר את הקוד בהרחבה כמו הגרסה הקודמת מכיוון שקצת יותר קשה להסביר אותו.

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

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

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

שלב 7: קוד V3 (Debounce תוכנה עם מונה אנכי) (מומלץ) (ללא LED)

קוד V3 (תוכנת Debounce with Vertical Counter) (מומלץ) (ללא LED)
קוד V3 (תוכנת Debounce with Vertical Counter) (מומלץ) (ללא LED)

לקוד זה יש גם גרסה שבה אתה לא צריך נגדים למטה. הקפד לחבר כל כפתור לכניסה ול- GROUND! נעשה שימוש במגירה מובנית

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

(בכנות, לפחות מחצית מהפרוייקט הזה הפך לנקודת כפתור בשלב זה)

לאחר חיפושים נתקלתי בפוסט זה:

www.compuphase.com/electronics/debouncing….

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

ההסבר שלי

דיאגרמת התזמון (שנעשתה ב- WaveDrom) שהוספתי צריכה להקשות על זה להבין קצת מתמטיקה קצת יותר מובנת. שימו לב שלתמונה יש 2 סיביות נגדיות, אך לקוד שלי יש 3. המשמעות היא זמן ירידה ארוך יותר.

ביט אחד בערך

עם יישום המונה האנכי ניתן להפחית מספר כפתורים בו זמנית, במקביל. כל הערכים הם מסוג Byte (uint8_t) ומורכבים מ -8 סיביות. אין אנו מודאגים מה הערך של כל אחד מהבתים הללו, אלא אנו מעוניינים בסיביות בפני עצמן. כל כפתור שיש לפרוק משתמש רק בביט אחד מכל בייט. הכפתור הראשון משתמש רק בביט הראשון של כל בת, הכפתור השני משתמש בביט השני וכו '.

הכל במקביל

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

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

הנפילה

שגרת ההפלה מתבצעת כל 1 אלפית השנייה עם הפסקה של טיימר.

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

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

שלב 8: התוצאה

Image
Image

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

האזכורים הקודמים לגבי V2 אינם אמורים להיות הבטחה אז אל תדחה את הפרויקט הזה כי אתה רוצה לחכות ל- V2.

אני מקווה שתיהנו מהמקלדת שלכם!

אוסו! שם: תומאזז 3

פתרון תקלות

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

האם מקש אחד או מספר מקשים אינו פועל?

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

האם התווים שהקלדת תואמים את המפתחות שהגדרת ב- Osu! ?

שנה את התווים בקוד הארדואינו בשלושת #ההגדרות הראשונות ('' הוא הכרחי!).

או שנה את האוסו שלך! הגדרות לשימוש במקשים שהוגדרו.

האם אחד או מספר מקשים חוזרים על עצמם מספר פעמים?

מעגל הניתוק כנראה לא עובד עבור המתגים שלך או שהוא לא מולחם כהלכה. בדוק את חיבורי ההלחמה שלך. אם זה עדיין קורה נסה ערך קבלים של 1uF. זה יהיה מאוד קשה עבור משתמשי ה- PCB.

אם אתה נתקל בבעיות עם הלדים שלך

האם הנורות מהבהבות?

חיבור הלחמה עשוי להיות רופף. אם אתה משתמש ב- PCB אשר את פח הלחמה זרם באמת על כרית ההדפסה.

האם אף אחד מהנורות לא עובד או ממספר מסוים של נוריות LED מפסיק לעבוד?

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

אם זה מתקן זה חזור על נוריות ה- LED הבאות במידת הצורך.

מוּמלָץ: