اليوم لدينا مشروع مع وحدة تحكم لعبة صغيرة ، يمكن لأي شخص تكرارها.
المواد والمكونات الضرورية:
تم أخذ هذا الدليل من قناة AlexGyver على YouTube. يحتاج المتحكم الدقيق لهذا المشروع إلى ما يلي:
هذا هو Attiny85 في حزمة DIP ، سيكون كافياً بالنسبة لنا. لكي لا نلحمه ، نأخذ ما يسمى بالمقبس.
نحتاج أيضًا إلى شاشة مع Aliexpress ، OLED بدقة 128 × 32 بكسل.
دبابيس أيضا في متناول اليدين.
الأزرار التي سنستخدمها هنا هي:
بالطبع ، يمكنك أخذ لوحات المفاتيح ، ولكن يجب الانتهاء منها ، لكنني لا أرغب حقًا في القص واللحام. حجرة البطارية من هذا النوع:
وسنقوم بتجميع وحدة تحكم الألعاب الخاصة بنا بلوح توصيل (إذا كنت ترغب في ذلك ، يمكنك إنشاء لوحة بنفسك). سنومض مبرمج USBasp ، ولكن أي AVR سيفعل ذلك.
مخطط الأسلاك ستكون المكونات على النحو التالي:
تتصل الشاشة بدبابيس ناقل I2C لوحدة التحكم الدقيقة. نقوم بتوصيل الأزرار بدبابيس مجانية أخرى. أضف أيضًا مفتاحًا لتشغيل / إيقاف تشغيل النظام. وأساسا هذا كل شيء ، يبقى لتوصيل الطاقة.
يقوم المبرمج بتحميل البرنامج الثابت إلى وحدة التحكم الدقيقة وفقًا للمخطط التالي:
الآن دعنا نبدأ في التجميع ونرتب جميع العناصر الموجودة على اللوح. دعونا نحاول تجميع ونرى كيف يبدو كل شيء.
اتضح الزهد تماما. ليس سيئًا. يمكن نشر الجزء الزائد من اللوح.
الآن نقوم بإصلاح جميع المكونات فقط عن طريق لحام أرجلهم.
تحتاج الآن إلى ربط الاستنتاجات وفقًا للمخطط. لهذا الغرض ، يوصي المؤلف باستخدام سلك تركيب صيني رفيع.
ولمزيد من الراحة ، يمكنك استخدام مخطط الاتصال معكوس.
تتمتع هذه الأسلاك بعزل رقيق يمكنك لحامها مباشرة. سوف يذوب العزل نفسه وسيتم لحام السلك.
ثم انتقل إلى إغلاق حجرة البطارية والمفتاح. يجب أيضًا تثبيت المقصورة بمسدس الغراء الساخن.
حسنًا ، هذا كل شيء ، تم تجميع النظام ، ويبقى تنزيل البرامج الثابتة. سنومض "الحجر" بشكل منفصل عن طريق توصيله بالمبرمج على لوحة التوصيل.
البرنامج الثابت ، كما هو الحال مع جميع مشاريع المؤلف ، موجود في المجال العام ويمكن تنزيله من. ستجد أيضًا في صفحة المشروع رسمًا بيانيًا وجميع المعلومات الضرورية الأخرى حول هذا المشروع.
لن نتطرق إلى التنزيل بالتفصيل ، إذا كان هناك شيء غير واضح ، فيمكنك دائمًا الاطلاع على المؤلف للحصول على تعليمات مفصلة.
بالنسبة للبرامج الثابتة ، ما عليك سوى التثبيت اردوينو ide ، قم بتثبيت kernel للعمل مع ميكروكنترولر سلسلة Attiny ، حدد لوحة ، اختر مبرمج.
ثم نختار تردد 8 أو 16 ميجاهرتز ، ونفتح علامة التبويب "أدوات" ، ونجد ونحدد "Record Loader".
لا يوجد محمل هناك ، ولكن سيتم ضبط وحدة التحكم الدقيقة على التردد المطلوب. ثم حدد علامة التبويب "رسم" - "تنزيل عبر المبرمج". وننتظر حتى يتم تحميل الرسم في متحكم.
الآن نخرج "الحجر" وندخله في قلب وحدة التحكم في الألعاب المصغرة.
كما ترون ، إنها تعمل! والآن دعونا نلقي نظرة فاحصة على ما لدينا في البرامج الثابتة. ATtiny85 هو متحكم مع 512 بايت من ذاكرة الوصول العشوائي ، وهو صغير جدًا. تستخدم 99٪ من المكتبات للعمل مع مثل هذه الشاشة مخزنًا مؤقتًا على جانب وحدة التحكم الدقيقة لإعادة رسم الصورة بشكل صحيح ، لأن هذه الشاشة لا يمكنها قراءة البيانات من المخزن المؤقت الخاص بها ، وهي موجودة بالمناسبة.
المخزن المؤقت لهذه الشاشة بحجم 128 * 32 بكسل سيستغرق 512 بايت ، إذا أردنا أن نتذكر حالة كل بت ، أي بكسل.
بالإضافة إلى المخزن المؤقت ، نحتاج أيضًا إلى تخزين البيانات الأخرى ، لذلك لا يتناسب هذا الخيار بالتأكيد مع ذاكرة مثل هذا الحجم.
لذلك ، تقرر خفض دقة العرض إلى 64 * 16 بكسل عن طريق التخزين المؤقت للمربعات 4 بكسل.
عمل المؤلف مع هذا العرض مباشرة وتمكن من تنفيذ فكرته بنجاح. قد يكون رسمًا مفيدًا لشخص يريد العمل مع هذا العرض باستخدام Attiny.
الآن فيما يتعلق باللعبة نفسها. يعمل بكل بساطة. تتحرك الكرة على مؤقت منفصل ، وتتكون الحركة من حذف نقطة بنفس الإحداثيات وإضافة نقطة جديدة في الإحداثيات الجديدة.
حساب الإحداثيات هو ببساطة إضافة قيم السرعة إلى الإحداثيات في نظام العرض.
عندما تتجاوز الكرة الجدران الأفقية ، فإنها ترتد ببساطة ، وتغير المكون الرأسي للسرعة إلى العكس ، أي بعلامة الطرح (-).
بالإضافة إلى ذلك ، يقوم البرنامج بفحص الحدود الرأسية لمجال اللعب ، إذا ضربت الكرة المضرب (جيدًا ، أو أيًا ما تسميه بشكل صحيح) ، ثم ترتد ، وتكون زاوية الارتداد عشوائية.
إذا كانت الكرة تكسر الجدار خلف المضرب ، لذلك فقد اللاعب الجولة الحالية ، وسيحصل الخصم على نقطة.
يتم تنفيذ حركة مضرب اللاعب بنفس طريقة حركة الكرة ، أي يتم مسح المضرب القديم ويتم رسم مضرب جديد ، بالفعل بإحداثيات جديدة. تتغير الإحداثيات عند النقر على الزر.
وبالتالي ، اتضح أنه أسرع بكثير من تنظيف الشاشة بأكملها وتقديم جميع العناصر مرة أخرى.
الآن لمضرب الخصم. يتم التحكم فيه بواسطة AI (الذكاء الاصطناعي).
حسنًا ، يقال عن الذكاء الاصطناعي بصوت عال بالطبع ، ولكن مع ذلك فإن هذا الذكاء يفعل شيئًا بسيطًا للغاية ، أي أنه يجعل المضرب يتحرك في الاتجاه حيث تكون الكرة الآن ، بينما يحاول محاذاة مركزه على طول المحور الرأسي مع الإحداثيات العمودية للكرة. من أجل التغلب على مثل هذا الخصم ، جعله المؤلف بطيئًا ، أي أنه يحسب حركته التالية مرة أخرى بواسطة المؤقت ، وبالتالي قد لا يكون لديه الوقت للقبض على الكرة وبالتالي صده.
أيضا في اللعبة نفذت ميكانيكا زيادة التعقيد. كل 10 نقاط لصالح اللاعب ، تزداد سرعة الكرة. إلى جانب ذلك ، تتزايد أيضًا سرعة رد فعل AI (الخصم).
نتيجة لذلك ، ها هي بونغ الصغيرة البسيطة. ليس من أجل لا شيء ، تم تطوير لعبة الفيديو هذه أولاً ، لأنه حتى المبرمج المبتدئ يمكنه كتابتها. ولكن على الرغم من البساطة الواضحة للمشروع ، استغرق الضجيج مع العرض الصيني حوالي 20 ساعة من الوقت الخالص من المؤلف. في الوقت نفسه ، لم يأخذ في الاعتبار الوقت الذي يقضيه في كتابة رمز اللعبة نفسها وسير العمل الآخر فيما يتعلق بالتصحيح وإعداد الدائرة.
في هذا الشيء ، الطنانة نفسها هي عملية التجميع ، وليس التطبيق.يمكن أن يكون تطوير الألعاب ، حتى تلك الألعاب البسيطة ، مثيرًا للاهتمام حقًا. خاصة عندما تحاول دفعهم إلى متحكم دقيق للغاية. وعندما ينتظرك العرض الصيني على الأبواب ...
هذا كل شيء. شكرا لكم على اهتمامكم. اراك قريبا!
فيديو المؤلف: