Arduino פופולרי מאוד לבניית פרויקטים ומשחקי תחביבים, והשתמשנו בעבר ב- Arduino לבניית משחק נחש, משחק פינג פונג, משחק מירוצי חלל וכו '. היום אנו בונים משחק פופולרי אחד יותר באמצעות משחק חוטי Arduino- באז או משחק יד יציב.
עבור פרויקט זה נשתמש ב- Arduino Uno, Buzzer ושני חוטי אלומיניום. LCD 16x2 מקושר גם להצגת מצב המשחק. שני הקצוות של חוט המבוך יחוברו לסיכה הדיגיטלית 2 & 3 של Arduino, וחוט הידית מחובר לסיכה הקרקעית של Arduino. הסיכות הדיגיטליות מוגדרות כסיכות INPUT_PULLUP. לכן כשחוט הידית נוגע בחוט המבוך, הוא משנה את מצב הסיכות הדיגיטליות לנמוך, והמזמזם משמיע צליל.
בקצה חוט המבוך מחוברת דיודה, כך שכשעוברים לאותה דיודה ונוגעים בחוט המבוך בעזרת חוט ידית עגול, רק סיכה אחת (סיכה 3) תישאר נמוכה. במצב זה, טקסט ברכה (כל הכבוד) יוצג על גבי LCD.
רכיבים נדרשים
- ארדואינו אונו
- חוט אלומיניום
- LCD בגודל 16x2
- I 2 C מודול
- קרש לחם
- זַמזָם
- דיודה
תרשים מעגל
תרשים המעגל למשחק החוטים של Arduino Buzz מופיע לעיל. סיכות SCL ו- SDA של מודול I2C מחוברות לסיכות A5 ו- A4 של Arduino ואילו V CC וסיכה GND של מודול I2C מחוברים לסיכה 5V ו- GND של Arduino. המסילה החיובית של הבאזר מחוברת לסיכה דיגיטלית 4 של ארדואינו והמעקה השלילי מחובר ל- GND. גזור חוט אלומיניום וכופף אותו בצורה של זיג-זג. הלחמי דיודה בקצה האחד של החוט. ואז חתוך חוט נוסף כדי ליצור ידית וכופף קצה אחד לולאה.
ניתן לממשק את ה- 16x2 LCD גם עם Arduino מבלי להשתמש במודול I2C.
חבר את סיכות D2 & D3 של ארדואינו לשני קצות חוט זיג-זג וחבר את חוט הידית לסיכה GND של ארדואינו.
הסבר קוד
הקוד המלא למשחק חוטי באז זה של ארדואינו ניתן בסוף המסמך.
התחל את הקוד שלך על ידי הכללת קובץ הספרייה עבור מודול ה- LCD. ספריית LiquidCrystal_I2C.h משמשת לתקשורת I2C בין מודולי Arduino ו- LCD.
#לִכלוֹל
לאחר מכן, הגדירו את סיכות הארדואינו לבאזר, נקודת ההתחלה של החוט ונקודת הקצה של החוט.
const int startPin = 2; const int endPin = 3; זמזם קונסט אינט = 4;
ואז להגדיר שני משתנים התחלה & end_. משתנים אלה ישמשו כדי לשמור את קריאות החוט.
התחלה int, סוף_;
עכשיו הגדירו את סיכת הזמזם כפלט וסיכות חוט כ- INPUT_PULLUP . ל- Arduino נגדי משיכה פנימיים עם ערך של כ -20k אוהם. נגדים אלה ניתנים לחיבור פנימי באמצעות INPUT_PULLUP . הגדרת INPUT_PULLUP זהה מבחינה פונקציונאלית לחיבור נגד ~ 20k אוהם בין הסיכה ל- + 5V.
pinMode (זמזם, OUTPUT); pinMode (startPin, INPUT_PULLUP); pinMode (startPin, INPUT_PULLUP);
בתוך לולאת הריק, קרא את מצב סיכות החוט.
התחל = digitalRead (startPin); end_ = digitalRead (endPin);
עכשיו השווה את הקריאות של סיכות חוט. אם שני הסיכות נמוכות זה אומר, נגעת בחוט כך שהמזמז ישמיע קול, ואם סיכת ההתחלה של החוט גבוהה וסיכת הקצה נמוכה זה אומר שהגעת לנקודת הקצה.
אם (התחל == LOW && סוף _ == LOW) {digitalWrite (זמזם, HIGH); עיכוב (1000); digitalWrite (זמזם, LOW); lcd.setCursor (0,0); lcd.print ("נסה שוב"); Serial.print ("נסה שוב"); } אחר אם (התחל == HIGH && סוף _ == LOW) {lcd.setCursor (0,0); lcd.print ("בוצע היטב"); Serial.print ("ובכן"); }
בדיקת משחק החוט באז
לאחר חיבור החומרה והעלאת הקוד הנתון, תוכלו להתחיל לשחק במשחק. אז החזיקו את החוט עם עיגול ביד ונסו להביא חוט עם עיגול עד לדיודה מולחמת בחוט זיג-זג מבלי לתת לחוט העגול לגעת בשום מקום. אם אתה נוגע בחוטים, אז הבאזר ישמיע צליל ו- LCD יציג " נסה שוב ". ואם תסיים את המשחק בלי לגעת בחוט, אז הוא יראה " כל הכבוד ".
כך תוכלו להכין משחק חוט באז עם ארדואינו. להלן מופיע סרטון עבודה וקוד מלא.