تحظى Arduino بشعبية كبيرة في بناء مشاريع الهوايات والألعاب ، وقد استخدمنا سابقًا Arduino لبناء لعبة Snake ، ولعبة Ping pong ، ولعبة سباق الفضاء ، وما إلى ذلك. اليوم نقوم ببناء لعبة أكثر شعبية باستخدام Arduino- Buzz wire game أو Steady hand game.
بالنسبة لهذا المشروع ، سوف نستخدم Arduino Uno و Buzzer وسلكين من الألومنيوم. يتم أيضًا توصيل شاشة LCD مقاس 16 × 2 لعرض حالة اللعبة. سيتم توصيل طرفي سلك المتاهة بالدبوس الرقمي 2 و 3 من Arduino ، وسلك المقبض متصل بالدبوس الأرضي في Arduino. يتم تعريف الدبابيس الرقمية على أنها دبابيس INPUT_PULLUP. لذلك عندما يلمس سلك المقبض سلك المتاهة ، فإنه يغير حالة المسامير الرقمية إلى منخفضة ، ويصدر الجرس صوتًا.
يتم توصيل الصمام الثنائي في نهاية سلك المتاهة ، لذلك عندما تتخطى ذلك الصمام الثنائي وتلمس سلك المتاهة بسلك مقبض دائري ، سينخفض دبوس واحد فقط (دبوس 3). في هذه الحالة ، سيتم عرض نص تهنئة (أحسنت) على شاشة LCD.
المكونات مطلوبة
- اردوينو اونو
- أسلاك الألمنيوم
- 16x2 LCD
- أنا 2 ج الوحدة النمطية
- اللوح
- صفارة
- الصمام الثنائي
مخطط الرسم البياني
تم توضيح مخطط الدائرة الخاصة بلعبة Arduino Buzz Wire Game أعلاه. يتم توصيل دبابيس SCL و SDA لوحدة I2C بدبابيس A5 و A4 من Arduino بينما يتم توصيل دبوس V CC و GND لوحدة I2C بمنفذ 5V و GND من Arduino. السكة الموجبة لـ Buzzer متصلة بالدبوس الرقمي 4 من Arduino والسكة السالبة متصلة بـ GND. اقطع سلكًا من الألومنيوم وثنيه في شكل متعرج. لحام الصمام الثنائي في أحد طرفي السلك. ثم قطع سلكًا آخر لعمل مقبض وثني أحد طرفيه في حلقة.
يمكن أيضًا توصيل شاشة LCD مقاس 16 × 2 مع Arduino دون استخدام وحدة I2C.
قم بتوصيل دبابيس D2 و D3 من Arduino بكلا طرفي سلك Zig-Zag وقم بتوصيل سلك المقبض بدبوس GND في Arduino.
شرح الكود
يتم تقديم الكود الكامل للعبة Arduino Buzz Wire في نهاية المستند.
ابدأ الكود الخاص بك عن طريق تضمين ملف المكتبة لوحدة LCD. تُستخدم مكتبة LiquidCrystal_I2C.h في اتصالات I2C بين وحدات Arduino و LCD.
#تضمن
بعد ذلك ، حدد دبابيس Arduino للجرس ونقطة بداية السلك ونقطة نهاية السلك.
const int startPin = 2 ؛ const int endPin = 3 ؛ جرس كثافة العمليات = 4 ؛
ثم تحديد اثنين متغير بداية و end_. سيتم استخدام هذه المتغيرات لحفظ قراءات الأسلاك.
بداية int ، end_ ؛
الآن حدد دبوس الجرس كإخراج ودبابيس الأسلاك كـ INPUT_PULLUP . يحتوي Arduino على مقاومات سحب داخلية بقيمة حوالي 20 كيلو أوم. يمكن توصيل هذه المقاومات داخليًا باستخدام INPUT_PULLUP . إن تعريف INPUT_PULLUP هو وظيفيًا نفس توصيل المقاوم ~ 20 كيلو أوم بين الدبوس و + 5 فولت.
pinMode (الجرس ، الإخراج) ؛ pinMode (startPin ، INPUT_PULLUP) ؛ pinMode (startPin ، INPUT_PULLUP) ؛
داخل الحلقة الفارغة ، اقرأ حالة دبابيس الأسلاك.
start = digitalRead (startPin) ؛ end_ = digitalRead (endPin) ؛
قارن الآن قراءات دبابيس الأسلاك. إذا كان كلا الدبابيس منخفضين ، فهذا يعني أنك لمست السلك بحيث يصدر الجرس صوتًا ، وإذا كان دبوس بداية السلك مرتفعًا وكان طرف النهاية منخفضًا ، فهذا يعني أنك وصلت إلى نقطة النهاية.
if (start == LOW && end _ == LOW) {digitalWrite (buzzer، HIGH)؛ تأخير (1000) ؛ الكتابة الرقمية (الجرس ، منخفضة) ؛ lcd.setCursor (0،0) ؛ lcd.print ("حاول مرة أخرى") ؛ Serial.print ("حاول مرة أخرى") ؛ } else if (start == HIGH && end _ == LOW) {lcd.setCursor (0،0)؛ lcd.print ("أحسنت") ؛ Serial.print ("أحسنت") ؛ }
اختبار لعبة Buzz Wire
بعد توصيل الجهاز وتحميل الكود المحدد ، يمكنك البدء في لعب اللعبة. لذا ، أمسك السلك بدائرة في يدك وحاول الحصول على سلك مع دائرة على طول الطريق حتى الصمام الثنائي الملحوم بسلك متعرج دون ترك السلك المستدير يلمس أي مكان. إذا لمست الأسلاك ، فسيقوم الجرس بإصدار صوت وستعرض شاشة LCD رسالة " حاول مرة أخرى ". وإذا أكملت اللعبة بدون لمس السلك ، فستظهر " أحسنت ".
هذه هي الطريقة التي يمكنك من خلالها إنشاء لعبة Buzz Wire باستخدام Arduino. ويرد أدناه فيديو عملي وكود كامل.