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

משחק תגובה מהיר: גרסת מרחק: 5 שלבים (עם תמונות)
משחק תגובה מהיר: גרסת מרחק: 5 שלבים (עם תמונות)

וִידֵאוֹ: משחק תגובה מהיר: גרסת מרחק: 5 שלבים (עם תמונות)

וִידֵאוֹ: משחק תגובה מהיר: גרסת מרחק: 5 שלבים (עם תמונות)
וִידֵאוֹ: חושף לכם סוד ענק!!🍦😌 2024, דֵצֶמבֶּר
Anonim
משחק תגובה מהיר: גרסת מרחק
משחק תגובה מהיר: גרסת מרחק

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

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

השימוש ב- https://abra-electronics.com המחיר ללא חוטים וארדואינו עומד על $ 32.12 CAD.

שלב 1: שלב 1: חיישן מרחק

שלב 1: חיישן מרחק
שלב 1: חיישן מרחק

השלב הראשון הוא להתקין את חיישן המרחק הקולי על לוח הלחם ולחבר אותו ל- Arduino. המיקום המדויק של החיישן לא ממש משנה, אך באופן אידיאלי הוא קרוב לקצה כך שיהיה מקום לרכיבים האחרים, כפי שמוצג בתמונה למעלה. על החיישן יש ארבעה סיכות; GND, VCC, TRIG ו- ECHO. יש לחבר את GND ו- VCC לקרקע ולמסילות החשמל בהתאמה, ולחבר את שני הפינים האחרים לשני סיכות בארדואינו. שני הסיכות בהן השתמשתי היו 12 עבור ECHO ו- 11 עבור TRIG. השתמש בשני חוטים אחרים כדי להפעיל את מסילת הכוח ולארז את מסילת הקרקע על ידי חיבור מסילת הכוח לסיכה 5V ולמסילת הקרקע לסיכת GND.

שלב 2: שלב 2: מנוע סרוו

שלב 2: מנוע סרוו
שלב 2: מנוע סרוו

השלב הבא הוא התקנת מנוע סרוו. בפרויקט זה, מנוע הסרוו מתפקד כטיימר. זה יתחיל במעלה אחת, ובמשך הזמן בו המשתמש צריך להרחיק את ידיו, יסתובב ל -180 מעלות. השתמשתי בשתי שניות כאשר המשתמש מגלה כמה רחוק עליהם להרחיק את ידיו, כך שהסרוו מסתובב 179 מעלות לאורך תקופה של 2 שניות, מסתובב במרווחים קצרים. למנוע הסרוו יש שלושה חוטים; בדרך כלל צהוב, אדום וחום. האדום נכנס למסילת הכוח שכבר מחוברת ל- 5V, והחום נכנס למעקה הקרקע שכבר מחובר ל- GND. החוט הסופי מתחבר לסיכת ארדואינו. בחרתי בסיכה מספר 9 לזה. לאחר מכן, אתה צריך קבל המחבר את אותה מסילה שאליה מחוברים חוטי הכוח והמנוע של מנוע הסרוו, כפי שניתן לראות בתמונה למעלה.

שלב 3: שלב 3: LED RGB

שלב 3: LED RGB
שלב 3: LED RGB

תפקידו של ה- LED בזה הוא לשמש כקנה מידה לציון. כאשר ציון השחקן הוא בסביבות 0, הנורית תהיה לבנה, ותהפוך לאדומה יותר אם ציון השחקן יורד וירוק אם ציון השחקן יעלה. לד הזה ארבע רגליים; רגל באור אדום, רגל כחולה, רגל בצבע ירוק וקתודה משותפת המשותפת בין שלוש הרגליים האחרות. הקתודה המשותפת, הרגל הארוכה ביותר, מחוברת למעקה החשמל כך שהיא מקבלת 5 וולט. צרף נגדים של 330 אוהם לשלוש הרגליים הצבעוניות האחרות, והצמד את הקצוות האחרים של נגדים אלה לפינים דיגיטליים של PWM בארדואינו. אלה שבהם השתמשתי היו סיכות דיגיטליות 3, 5 ו -6 לרגליים האדומות, הירוקות והכחולות בהתאמה.

שלב 4: שלב 4: LCD

שלב 4: LCD
שלב 4: LCD

המרכיב הסופי הוא ה- LCD, המייצג תצוגת קריסטל נוזלי. המטרה של זה היא לספר לשחקן את הציון הנוכחי שלו כמו גם את המרחק שהם צריכים כדי להרחיק את ידיהם מהחיישן. יש כאן ארבעה סיכות; GND, VCC, SDA ו- SCL. GND ו- VCC יחוברו לקרקע ולמסילות החשמל של לוח הלחם בהתאמה. יש לחבר את סיכת ה- SDA אל הסיכה האנלוגית A4, ולחבר את סיכת ה- SCL לסיכה האנלוגית A5. שלא כמו שאר הרכיבים, עליך לחבר את סיכות ה- SDA וה- SCL ל- A4 ו- A5.

שלב 5: שלב 5: הקוד

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

#לִכלוֹל

#לִכלוֹל

#לִכלוֹל

סרוו myServo;

int const trigPin = 11;

int const echoPin = 12;

int redPin = 3;

int greenPin = 5;

int bluePin = 6;

int score = 0;

int tim = 500;

int הנוכחי = אקראי (8, 16); // ערך אקראי שבו המשתמש צריך להרחיק את ידו מהחיישן

LiquidCrystal_I2C lcd (0x27, 16, 2); // הגדרת LCD

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

הגדרת חלל () {myServo.attach (9); Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode pinMode (redPin, OUTPUT); pinMode (greenPin, OUTPUT); pinMode (bluePin, OUTPUT); lcd.init (); lcd.backlight (); lcd.begin (16, 2); lcd.clear (); // הגדרת LCD}

כעת עלינו להגדיר את קוד ה- RGB LED באמצעות פונקציה ו- PWM:

void setColor (int אדום, int ירוק, int כחול) {

אדום = 255 - אדום;

ירוק = 255 - ירוק;

כחול = 255 - כחול;

analogWrite (redPin, אדום);

analogWrite (greenPin, ירוק);

analogWrite (bluePin, כחול);

}

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

מכיוון שהקוד בלולאת הריק () ארוך מאוד, אני הולך להדביק קישור למסמך בעל הקוד הזה:

docs.google.com/document/d/1DufS0wuX0N6gpv…

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

מיקרו שניות ארוכותToInches (מיקרו שניות ארוכות) {

החזר מיקרו שניות / 74 /2;

}

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

תודה שקראתם!

מוּמלָץ: