תוכן עניינים:
- שלב 1: קביעת תצורת לחצנים אופטימליים
- שלב 2: מכלול 4 הכפתורים שלי
- שלב 3: משחק משחק
- שלב 4: תחרויות ראש בראש
- שלב 5: בקרי שחקנים אופציונאליים
- שלב 6: עדכונים
וִידֵאוֹ: משחקי 4 כפתורים באמצעות קלט אנלוגי אחד: 6 שלבים (עם תמונות)
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:12
מדריך זה מתמקד בשימוש בקו קלט אנלוגי אחד לכפתורים מרובים הניתנים לזיהוי ללא קשר זה לזה.
וכדי להדגיש את השימוש בלחצנים אלה כלולה תוכנה למשחק ארבעה משחקי 4 כפתורים שונים. כל המשחקים (בסך הכל 8) במסמך זה משתמשים בתצוגת סולם לד (עיין בפרויקט קודם: מדריכים: חד-קו-LED-תצוגת-משחקים).
אתה יכול להשתמש במכלול משלך עם 4 כפתורים עם יציאות תצוגה אחרות, פשוט השתמש בפונקציה 'scanButtons ()' מאחת הסקיצות הכלולות. והשתמש במערכונים אלה למשל שימוש בהם.
המשחקים הם משחק מיומנות: Whack-a-Mole, משחק זיכרון: Simon Says, משחקי היגיון Sea Hunt ו- Flip'd משחק שני שחקנים הדומה לרברי. מאוחר יותר, בהנחיה זו, אציג מאוחר יותר גם ארבעה משחקים של שני אנשים של תחרות ראש בראש.
שלב 1: קביעת תצורת לחצנים אופטימליים
פשוט שימוש בכמה נגדים בסדרה עם לחצנים מנותקים בין כל אחד מהם יעבוד אם לעולם לא תדאג ללחיצת כפתור אחת שתסתום אחר. בתצורה כזו כל כפתור, כאשר לוחצים עליו, חוסם כל מה שמתחתיו. גם כשאתה צריך רק שני כפתורים ואכפת לך רק אחד בכל פעם, כמו ביישום של פינג-פונג; זו תהיה בעיה, אם שחקן לא מצליח (רק להיות איטי מדי או בזדון) להסיר את אצבעו מהכפתור שלו לפני שהאחר ייפגע בשלו.
פעמים רבות חוברו כפתורים מרובים לקו אנלוגי יחיד שכל אחד עם ערכי הנגד השונים שלו נכנסים לקלט. אתה יכול בקלות להבחין באיזה כפתור או זוג נלחצים כשיש רק 2 או 3 כפתורים. אך לא באופן אמין כאשר יותר לחצנים או יותר משניים נלחצים, מכיוון ששילוב הקריאות הגרוע ביותר הופך להיות קרוב יותר מדי באופן דו -משמעי.
כאן עם מה שאני מכנה תצורה כפולה Y של ארבעה כפתורים ונגדים, אתה יכול להבחין באופן אמין בכל לחיצה אחת, כפולה, אפילו משולשת או כל ארבעת הלחצנים. מנהל התוכנה לעשות זאת מכוסה בסעיף הבא וברשימת הקוד.
מתוך רצון לחבר ארבעה כפתורים לכניסה אנלוגית אחת שבה ניתן היה לזהות לחיצה על כל כפתור ללא קשר למצב הכפתורים האחרים, דגמתי מספר תצורות בגיליון אלקטרוני. גיליתי שתצורת Y כפולה (המורכבת משתי קבוצות של שלושה נגדים) נותנת את האפשרויות הטובות ביותר. עיין בתרשים הסכימטי של החיווט להלן. הערכתי אותם על סמך ההפרדה הגדולה ביותר של ההתנגדות הכוללת בין שני שילובי הכפתורים שנלחצו. עוד דגמתי ערכים אנלוגיים מחושבים. עיין בקובץ הגיליון האלקטרוני להלן.
כדי לקבוע את הערכים הטובים ביותר לשימוש בתצורות לעיל כתבתי סימולציה, שניסתה באופן ממצה את כל התמורות האפשריות של ערכי הנגד הפוטנציאליים, ומצאתי את המערך שיצר את ההבדל המקסימלי הקטן ביותר בין תשומות קריאה אפשריות. סיפקתי את הקוד שבו השתמשתי. זה היה כלי כוח אכזרי שזרקתי יחד, קיבלתי את מה שרציתי ושמתי אותו בצד, כך שהוא לא היה מותאם בשום אופן. זה לגמרי כפי שהוא, לעיון היסטורי בלבד (Solve_4R.html להלן).
להלן הפלט שלו לבדיקה:
R1: 10 R2: 12 R3: 10 R4: 12 R5: 10 R6: 15 דקות R delta: 3.3658818125
R1: 10 R2: 12 R3: 10 R4: 12 R5: 10 R6: 18 דקות R delta: 4.9490620031 R1: 10 R2: 12 R3: 10 R4: 12 R5: 18 R6: 10 minR delta: 4.9490620031 R1: 10 R2: 12 R3: 10 R4: 15 R5: 10 R6: 33 דקות R delta: 5.0576510475 R1: 10 R2: 12 R3: 10 R4: 15 R5: 12 R6: 10 minR delta: 7.104826870 R1: 10 R2: 12 R3: 10 R4: 18 R5: 10 R6: 18 דקות דלתא R: 8.1673424912 R1: 10 R2: 12 R3: 10 R4: 18 R5: 15 R6: 22 דקות R delta: 8.6504939648 R1: 10 R2: 12 R3: 10 R4: 22 R5: 10 R6: 18 דלתא minR: 10.1721492515 R1: 10 R2: 12 R3: 10 R4: 22 R5: 10 R6: 22 דקות R delta: 10.5040000560 R1: 10 R2: 12 R3: 10 R4: 27 R5: 12 R6: 27 דקות R delta: 10.7814361579 R1: 10 R2: 12 R3: 12 R4: 33 R5: 15 R6: 36 דקות דלתא R: 10.8827552754 R1: 10 R2: 12 R3: 12 R4: 68 R5: 10 R6: 22 דקות R delta: 11.4499029683 R1: 10 R2: 12 R3: 12 R4: 68 R5: 10 R6: 27 דקות R delta: 12.0961591599 R1: 10 R2: 12 R3: 15 R4: 68 R5: 10 R6: 27 minR delta: 12.7992171382 R1: 10 R2: 12 R3: 15 R4: 75 R5: 10 R6: 27 דקות R delta: 12.7992171382 R1: 10 R2: 12 R3: 15 R4: 82 R5: 10 R6: 27 minR delta: 1 2.7992171382 R1: 10 R2: 12 R3: 15 R4: 91 R5: 10 R6: 27 דקות R delta: 12.7992171382 R1: 10 R2: 12 R3: 27 R4: 82 R5: 10 R6: 15 דקות R delta: 12.7992171382 R1: 10 R2: 12 R3: 27 R4: 91 R5: 10 R6: 15 דקות R delta: 12.7992171382 R1: 10 R2: 12 R3: 27 R4: 100 R5: 10 R6: 15 דקות R delta: 12.7992171382 R1: 10 R2: 12 R3: 68 R4: 15 R5: 10 R6: 27 דקות R delta: 12.7992171382 R1: 10 R2: 12 R3: 75 R4: 15 R5: 10 R6: 27 דקות R delta: 12.7992171382 R1: 10 R2: 12 R3: 82 R4: 15 R5: 10 R6: 27 דקות R דלתא: 12.7992171382 R1: 10 R2: 12 R3: 82 R4: 27 R5: 10 R6: 15 דקות R delta: 12.7992171382 R1: 10 R2: 12 R3: 91 R4: 15 R5: 10 R6: 27 דקות R delta: 12.7992171382 R1: 10 R2: 12 R3: 91 R4: 27 R5: 10 R6: 15 דקות R delta: 12.7992171382 R1: 10 R2: 12 R3: 100 R4: 27 R5: 10 R6: 15 דקות R delta: 12.7992171382 R1: 10 R2: 15 R3: 10 R4: 18 R5: 18 R6: 12 דקות R delta: 13.2909379968 R1: 10 R2: 15 R3: 10 R4: 22 R5: 12 R6: 10 minR delta: 14.245362837 R1: 10 R2: 15 R3: 10 R4: 39 R5: 18 R6: 27 דקות R delta: 14.5126340326 R1: 10 R2: 15 R3: 10 R4: 56 R5: 12 R6: 15 דקות דלתא R: 15.220571553 R1: 10 R2: 15 R3: 12 R4: 27 R5: 12 R6: 12 דקות R delta: 18.8228671943 R1: 10 R2: 15 R3: 12 R4: 39 R5: 18 R6: 27 דקות R delta: 19.236186493 R1: 10 R2: 15 R3: 15 R4: 47 R5: 22 R6: 33 דקות R delta: 19.5685736556 R1: 10 R2: 15 R3: 22 R4: 56 R5: 22 R6: 27 דקות R delta: 19.7887024012 R1: 10 R2: 15 R3: 27 R4: 220 R5: 12 R6: 10 דקות R delta: 21.2533513149 R1: 10 R2: 15 R3: 220 R4: 27 R5: 12 R6: 10 minR delta: 21.2533513149 R1: 10 R2: 18 R3: 22 R4: 68 R5: 33 R6: 39 דקות R דלתא: 21.58566448 R1: 10 R2: 18 R3: 27 R4: 75 R5: 33 R6: 36 דקות R delta: 22.158443806 R1: 10 R2: 18 R3: 27 R4: 82 R5: 33 R6: 36 דקות R דלתא: 22.158443806 R1: 10 R2: 18 R3: 27 R4: 82 R5: 33 R6: 39 דקות R delta: 22.158443806 R1: 10 R2: 18 R3: 33 R4: 75 R5: 27 R6: 18 דקות R delta: 24.2578084248 R1: 10 R2: 18 R3: 75 R4: 33 R5: 27 R6: 18 דקות R delta: 24.2578084248 R1: 10 R2: 36 R3: 36 R4: 68 R5: 12 R6: 18 דקות R delta: 24.380952380 R1: 10 R2: 36 R3: 36 R4: 75 R5: 12 R6: 18 דקות R delta: 24.380952380 R1: 10 R2: 36 R3: 39 R4: 75 R5: 12 R6: 15 דקות דלתא R: 24.380952380 R1: 10 R2: 36 R3: 68 R4: 36 R5: 12 R6: 18 דקות R delta: 24.380952380 R1: 10 R2: 36 R3: 75 R4: 36 R5: 12 R6: 18 דקות דלתא R: 24.380952380 R1: 10 R2: 36 R3: 75 R4: 39 R5: 12 R6: 15 דקות R delta: 24.380952380 R1: 10 R2: 39 R3: 15 R4: 39 R5: 10 R6: 27 דקות R delta: 24.4674161824 R1: 10 R2: 39 R3: 22 R4: 47 R5: 10 R6: 22 דקות R delta: 24.4674161824 R1: 10 R2: 39 R3: 22 R4: 56 R5: 10 R6: 22 דקות R delta: 24.4674161824 R1: 10 R2: 39 R3: 27 R4: 56 R5: 10 R6: 15 דקות R delta: 24.4674161824 R1: 10 R2: 39 R3: 39 R4: 15 R5: 10 R6: 27 דקות R delta: 24.4674161824 R1: 10 R2: 39 R3: 47 R4: 22 R5: 10 R6: 22 דקות R delta: 24.4674161824 R1: 10 R2: 39 R3: 56 R4: 22 R5: 10 R6: 22 דקות R delta: 24.4674161824 R1: 10 R2: 39 R3: 56 R4: 27 R5: 10 R6: 15 דקות R דלתא: 24.4674161824 R1: 12 R2: 39 R3: 33 R4: 75 R5: 15 R6: 39 דקות R delta: 24.5467795136 R1: 12 R2: 39 R3: 33 R4: 82 R5: 18 R6: 47 דקות R delta: 24.789976640 R1: 12 R2: 39 R3: 47 R4: 100 R5: 18 R6: 33 דקות R delta: 24.789976640 R1: 12 R2: 39 R3: 56 R4: 100 R5: 15 R6: 12 דקות R delta: 25.3564579616 R1: 12 R2: 39 R3: 100 R4: 56 R5: 15 R6: 12 דקות R delta: 25.3564579616 R1: 12 R2: 47 R3: 18 R4: 47 R5: 10 R6: 27 דקות R delta: 27.4996466431 R1: 12 R2: 47 R3: 22 R4: 56 R5: 10 R6: 22 minR delta: 27.4996466431 R1: 12 R2: 47 R3: 27 R4: 56 R5: 10 R6: 18 דקות R delta: 27.4996466431 R1: 12 R2: 47 R3: 47 R4: 18 R5: 10 R6: 27 minR delta: 27.4996466431 R1: 12 R2: 47 R3: 56 R4: 22 R5: 10 R6: 22 דקות Delta: 27.4996466431 R1: 12 R2: 47 R3: 56 R4: 27 R5: 10 R6: 18 דקות R delta: 27.4996466431 R1: 15 R2: 56 R3: 22 R4: 56 R5: 10 R6: 27 דקות R delta: 29.1605253709 R1: 15 R2: 56 R3: 22 R4: 56 R5: 12 R6: 33 דקות R delta: 29.811354701 R1: 15 R2: 56 R3: 33 R4: 68 R5: 12 R6: 22 דקות R delta: 29.811354701 R1: 15 R2: 56 R3: 56 R4: 22 R5: 12 R6: 33 דקות R delta: 29.811354701 R1: 15 R2: 56 R3: 68 R4: 33 R5: 12 R6: 22 דקות R delta: 29.811354701 R1: 18 R2: 68 R3: 27 R4: 68 R5: 12 R6: 33 דקות R delta: 30.7487559507 R1: 18 R2: 68 R3: 33 R4: 68 R5: 12 R6: 27 דקות R delta: 30.8965517241 R1: 18 R2: 68 R3: 68 R4: 33 R5: 12 R6: 27 דקות R delta: 30.8965517241 R1: 18 R2: 75 R3: 27 R4: 68 R5: 12 R6: 36 דקות R delta: 30.9007058823 R1: 18 R2: 75 R3: 47 R4: 91 R5: 12 R6: 10 דקות R delta: 30.9007058823 R1: 18 R2: 75 R3: 68 R4: 27 R5: 12 R6: 36 דקות R delta: 30.9007058823 R1: 18 R2: 75 R3: 91 R4: 47 R5: 12 R6: 10 דקות דלתא R: 30.9007058823 R1: 22 R2: 82 R3: 36 R4: 82 R5: 15 R6: 39 דקות R delta: 33.2525545171 R1: 22 R2: 82 R3: 82 R4: 36 R5: 15 R6: 39 דקות R דלתא: 33.2525545171 R1: 36 R2: 82 R3: 22 R4: 82 R5: 39 R6: 15 דקות R delta: 33.2525545171 R1: 36 R2: 82 R3: 82 R4: 22 R5: 39 R6: 15 דקות R delta: 33.2525545171 R1: 82 R2: 22 R3: 36 R4: 82 R5: 15 R6: 39 דקות R delta: 33.2525545171 R1: 82 R2: 22 R3: 82 R4: 36 R5: 15 R6: 39 דקות R delta: 33.2525545171 R1: 82 R2: 36 R3: 22 R4: 82 R5: 39 R6: 15 דקות R דלתא: 33.2525545171 R1: 82 R2: 36 R3: 82 R4: 22 R5: 39 R6: 15 דקות R delta: 33.2525545171 R1: 36 R2: 82 R3: 82 R4: 22 R5: 39 R6: 15 דקות R delta: 33.2525545171
שלב 2: מכלול 4 הכפתורים שלי
עבור ארבעת הכפתורים שלי השתמשתי בלחצנים אלה וב- PCB מחורר ונגדים כפי שמצוין בתרשים לעיל. האופן שבו אתה מיישם פיזית את ארבעת הכפתורים שלך פתוח לרווחה ותלוי בך ובצרכי הפרויקטים שלך. כל עוד זה חשמלי בתרשים למעלה. וודא שהרכבת הבנייה שלך היא כזו שלא תיצור שום קשר עם החיווט לכפתורים מכיוון שזה יוריד את הקריאות וכתוצאה מכך יתנהגות כפתורים שגויה.
יש לי כפתור קטן נוסף בלוח שבו אני משתמש כמו מקש 'פונקציה'. הוא בסדרה עם נגד של 2 מגההם, שאינו זורק באופן משמעותי את קריאות הקלט האחרות שלי; למרות שאני יכול לזהות אותו רק כאשר הוא נלחץ לבד. אתה יכול להתעלם ממנו או לבדוק את הקוד כדי להבין עוד כיצד אני משתמש בו.
ניתן להשתמש בסקיצת הבדיקה 'Test_12Leds_6Btns' לבדיקת זיהוי לחיצות כפתורים על ידי ה- MCU שלך ומכלול הלחצנים בפועל. ניתן לראות את הפלט שלו באמצעות סולם LED או עם הצג הסדרתי. ניתן בקלות לשנות אותו לפלט באמצעות כל סוג התצוגה שיש לך.
ייתכן שיהיה עליך להתאים את מערך קריאות ההפניה של הקוד שאליו הוא משווה את הקלט, בשל הבדלים פוטנציאליים בנגד המשיכה הפנימי של ה- MCU שלך או בשל סובלנות של הנגדים שבהם אתה משתמש. אתה יכול, אם תרצה, להשתמש בנגדים מדויקים, בתקווה שלא תצטרך לבצע התאמות כיול. אגב, לא השתמשתי במשיכה חיצונית מכיוון שזה יפריע לשימושים אחרים שאני מתכנן באחד הפרויקטים שלי.
אחת מפעולות התוכנה המרכזיות שננקטו, על מנת להבטיח שקביעת הלחצנים (ים) נלחצים אינה מושפעת מרמת מתח האספקה (&/או שונות MCU), היא קנה המידה של הכניסה האנלוגית על פי הקריאה המקסימלית שלו אשר בתורה מושפע ממתח האספקה.
'מנהל התוכנה' המשרת כפתורים אלה הוא 'scanButtons ()' השגרתי. הוא ממתין לערך הקלט האנלוגי להתייצב ואז ממפה את הקריאה לסדרה של הערכים שנקבעו מראש; ומתרגם את זה למצבים המתאימים לאוסף הכפתורים. שגרה זו, והמשתנים הציבוריים שהיא חולקת עם תוכנת היישום, הם כל מה שצריך כדי לעשות שימוש דומה בערכה זו בכפתורים עצמאיים.
הערה! הגרסה הנוכחית של 'scanButtons ()' אינה מנסה לזהות באופן ייחודי את כל שלושת שילובי הכפתורים האפשריים מכיוון שזה לא היה מבחינתי ריאליסטי ויסבך עוד יותר את הקוד ואת דיוק הכיול הנדרש.
שלב 3: משחק משחק
כל מערכון, 'LadderGames4' או 'Head2head' יכול להיות נטען ולהריץ על ידי רוב כל MCU Arduino, אבל LadderGames4 חייב להיות בעל 'SimonSays' או כל אחד משני המשחקים האחרים כדי להתאים את 8K בתים של שטח התוכנית ב אטיני -85. אודיו היא גם בעיה עם ATtiny-85, ראה פרוייקט קודם שהוזכר לעיל. הקוד מוגדר עם אוסף מותנה, וידוע שהוא עובד עם Nano, Uno ו- ATtiny-85.
עם כל אחד מהשרטוטים האלה לאחר האתחול יוצג בפניך התפריט, עם צבע אחד בכל פעם שמאיר את כל האדום… צהוב… ירוק… כחול נוריות, המקביל לארבע אפשרויות המשחק האפשריות. או שאתה לוחץ על Btn1 כאשר אפשרות הרצון מוארת או בכל עת שאתה לוחץ על Btn2-4 למשחקים 2-4. הדרך המיותרת לבחור היא כך שתתאים ליישומים ומשחקים של שני כפתורים וארבעה. אם ישנן מספר גרסאות למשחק, יהיה עליך לבחור מהבהב באדום עבור ver-1, להבהב צהוב עבור ver-2 וכן הלאה.
4 משחקי כפתורים
משחק זיכרון, משחק תיאום עין-יד ושני משחקי אסטרטגיה.
סיימון אומר שזה יישום מחדש של המשחק מהצורה שהייתה לי, בפרויקטים קודמים אלה:
www.instructables.com/id/Fast-Easy-Simon/
www.instructables.com/id/Improved-Simon-Says-Code/
הוא משחק כמו כל משחק אחר של 'סיימון אומר'.
עם זאת, כאן הוספתי את גרסת שני האדם (כאשר אתה בוחר באפשרות 2, מהבהב בצהוב), כאשר כל שחקן, בתורו, מוסיף פתק אור חדש לסדרה. הראשון שלא חוזר נכון על כל מה שהגיע לפני מפסיד במשחק.
חבט בשומה
במשך 30 שניות צצות שומות שונות (אדום, צהוב, גרן, בלו) 1, 2 או 3 בכל פעם. עליך 'לדפוק' אותם על ידי לחיצה על הכפתורים המתאימים Btn1-4. יתקבלו רק לחיצות על כפתורים בודדים, ללא לחיצות מרובות בו זמנית. כמה זמן קבוצת שומות נשארת מתקצרת ככל שהמשחק נמשך. אם אתה מוריד את כל השומות המוצגות, אז תופיע קבוצה חדשה; כך שאתה מהיר יותר ככל שתקבל יותר שומות.
לאחר סיום המשחק התצוגה תשקף את הציון, ותדליק מנורה אחת לכל 10 שומות שנחבטו. מכיוון שהמשחק קולע 10 נקודות לכל חבטה, 5 לידים מוארים ייצגו ציון נקודה סטנדרטי של Whac-a-Mole של 500+. כדי לשחק סיבוב נוסף תצטרך לבחור מחדש את המשחק.
אני משתמש באצבע על כל כפתור לפעולה מהירה וציונים גבוהים. לאתגר נכון יותר יש להשתמש באצבע אחת בלבד על יד אחת, להגיב לשימוש בפטיש אחד.
הציון הטיפוסי שלי באמצעות אצבע אחת הוא בשנות ה -500, באמצעות 4 אצבעות (אחת לכל כפתור) הוא 600+. הציון הגבוה ביותר שלי הוא 700+. השימוש במספר אצבעות מסובך במיוחד בכך שאם תהיה חפיפה בלחיצה על אחת ועוד אחת השנייה לא תתקבל על ידי התוכנה, ותדרוש ממך לשחרר את כל הכפתורים לפני שיתקבל אחר. אם מישהו יראה את כל 12 הנורות, עם ציון של 1200+, אנא יידע אותנו.
ציד ים
יש צוללת בלתי נראית שעוברת במעמקים. המיקום הראשוני והכיוון שלו הם אקראיים. זה עושה מהלך לאורך כל מהלך שאתה עושה. עליך לחזות את מקום הימצאו באמצעות דיווחי סונאר ולהטביע אותו באמצעות מטען עומק. סונאר המתנפנף גלים החוצה (לשני הכיוונים) ממיקומו ההתחלתי כאור עמום ומתבהר (יחד עם פינג) במרחק התת. עם זאת שים לב שהסאב יכול להיות מכל צד שלך והוא נע בכיוון לא ידוע. מטען עומק מתפוצץ עמוק מתחת למקום שבו הוא מושק. אתה שומע פיצוץ עמום אם כלום, או שיש, אחרת אתה שומע את הפיצוץ הגדול של המשנה והבזק עז.
כדי להזיז את הסמן הוביל למקום בו ברצונך להפיל מצוף סונאר או מטען עומק מתבצע באמצעות Btn2 & Btn3 לשמאל וימין. כפתור -1 משמש להפעלת אותם.
בגרסה 1, כל ניסיון הוא דוח שילוב של עומק עומק וסונאר; ואתה יכול להשתמש במספר בלתי מוגבל שלהם.
בגרסה 2, ראש בראש, מתחלפים, כדי לראות מי מצליח להטביע את המשנה. שחקן 1 משתמש ב- Btn1 והשחקן השני משתמש ב- Btn4 כדי להפעיל את מטעני העומק שלהם.
בגרסה 3, מטעני עומק ודוחות סונאר מושקים באופן עצמאי על ידי Btn1 ו- Btn4 בהתאמה. יש לך רק שלושה חיובי עומק לרשותך. אתה יכול לקבל את כל דוחות הסונאר שאתה רוצה. אתה מפסיד אם אתה לא מצליח להביא אותו עם ההאשמות האלה.
בגרסה 4 תת יכול לנוע בקצב של 1-3 רווחים לכל מטח, ואחר כך משחק כמו גרסה 3, אבל אתה מקבל 6 מטעני עומק.
היסטוריה: יצרתי את המשחק 'ציד ים' לראשונה בשנות השבעים. אז מכשיר הקלט והפלט היה טלטיפ. אולם אז הים היה רשת דו ממדית, לעומת ממד אחד כפי שהוא כאן.
הערה: הערתי את מגבלת עומק העומק בקוד, מתוך מחשבה שכבר קשה מספיק לשחק עבור רוב האנשים.
הפוך
משחק שני השחקנים הזה קצת דומה לרברי, בכך שאתה מנסה להפוך את כל התאים לצבע שלך, אבל זה מושג על ידי אחרת.
במשחק זה של שני שחקנים, המטרה של שחקן אחד היא לכבות את כל האורות, והשני להדליק את כולם. שחקן אחד משתמש ב- Btn1 כדי לכבות קבוצה של אורות השחקן השני או לוותר על אחת מהאורות הכבויים שלו (להדליק אותה). השחקן השני משתמש ב- Btn4 כדי להפוך קבוצה של "כיבוי אורות" למצב מופעל או אחד מהגב שלו כבוי.
הלוח מתחיל עם סט אקראי של נוריות. כאשר הגיע תורו של השחקן הראשון יש עמעום מהיר או תאורה על הלייד ב'סמן ', נקודת העניין, שאפשר לפנות. במהלך תורו של שחקן מספר 2 יש הבזק ארוך של לד כמחוון סמן. אם השחקן הלא נכון לוחץ על הכפתור שלו, מחוץ לתורו, יש צפצוף קצר מאוד. הסמן מועבר שמאלה על ידי Btn2 וימינה על ידי Btn3. השחקן המפסיד מתחיל את המשחק הבא.
האסטרטגיה לגבי מה להעיף יכולה להיות משמעותית.
שלב 4: תחרויות ראש בראש
משחקי שני כפתורים / שני שחקנים
בסט הראשון של 4 משחקי כפתורים רק 'Whack-a-Mole' מסתמך באמת על עצמאות מלאה של עיבוד הכפתורים. יישמתי גם ארבעה משחקי ראש בראש, כולם תלויים בזיהוי כפתורים עצמאי. המשחקים האלה הם: Quick Draw, Tug a War, עוף וידיים חמות (סטירות).
צייר מהיר (בדיקת תגובה)
התחרות מתחילה עם 'מוכן'/אדום, 'סט'/צהוב ו'צייר '/ירוק; להיות אקראי למדי כאשר הוא נותן לך את האור הירוק. הראשון ללחוץ על הכפתור שלהם מנצח. להכות מוקדם מדי ואתה מבושל מבאזז.
שחקן 1 משתמש ב- Btn1 (משמאל) ושחקן 2 משתמש ב- Btn4 (מימין).
משיכת חבל
מתחיל עם 'מוכן', 'הגדר' … 'GO!'. באמצע מופיע אובייקט, 'קשת' על חבל. ואז השחקנים לוחצים על הכפתורים שלהם מהר ככל האפשר. החרטום ינוע לכיוון השחקן בעל הכי הרבה להיטים. ברגע שהקשת מגיעה לקצה אחד זה המנצח.
עוף
תחרות זו מתחילה באופן דומה. אחרי הצליל וההבזק הירוק של 'לך!' השחקנים לוחצים לחיצה ארוכה על הכפתורים שלהם, פיסות אור (מרכבותיהם) מתחילות לנוע מהן לעבר האחר. המנצח הוא זה שמשחרר את הכפתור שלו (קופץ מהמרכבה) אחרון, רגע לפני ששתי הצליפות היו מתנגשות זו בזו. אם מישהו משחרר מאוחר מדי או בכלל לא, הוא התרסק והפסיד. אם שניהם קופצים (משחררים) מאוחר מדי אף אחד לא מנצח.
בהתחלה צמד תאיים מנוגדות סוחפות את המסך, בשלב זה אם תכה ב- Fnc-Btn2 מהירות המשחק תעלה. אפשר לחזור על זה כמה פעמים.
ידיים חמות
גרסה דיגיטלית של משחק סטירת הידיים (aka Red-Hands or Slapsies). כדי להתחיל את שני השחקנים לחץ על הכפתורים יחד, צד אחד משחרר ואז מנסה ללחוץ על הכפתור שלו פעמיים לפני שהצד השני יכול לשחרר את הכפתור שלו. לאחר מכן הצד השני מנסה לעשות באופן דומה. השחקן שתורו מסומן בתחילת הסיבוב על ידי הדלקת האורות בצד שלו. גיליתי שלחיצת לחיצה אחת בלבד היא מהירה וקלה מדי, אז עשיתי שניים נדרשים, מה שדורש יותר פעולה וזמן, כמו שצריך גם להעיף את היד מעל האחרים וגם להטיח. TBD: בגרסה שנייה, היא בחינם לכולם, בכל עת כל שחקן יכול לנסות להפיק את הטוב מהאחר.
הודעה ! אני ממליץ לך להדפיס את כללי הפעולה של המשחקים לעיל ולקרוא אותם שוב לפני שאתה משחק שלא שיחקת לאחרונה. אחרת, אתה יכול לסכל את עצמך; לחשוב שהמשחק לא פועל כראוי כשהוא אכן כך, אבל לך ולמשחק יש דרכים וציפיות שונות. אני, עצמי, נטרפתי לזה יותר מפעם אחת.
עם שמונת המשחקים כאן והארבעה בפרויקט הקודם שלי, קו יחיד, LED-Display-Games, זה הופך את התוכנה לזמינה למשחק 12 משחקים עם שילוב חומרת הסולם של ארבעה כפתורים + לד.
יש לי לפחות ארבע פעילויות בילוי נוספות לחומרה (תצוגת כפתורים) זו לפני סוף השנה.
שלב 5: בקרי שחקנים אופציונאליים
למשחקים שדרשו רק שני כפתורים, יכולתי כמובן להשתמש במחשב הלוח בעל 4 הכפתורים עם אותם משחקים; אולם במשחקים אלה נוטים להיות די פיזיים. לכן, אני משתמש במכלולי כפתורים נפרדים מסוג בוכנה, העשויים מחתיכת צינורות פלסטיק המכוסים באחיזת ידית אופניים ולחצן גדול.
חלקי כפתורים מסוג בוכנה:
- צינור קו טפטוף בגודל 1/2 אינץ ', בולטים ממטרות או PVC (חנות חומרה)
- אחיזת ידית אופניים (וולמארט)
- כפתורי לחיצה גדולים (eBay)
- 2 נגדים
כדי לשמור על תאימות כפתור אחד כולל נגדו 75 אוהם בסדרה והשני בעל 36-39 אוהם בסדרה; כך שהתוכנה תראה בהם Btn1 ו- Btn4 בהתאמה.
אתה יכול להשתמש בצינורות למשל מטאטא או ידית מגב שהושלך.
אפשר אפילו ליצור מתאם שאפשר לחבר אליו מקלות שמחה ישנים של קונסולת המשחקים; יש לחבר את כפתורי האש של אחד כ- Btn1 ו- Btn4 לשני, תוך שיתוף Btn1-4 בכפתורי הניווט של מקלות השמחה.
אפריל 2018: עכשיו העדיפו להשתמש במצמדי דחיסה בגודל 5/8 אינץ 'כגוף לכפתורי סגנון הבוכנה החיצוניים. הכפתורים הגדולים (עם מעט סרט על החוטים הוסיפו) משתלבים בהם בצורה מושלמת והם מתאימים ביד מאוד יפה. כמו שלי ילדים אוהבים להשתמש בזוג כזה, הוספתי כמה סטים של סיכות כותרת בכדי לחבר בקלות כפתור חיצוני אחד ביד על פני אנשי הקשר Bnt1 ואחד עבור Btn4.
שלב 6: עדכונים
הכנתי מארז קונסולות מודפס בתלת מימד כדי להכיל את תצוגת הסולם LED והכפתורים.
שילבתי את 12 המשחקים שיצרתי עד כה, לתצוגת 12 LED זו, למערכון אחד 'Menu_12Games'. תוכנה זו דורשת את החומרה של הפרויקט המיושם עם 32MB פלאש MCU (למשל ננו או אונו) ו -5 כפתורים, 4 ראשי + FncKey.
תפריט הבחירה הוא כעת דו -שכבתי; תחילה אתה בוחר 1 מתוך 4 קבוצות משחקים ואז משחק 1-4 בתוך אותה קבוצה, … כמפורט להלן. בזמן ההמתנה לתצוגות הנבחרות לסרוק R-Y-G-B מעת לעת, אתה לוחץ על Btn1-4 כבחירה שלך בכל עת, אין זה משנה מה מוצג כאשר אתה לוחץ על הבחירה שלך. במהלך בחירת 'קבוצה' כל הלדים הם לפחות חלקית במהלך סריקת RYGB. כדי לצאת מכל משחק או לגבות מבחירת 'משחק' ל'קבוצה 'לחץ על FncKey-Btn1.
אני עדיין לא מקודד את הגמר 4. יש לי 3 רשומים (כולל 'LeMans'). לא הבנתי מה יהיה המשחק האחרון. שלח לי מסר עם כל רעיון.
עדכון 25 בינואר 17: לאלו מכם שנהנים מגישה למדפסת תלת מימד, יתכן ותהיה מעוניין במקרה של קונסולת המשחקים שהכנתי עבור המכשיר שלי: https://www.instructables.com/id/3D-Printed-Case- עבור Inline-LED-Display-Console ו-/
עדכון 17 בפברואר 17: הוספתי את 4 המשחקים האחרונים, הזמינים כעת בתור "Menu_16Games.ino" תחת "שלב 7: עדכון, עוד משחקים" של ה- Instructable: Single-Line-LED-Display-Games (Menu_12Games.ino הוא עכשיו הושבת)
משחק קבוצתי: 1– אדום 2- צהוב 3- ירוק 4- כחול
1 אדום PushIt PingPong ShootEmUp JumpMan 2 Yel QuickDraw Tug_a_War Chicken Hot_Hands 3 Grn Le_Mans Spray PIG BiFunc 4 Blu SimonSays Whack_Mole Sea_Hunt Flip_d
מוּמלָץ:
שעון POV Led אנלוגי בסגנון אנלוגי עם Arduino Nano: 4 שלבים
שעון POV LED בסגנון אנלוגי עם Arduino Nano: זה נראה נחמד בעיצוב אנלוגי בסגנון שעון POV
PCF8591 (מרחיב קלט/פלט אנלוגי i2c) שימוש קל ומהיר: 9 שלבים
PCF8591 (מרחיב קלט/פלט אנלוגי i2c) שימוש קל ומהיר: ספרייה לשימוש i2c pcf8591 IC עם arduino ו- esp8266. IC זה יכול לשלוט (עד 4) קלט אנלוגי ו/או פלט אנלוגי אחד כמו מדידת מתח, קריאת ערך תרמיסטור או דהיית LED. יכול לקרוא ערך אנלוגי ולכתוב ערך אנלוגי עם 2 חוטים בלבד (מושלם
השתמש בקלט אנלוגי אחד עבור 6 לחצנים עבור Arduino: 6 שלבים
השתמש בכניסת אנלוגית אחת ל -6 לחצנים עבור Arduino: לעתים קרובות תהיתי כיצד אוכל להשיג יותר כניסות דיגיטליות עבור Arduino שלי. לאחרונה עלה בדעתי שאני אמור להיות מסוגל להשתמש באחת הכניסות האנלוגיות להבאת מספר כניסות דיגיטליות. עשיתי חיפוש מהיר ומצאתי היכן אנשים נמצאים
Raspberry Pi GPIO מעגלים: שימוש בחיישן אנלוגי LDR ללא ADC (ממיר אנלוגי לדיגיטלי): 4 שלבים
Raspberry Pi GPIO מעגלים: שימוש בחיישן אנלוגי LDR ללא ADC (ממיר אנלוגי לדיגיטלי): במדריך הקודם שלנו, הראנו לך כיצד תוכל לקשר את סיכות ה- GPIO של ה- Raspberry Pi שלך ללדים ולמתגים וכיצד סיכות GPIO יכולות להיות גבוהות או נמוך. אבל מה אם אתה רוצה להשתמש ב- Raspberry Pi שלך עם חיישן אנלוגי? אם נרצה להשתמש ב
קלט אנלוגי של IoT - תחילת העבודה עם IoT: 8 שלבים
קלט אנלוגי של IoT - תחילת העבודה עם IoT: הבנת כניסות אנלוגיות היא חלק מכריע בהבנת האופן שבו דברים סביבנו עובדים, רובם אם לא כל החיישנים הם חיישנים אנלוגיים (לפעמים חיישנים אלה מומרים לדיגיטליים). שלא כמו כניסות דיגיטליות שיכולות להיות מופעלות או כבויות בלבד, קלט אנלוגי