جدول المحتويات:

اردوينو ولوحة اللمس تيك تاك تو: 8 خطوات (بالصور)
اردوينو ولوحة اللمس تيك تاك تو: 8 خطوات (بالصور)

فيديو: اردوينو ولوحة اللمس تيك تاك تو: 8 خطوات (بالصور)

فيديو: اردوينو ولوحة اللمس تيك تاك تو: 8 خطوات (بالصور)
فيديو: Arduino - Tic Tac Toe Game with Touchpad 2024, يونيو
Anonim
اردوينو ولوحة اللمس تيك تاك تو
اردوينو ولوحة اللمس تيك تاك تو

أو ، تمرين في تعدد إرسال المدخلات والمخرجات ، والعمل مع وحدات البت. وتقديم لمسابقة اردوينو.

هذا هو تنفيذ لعبة tic tac toe باستخدام مجموعة 3x3 من مصابيح LED ثنائية الألوان للعرض ولوحة لمس مقاومة بسيطة و Arduino لربط كل شيء معًا. لمعرفة كيفية عملها ، تحقق من الفيديو: ما يتطلبه هذا المشروع: الأجزاء والمواد الاستهلاكية لوحة أداء واحدة (أو لوحة شريطية) تسعة مصابيح LED ثنائية اللون ، تسعة مقاومات متطابقة كاثود مشترك ، في نطاق 100-220 أوم ، ستة مقاومات متطابقة ، في نطاق 10 كيلو أوم - 500 كيلو أوم عمود واحد ، مفتاح رمي مزدوج مجموعة من دبابيس الرأس حفنة من الأسلاك الكهربائية ورقة مربعة صغيرة من الأكريليك الشفاف ، بسماكة 1 مم تقريبًا ، 8 سم على الجانب شريط لاصق شفاف شرنك حراري (اختياري) كل ما سبق هي عناصر شائعة جدًا ، يجب ألا تتجاوز التكلفة الإجمالية 20 دولارًا أمريكيًا. وجدت في https://www.arduino.cc. مع البناء!

الخطوة 1: توصيل مصفوفة LED

توصيل مصفوفة LED
توصيل مصفوفة LED
توصيل مصفوفة LED
توصيل مصفوفة LED

لكي يضيء مصباح LED ، يجب توصيل كلا الخيوط. إذا كنا سنكرس زوجًا من المسامير لكل من مصابيح LED الـ 18 (9 أحمر ، 9 أخضر) ، فسرعان ما نفد دبابيس Arduino. ومع ذلك ، مع مضاعفة الإرسال ، سنتمكن من معالجة جميع مصابيح LED باستخدام 9 دبابيس فقط! للقيام بذلك ، يتم توصيل مصابيح LED بطريقة العارضة ، كما هو موضح في الشكل الأول. يتم تجميع مصابيح LED في أعمدة من ثلاثة أضعاف ، ويتم تجميع الكاثودات الخاصة بها في صفوف من ستة ، من خلال تعيين خط أنود معين مرتفع ، وخط كاثود معين منخفض ، ووجود مقاومة عالية على جميع خطوط الأنود والكاثود الأخرى ، يمكننا حدد مؤشر LED الذي نريد إضاءته ، حيث لا يوجد سوى مسار واحد يمكن أن يسلكه التيار ، على سبيل المثال ، في الشكل الثاني ، ضبط خط الأنود الأخضر 1 مرتفعًا ، والكاثود 1 خط منخفض ، ويضيء مؤشر LED الأخضر السفلي الأيسر. المسار الحالي في هذه الحالة يظهر باللون الأزرق ، ولكن ماذا لو كنت تريد أن تضيء أكثر من مؤشر LED على خطوط مختلفة؟ سنستخدم إصرار الرؤية لتحقيق ذلك. من خلال اختيار أزواج من خطوط LED بسرعة كبيرة ، فإنه يعطي الوهم بأن جميع مصابيح LED المحددة مضاءة في نفس الوقت.

الخطوة 2: تخطيط مصفوفة LED

تخطيط مصفوفة LED
تخطيط مصفوفة LED
تخطيط مصفوفة LED
تخطيط مصفوفة LED

يوضح الرسم البياني أدناه كيف يتم توصيل مصابيح LED فعليًا (G1-G9: المصابيح الخضراء ، R1-R9: المصابيح الحمراء). هذا المخطط مخصص لمصابيح LED أحادية وخضراء أحادية اللون ، إذا كنت تستخدم مصابيح LED ذات لونين أحمر / أخضر كاثود مشترك ، فهناك ساق كاثود واحدة فقط لكل زوج أحمر / أخضر يجب عليك توصيله. من Arduino (المسامير 3 ، 5 ، 6 ، 9 ، 10 ، 11 على Duemilanove) ، حتى نتمكن من الحصول على تأثيرات مثل التلاشي لاحقًا. تدخل خطوط الكاثود في المسامير 4 و 7 و 8 لكل من خطوط الكاثود والأنود مقاومات 100 أوم للحماية.

الخطوة 3: معالجة مصفوفة LED

بالنسبة إلى رمز tic tac toe ، سنحتاج إلى أن نكون قادرين على تخزين المعلومات التالية حول مصابيح LED: - ما إذا كان مصباح LED مضاءًا أم لا - إذا كان مضاءًا ، سواء كان أحمر أو أخضر. إحدى طرق القيام بذلك هي تخزين الحالة في مصفوفة من 9 خلايا ، باستخدام ثلاثة أرقام لتمثيل الحالة (0 = إيقاف ، 1 = تشغيل أحمر ، 2 = تشغيل أخضر). في كل مرة نحتاج فيها إلى التحقق من حالات LED ، على سبيل المثال ، للتحقق مما إذا كان هناك شرط فوز ، سنحتاج إلى التنقل عبر المصفوفة. هذه طريقة عملية ، لكنها عديمة الجدوى. هناك طريقة أكثر بساطة تتمثل في استخدام مجموعتين من تسع بتات. تقوم المجموعة الأولى المكونة من تسع بتات بتخزين حالة التشغيل والإيقاف الخاصة بمصابيح LED ، بينما تقوم المجموعة الثانية المكونة من تسع بتات بتخزين اللون. بعد ذلك ، يصبح التلاعب في حالات LED مجرد مسألة حسابية وتغيير. هذا مثال عملي. لنفترض أننا نرسم شبكة tic tac toe الخاصة بنا بيانياً ، ونستخدم أولاً 1s و 0s لتمثيل حالة التشغيل والإيقاف (1 قيد التشغيل ، 0 متوقف): 000000 = مصفوفة مع إضاءة LED اليسرى السفلية 10010010 = مصفوفة بقطر أضاءت مصابيح LED 001 إذا عدّدنا الخلايا من أسفل اليسار ، فيمكننا كتابة التمثيلات أعلاه كسلسلة من البتات. في الحالة الأولى ، سيكون ذلك 100000000 ، وفي الحالة الثانية ، سيكون 001010100. إذا فكرنا في هذه تمثيلات ثنائية ، فيمكن تكثيف كل سلسلة من البتات في رقم واحد (256 في الحالة الأولى ، 84 في الحالة الثانية). لذا بدلاً من استخدام مصفوفة لتخزين حالة المصفوفة ، يمكننا فقط استخدام رقم واحد! وبالمثل ، يمكننا تمثيل لون مؤشر LED بنفس الطريقة (1 أحمر ، 0 أخضر). لنفترض أولاً أن جميع مصابيح LED مضاءة (لذلك يتم تمثيل حالة التشغيل والإيقاف بالرقم 511). ستمثل المصفوفة أدناه حالة لون المصابيح: 010 أخضر ، أحمر ، أخضر 101 أحمر ، أخضر ، أحمر 010 أخضر ، أحمر ، أخضر الآن ، عند عرض مصفوفة LED ، علينا فقط أن ننتقل عبر كل بت ، أولاً في حالة التشغيل والإيقاف ، ثم في حالة اللون. على سبيل المثال ، لنفترض أن حالة التشغيل-الإيقاف لدينا هي 100100100 ، وحالة اللون هي 010101010. وإليك الخوارزمية الخاصة بنا لإضاءة مصفوفة LED: الخطوة الأولى. قناع). الخطوة 2. إذا كان هذا صحيحًا ، فسيتم إضاءة مؤشر LED. قم الآن بإضافة بعض الشيء لحالة اللون باستخدام ثنائي 1. الخطوة 3. إذا كان هذا صحيحًا ، فقم بإضاءة مؤشر LED الأحمر. إذا كان خطأ ، فقم بإضاءة مؤشر LED الأخضر. الخطوة 4. قم بتحويل كل من حالة التشغيل والإيقاف وحالة اللون ، بتة واحدة إلى اليمين (أي تحويل البت). الخطوة 5. كرر الخطوات من 1 إلى 4 حتى تتم قراءة جميع البتات التسع. لاحظ أننا نملأ المصفوفة بشكل عكسي - نبدأ بالخلية 9 ، ثم ننتقل مرة أخرى إلى الخلية 1. أيضًا ، يتم تخزين حالات التشغيل والإيقاف واللون كنوع عدد صحيح بدون إشارة (كلمة) بدلاً من نوع عدد صحيح بعلامة. هذا لأنه في تغيير البتات ، إذا لم نكن حذرين ، فقد نغير إشارة المتغير دون قصد. مرفق رمز لإضاءة مصفوفة LED.

الخطوة 4: إنشاء لوحة اللمس

بناء لوحة اللمس
بناء لوحة اللمس
بناء لوحة اللمس
بناء لوحة اللمس
بناء لوحة اللمس
بناء لوحة اللمس
بناء لوحة اللمس
بناء لوحة اللمس

لوحة اللمس مصنوعة من ورقة من الأكريليك الرفيع ، كبيرة بما يكفي لتتراكب فوق مصفوفة LED. بعد ذلك ، قم بربط أسلاك الصفوف والعمود على لوح الأكريليك باستخدام شريط لاصق شفاف. يستخدم الشريط اللاصق الشفاف أيضًا كمباعد عازل بين الأسلاك عند التقاطعات. تأكد من استخدام أدوات نظيفة لمنع شحم الأصابع من الوصول إلى الجانب اللاصق من الشريط. لا تبدو بقع بصمات الأصابع قبيحة فحسب ، بل تجعل الشريط أقل التصاقًا ، قم بقص أحد طرفي كل سطر ولحام الطرف الآخر بسلك أطول. جندى المقاوم في خط مع الأسلاك ، قبل اللحام على الموصلات. المقاومات المستخدمة هنا هي 674 كيلو ، ولكن أي قيمة بين 10 كيلو و 1 متر يجب أن تكون جيدة. يتم إجراء التوصيلات إلى Arduino باستخدام 6 دبابيس تمثيلية ، مع دبابيس 14-16 متصلة بصفوف شبكة الأسلاك ، والدبابيس 17-19 متصلة بـ الاعمدة.

الخطوة 5: لوحة اللمس - كيف تعمل

لوحة اللمس - كيف تعمل
لوحة اللمس - كيف تعمل
لوحة اللمس - كيف تعمل
لوحة اللمس - كيف تعمل

تمامًا كما استخدمنا معدد إرسال عبر العارضة لإعداد مصفوفة LED مع الحد الأدنى من المسامير ، يمكننا استخدام مُضاعِف عرضي مماثل لإعداد مجموعة مستشعرات تعمل باللمس ، والتي يمكننا استخدامها بعد ذلك لتنشيط مصابيح LED. مفهوم لوحة اللمس هذه بسيط. إنها في الأساس شبكة سلكية ، بها ثلاثة أسلاك عارية تعمل في صفوف ، وثلاثة أسلاك عارية تعمل في أعمدة فوق الصفوف. في كل نقطة تقاطع يوجد مربع صغير من العزل يمنع السلكين من اللمس. سوف يلامس الإصبع التقاطع كلا السلكين ، مما ينتج عنه مقاومة ضخمة ، ولكن محدودة بين السلكين. يمكن بالتالي جعل تيار صغير ، ولكن يمكن اكتشافه ، يتدفق من سلك إلى آخر ، عبر الإصبع. لتحديد التقاطع الذي تم الضغط عليه ، تم استخدام الطريقة التالية: الخطوة 1: اضبط جميع خطوط العمود على OUTPUT LOW. الخطوة 2: قم بتعيين خطوط الصف إلى INPUT ، مع تنشيط عمليات السحب الداخلية. الخطوة 3: خذ قراءة تمثيلية على كل سطر صف حتى تنخفض القيمة إلى ما دون عتبة معينة. يخبرك هذا في أي صف يكون التقاطع المضغوط الخطوة 4: كرر الخطوات من 1 إلى 3 ، ولكن الآن مع الأعمدة كمدخلات والصفوف كمخرجات. يخبرك هذا بأي عمود يكون التقاطع المضغوط. لتقليل تأثيرات الضوضاء ، يتم أخذ عدد من القراءات ثم حساب المتوسط. ثم تتم مقارنة النتيجة المتوسطة مقابل عتبة ، نظرًا لأن هذه الطريقة تتحقق فقط من الحد الأدنى ، فهي غير مناسبة لاكتشاف الضغطات المتزامنة. ومع ذلك ، نظرًا لأن tic tac toe يستمر بالتناوب ، فإن قراءة ضغطة واحدة كافية. مرفق به رسم يوضح كيفية عمل لوحة اللمس ، كما هو الحال مع مصفوفة LED ، تُستخدم البتات لتمثيل التقاطع الذي تم الضغط عليه.

الخطوة 6: وضع كل شيء معًا

نضع كل شيء معًا
نضع كل شيء معًا

الآن بعد أن تم الانتهاء من جميع المكونات الفردية ، فقد حان الوقت لتجميعها معًا. قم بتركيب شبكة الأسلاك على مصفوفة LED. قد تحتاج إلى إعادة ترتيب أرقام التعريف الشخصية في كود مصفوفة LED لمزامنتها مع مستشعر شبكة الأسلاك. قم بتأمين الشبكة السلكية في مكانها باستخدام أدوات التثبيت أو المواد اللاصقة من اختيارك ، والتزم بلوحة لعب لطيفة ، وأضف مفتاحًا بين السن 12 والأرضي في Arduino. هذا التبديل هو التبديل بين وضع لاعبين ، ووضع لاعب واحد (مقابل المتحكم الدقيق).

الخطوة 7: برمجة Tic Tac Toe

تم إرفاق رمز اللعبة ، فلنقم أولاً بتقسيم لعبة tic tac toe إلى خطواتها المختلفة ، في وضع لاعبين: الخطوة 1: يختار اللاعب A خلية غير مملوءة عن طريق لمس تقاطع. الخطوة 2: يضيء مؤشر LED لتلك الخلية باللون A الخطوة 3: تحقق لمعرفة ما إذا كان اللاعب A قد فاز ، الخطوة 4: يختار اللاعب B خلية غير مملوءة الخطوة 5: يضيء مؤشر LED لتلك الخلية باللون B الخطوة 6: تحقق لمعرفة ما إذا كان اللاعب B قد فاز الخطوة 7: كرر 1-6 حتى يكون هناك شرط فوز أو إذا كانت جميع الخلايا ممتلئة قراءة الخلايا: حلقات البرنامج بين قراءة الشبكة وعرض مصفوفة LED. طالما أن مستشعر الشبكة لا يسجل قيمة غير صفرية ، ستستمر هذه الحلقة. عند الضغط على تقاطع ، يخزن المتغير المضغوط موضع الخلية المضغوطة. التحقق مما إذا كانت الخلية شاغرة: عند الحصول على قراءة موضع (متغير الضغط) ، تتم مقارنتها بحالة الخلية الحالية (مخزنة في المتغير GridOnOff) باستخدام إضافة bitwise. إذا كانت الخلية المضغوطة غير مملوءة ، فانتقل إلى إضاءة مؤشر LED ، وإلا ارجع إلى قراءة الخلايا. يتم تحديد لون LED الذي يتم اختياره عند اختيار خلية بواسطة هذا المتغير ، والذي يتناوب في كل مرة يتم فيها اختيار خلية.). تُستخدم إضافتان أحاديتان لمقارنة مواضع الخلية المملوءة للاعب بشروط الفوز. إذا كانت هناك مباراة ، فسيعرض البرنامج روتين الفوز ، وبعد ذلك يبدأ لعبة جديدة. بعد ذلك تتلاشى مصابيح LED وتبدأ لعبة جديدة. التبديل إلى وضع لاعب واحد: إذا كان المفتاح في وضع التشغيل ، ينتقل البرنامج إلى وضع لاعب واحد ، ويبدأ اللاعب البشري أولاً. في نهاية دور اللاعب البشري ، يختار البرنامج ببساطة خلية عشوائية. من الواضح أن هذه ليست الإستراتيجية الأذكى!

الخطوة 8: الملاحظات والتحسينات الأخرى

هنا مقطع فيديو يُظهر وضع اللاعب الواحد ، مع قيام البرنامج بتشغيل حركات عشوائية تمامًا: البرنامج المعروض هنا هو مجرد نسخة بسيطة وعظام. يمكن القيام بالعديد من الأشياء الأخرى باستخدام هذا: 1) إضاءة مصابيح LED ثلاثة في كل مرة يعرض الكود الحالي مؤشر LED واحد فقط في وقت واحد. ومع ذلك ، من خلال الأسلاك الموضحة هنا ، من الممكن إضاءة جميع مصابيح LED المتصلة بخط كاثود واحد في نفس الوقت. لذلك ، بدلاً من التنقل عبر جميع المواضع التسعة ، كل ما عليك فعله هو التنقل عبر خطوط الكاثود الثلاثة. 2) استخدم المقاطعات لعرض مصابيح LED اعتمادًا على روتين شاشة LED ومقدار المعالجة ، قد تظهر مصابيح LED درجة معينة من الخفقان. باستخدام المقاطعات ، يمكن التحكم في توقيت مصابيح LED بدقة وسيؤدي إلى عرض أكثر سلاسة.3) مشغل كمبيوتر أكثر ذكاءً ، لا يستغرق الكود الحالي سوى عدد قليل من كيلو بايت ، مما يترك قدرًا أكبر قليلاً لتنفيذ برنامج كمبيوتر أكثر ذكاءً. لاعب إصبع القدم. آمل أن تكون قد استمتعت بقراءة هذه التعليمات بقدر ما استمتعت بالعمل عليها!

موصى به: