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

בדוק Arduino חשוף, עם תוכנת משחק באמצעות קלט קיבולי & LED: 4 שלבים
בדוק Arduino חשוף, עם תוכנת משחק באמצעות קלט קיבולי & LED: 4 שלבים

וִידֵאוֹ: בדוק Arduino חשוף, עם תוכנת משחק באמצעות קלט קיבולי & LED: 4 שלבים

וִידֵאוֹ: בדוק Arduino חשוף, עם תוכנת משחק באמצעות קלט קיבולי & LED: 4 שלבים
וִידֵאוֹ: ELF/EMBARC Bronchiectasis conference 2023 with subtitles 2024, יולי
Anonim
בדוק Arduino חשוף, עם תוכנת משחק באמצעות קלט קיבולי & LED
בדוק Arduino חשוף, עם תוכנת משחק באמצעות קלט קיבולי & LED
בדוק Arduino חשוף, עם תוכנת משחק באמצעות קלט קיבולי & LED
בדוק Arduino חשוף, עם תוכנת משחק באמצעות קלט קיבולי & LED

משחק אינטראקטיבי "Push-It" באמצעות לוח Arduino חשוף, ללא צורך בחלקים חיצוניים או בחיווט (משתמש בקלט 'מגע' קיבולי). המוצג למעלה, מדגים אותו פועל על שני לוחות שונים.

ל- Push-It יש שתי מטרות.

  1. כדי להדגים/לוודא במהירות כי לוח ה- Arduino שלך פועל וכי אתה מותקן כראוי להוריד אליו שרטוט קוד חדש. תוכל לראות שהוא מבצע קלט ופלט (רגיש את רמת הקלט הדיגיטלי, פלט לנורית הלוח); לאחסן ולשחזר ערך מהזיכרון הלא נדיף של EEPROM. הכל ללא חיבור חוטים או התקנים.
  2. ספק משחק משעשע ומאתגר באינטראקציה עם לוח Arduino.

הוראה זו מניחה שכבר התקנת Arduino IDE ולפחות מכירה את השימוש בה באופן מינימלי. אם לא אני מפנה אותך לקישורים הבאים:

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

הוספת תמיכה ב- Digispark (עם מטען אתחול) ל- Arduino 1.6.x IDE הקיים

Push-It יעבוד עם רוב כל לוח Arduino, למשל לוח Nano, Uno או DigiSpark Attiny85. בדקתי אותו עם Nano 3.1 ו- DigiSpark. בטקסט כשאני מתייחס לשמות/מספרים של סיכות הם ישמשו אותם על לוח ה- Nano (בניגוד ל- DigiSpark).

שלב 1: יש את הדברים שאתה צריך

שזה פשוט כל ארדואינו או לוח דומה.

אם עדיין אין לך כזה אני ממליץ להתחיל עם DigiSpark Pro (~ 12 $), או Nano 3.0 מאיביי תמורת 3 $ ~ (אבל יהיה לך שבוע או שבועיים נוספים לחכות שיגיע מסין; ותצטרך להתקין מנהל התקן USB CH340). DigiSpark ~ 10 $ (לא פרו) מתאים מאוד למשחק הווידאו היחיד הזה (יחידה מופשטת זו, בעלת 6 I/Os בלבד, קצת יותר מסובכת להעלות אליה)

קישורים לחומרה המשמשת כאן:

Nano V3.0 Atmega328P ב- eBay

לוח פיתוח USB של Digispark

שלב 2: אחזור והורדת הקוד

הבא והורד את הקוד
הבא והורד את הקוד

העתק את הקוד למטה לקובץ סקיצה של ארדואינו (למשל …/Push_It/Push_It.ino) ניסיתי להגיב עליו די טוב. אני מקווה שתמצא את הקוד קל להבנה. ההיגיון לקבוע מתי להגדיל, להקטין ומתי לא מסובך במקצת, אבל החלק הזה הוא גם קוד מיוחד ואינו שימושי כללי. לפרטים נוספים על הגדרת 'סקיצה' (פרוייקט קוד) חדש לשימוש עם ה- IDE של Arduino ראו:

יצירת סקיצה חדשה של ארדואינו

הורד את הסקיצה 'Push_It' למיקרו -הבקר שלנו בהתאם להוראות Arduino IDE ללוח שלך.

שלב 3: משחק

משחק
משחק

מטרת המשחק היא לגרום לנורית (על הלוח) להבהב כמה שיותר זמן במערך הבזקים אשר לאחר מכן חוזר על עצמו

משחק המשחק:

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

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

אבל אם אתה 'לוחץ' לפני או אחרי ההבזק הראשון, מספר ההבזקים בקבוצה יופחת.

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

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

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

שים לב שלוח DigiSpark המקורי יש עיכוב של 10 שניות לאחר ההפעלה לפניו הוא יתחיל לבצע את קוד 'Push-It' ולשחק את המשחק. הוא משתמש בזמן הזה כדי לנסות לדבר דרך סיכות ה- USB על מנת לקבל עדכון קוד הורדה חדש אפשרי.

אם לוח Arduino שבו אתה משתמש מכיל נורית USB TX, נורית LED זו תזכה להבזק זעיר מהיר כאשר 'לחץ על הכפתור'. יהיה הבזק משמעותי יותר של נורית LED זו כאשר ערך הספירה ב- EEPROM יתעדכן בערך חדש. משוב זה יכול לסייע לך מאוד לדעת מתי או להבטיח שהפעלת למעשה אירוע 'כפתור שנלחץ'. ייתכן שיהיה עליך לוודא שאינך נוגע בקרקע מעגל (כמו המתכת סביב מחבר מיקרו USB) כך שהדמות שלך אכן תגרום לרעש אל סיכת הכניסה הפתוחה. יתווספו אתגרים וקצת בלתי צפויים בשל העובדה שסיכת הקלט צפה (לא נמשכת למעלה או למטה על ידי עומס מוליך/התנגדות) ורעש האות המשתנה העובר באצבע שלך.

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

גיליתי שתגובת לוח DigiSpark ניתנת לחיזוי די עקבי ללחיצה קטנה של האצבעות לפינת הלוח בה נמצאות D3-D5.

כשאני מנגן 'Push-It' אני אוהב לעשות זאת כשהלוח מחובר לחבילת סוללה ניידת USB 5v (ראו תמונות). בדרך כלל ניתן למצוא אלה בזול בפחים לצד אלה של מתאם אוטומטי USB AC ומתאם 12v; ברוב מחלקות האלקטרוניקה של כלבו.

שלב 4: ניסויים אופציונאליים עם רכיבים חיצוניים

ניסויים אופציונאליים עם רכיבים חיצוניים
ניסויים אופציונאליים עם רכיבים חיצוניים

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

עם רמקול, צד אחד לקרקע, אם תיגע במוביל השני ל- D4 תשמע צליל של גל מרובע של 250 הרץ. ב- D3 יש גל מרובע של 500 הרץ. אם תחבר את הרמקול בין D3 ל- D4 תשמע מכלול של שני האותות.

חיבור לד במקום רמקול כאמור לעיל מעניין מאוד. אין צורך לדאוג לגבי מתח, רמות זרם, עמידות או אפילו קוטביות לצורך העניין (במקרה גרוע יותר הוא לא נדלק, פשוט הפוך אותו). נסה קודם כל כשהמוביל השלילי (קתודה) מחובר לאדמה והשני ל- D3 או D4. הנורית תהיה "חצי" מוארת, בשל הגלים המרובעים. בנוסף, אין צורך בהתנגדות מכיוון שהפלט של יחידות המיקרו -בקר מוגבל כעת. ערכתי מדידות זרם וכתוצאה מכך 15ma ו- 20ma עבור Attiny85 ו- Atmega328 MCU בהתאמה. רמות אלה הן כמחצית מהערך המוגבל הנוכחי לחלקים אלה בשל אופי מחזור הפעולה של 50% של אותות הגל המרובע המניע. קריאות המונה הן למעשה ממוצע של הזרם דרך המעגל הנבדק.

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

מוּמלָץ: