كيف صنعنا لعبة لوحية بجهاز تحكم عن بعد

تعد ألعاب الطاولة واحدة من أقدم وسائل الترفيه التي تجمع الأصدقاء والعائلات وعشاق التواصل المباشر والعواطف حول اللعبة.

اليوم أريد أن أخبركم كيف قررت أنا وصديقي أن نبتكر لعبة الألواح الخاصة بنا ، ولكنها ليست بسيطة ، ولكنها "ذكية" .

الصورة

يمكن العثور على الجزء الثاني هنا: link

إنتباه! العديد من الصور.

لعبتنا هي لوحة MoBA يتحكم فيها كل لاعب ببطله الفريد ، بخصائصه وقدراته. في الوقت الحالي ، لدينا النسخة الأولى من النموذج المصنوع من Arduino والخشب الرقائقي.

الميزة الرئيسية في لعبتنا هي أنه لا توجد حاجة للمس الأرقام أثناء اللعبة ، يجب على اللعبة نفسها تحريكها وعرض جميع القدرات المطبقة. يمكن للاعب مشاهدة بطله والتحكم فيه فقط من هاتف محمول.

العديد من صور متحركة اللعب
gif

gif

gif

gif

ما يجب أن تكون اللعبة الذكية قادرة على القيام به:


  • حرك الأشكال في الحقل بنفسك.
  • قم بتمييز الملعب (بالكامل أو في كتلة منفصلة) بأي لون.
  • أظهر للاعب ما يمكنه / لا يستطيع / يجب أن يفعله ، وبالتالي جعل قواعد اللعبة شفافة.
  • تبادل البيانات مع الهاتف الذكي لكل لاعب.

إليك ما يبدو عليه أول بناء عملي لدينا:

الصورة

كيف جاءت الفكرة


بطريقة ما اشتريت نفسي على سطح المكتب Arkham Horror. بعد المتجر ، ذهبت على الفور إلى أصدقائي للعب. ومع ذلك ، للأسف ، لم يكن أحد منا قد لعبها من قبل ، ولم نتمكن من إتقان 26 صفحة من القواعد.

كان هذا هو ما جعلني أعتقد أنه سيكون من الرائع إنشاء لعبة لوحية تراقب بشكل مستقل تنفيذ القواعد ، وتحسب القيم الضرورية (بدون مكعبات ، ومساطر وورقة مكتوبة من الورق) ، إلخ.

أحب أحد أصدقائي الفكرة بشدة ، ووافق على المشاركة.

التنفيذ


لم يكن لدينا أي خبرة في تطوير الأجهزة (لم يكن أحد منا حتى يحمل اردوينو في أيدينا) ، وكانت تجربة البرمجة تقتصر على الجامعة وتطوير التطبيقات الصغيرة لنظام Android. ومع ذلك ، أضاف هذا فقط الاهتمام والرغبة.

بعد مناقشة كل التفاصيل ، توصلنا إلى ما يلي:

  • تقوم CoreXY بتحريك الأرقام عبر المجال ، مع ملف لولبي بجهد 12 فولت موجود على عربتها.
  • اثنان من محركات السائر Nema 17 17HS4401 والسائقين DRV8825 مسؤولون عن الحركة.
  • يتم استخدام شريط LED مع بكسل بكسل WS2812b لإبراز المجال.
  • Arduino Mega 2560 ، الذي تم تثبيت الدرع الذي قمنا بتثبيته عليه ، مسؤول عن الإدارة.
  • لنقل البيانات بين اللعبة والهواتف الذكية للاعبين ، 4 وحدات HM10 BLE هي المسؤولة.
  • كل هذا مدعوم بمصدر طاقة 12 فولت ، وطاقة 120 واط ، ومحول 5 فولت DC-DC.
  • على جانب الهاتف الذكي هو تطبيق للهاتف المحمول (حاليًا تحت نظام Android) ، وهو في الواقع جوهر اللعبة بأكملها. من على BLE هناك أوامر على الحركة ، تشغيل / إيقاف المغناطيس ومصابيح LED.

الميكانيكا


لم نأت إلى CoreXY على الفور. في البداية ، عند تنفيذ علم الحركة ، استلهمنا العديد من أدلة DIY لتجميع الطابعات ثلاثية الأبعاد.

فيما يلي صورة لمحاولتنا الأولى:

الصورة

لإنشاء المكونات ، اشترينا طابعة ثلاثية الأبعاد رخيصة الثمن مستخدمة ، والتي تمت بالفعل طباعة 6200 متر من البلاستيك فيها وهي تعمل بشكل مثالي حتى يومنا هذا.

ومع ذلك ، كان لهذا الخيار مجموعة من العيوب:

  • كان التجمع مؤلمًا - أدنى دقة في موقع الأعمدة - توقف النقل عن الركوب.
  • تأثير سيئ واحد على الأقل - توقف الحامل عن الركوب.
  • ارتفاع عال جدًا للهيكل بأكمله.
  • لم نحب فكرة أن المحرك يجب أن يكون موجودًا على جزء متحرك.

في مرحلة ما ، تعثرنا على مقال يصف حركيات CoreXY وقررنا اختياره. لديها كل من الإيجابيات:

  • التجميع بسيط لأنه يتم إنشاء جميع الأجزاء "المخصصة" على طابعة CNC أو 3D.
  • ارتفاع البناء المنخفض ، والذي يقتصر على ارتفاع محرك السائر.
  • محركات السائر بلا حراك.

لذا فإن السلبيات:

  • أحجام كبيرة. تظهر الصورة مع النموذج ثلاثي الأبعاد أن المساحة الإجمالية أكبر بكثير من مساحة سطح العمل.
  • الأشرطة الطويلة التي عليك أن تديرها.
  • طريقة محددة لتحريك العربة ، وسأناقشها أدناه.

من أجل تجنب جميع المشاكل إلى أقصى حد ، صنعنا نموذجنا في Tinkercad ، وبعد ذلك بدأنا في طلب المكونات وطباعتها.

الصورة

تحتوي اللعبة حاليًا على المعلمات المادية التالية:
العرض: 780 ملم الطول: 700 ملم الارتفاع: 85 ملم
الملعب: مربع ذو جانب 462 مم.
الأساس: خشب رقائقي بسمك 12 مم ، مع فتحات مقطوعة على CNC لتركيب الأجزاء والمحركات.

الصورة

عندما كان النموذج جاهزًا ، بدا صغيرًا وخفيفًا ... ومع ذلك ، يعيش بشكل كبير وثقيل جدًا. الآن نفهم أن الهيكل بأكمله بحاجة إلى التحسين:

  • استبدل الخشب الرقائقي بمواد أخف وأرق.
  • يجب ألا يتجاوز طول وعرض الكفاف الخارجي حجم الملعب (قد تضطر إلى تغيير الكينماتيكا).

فيما يلي سأصف الميزات التي واجهناها أثناء التجميع:

  • للتأكد من أن حركة الكفاف الداخلي والحمل سلسة وبدون أصوات غريبة ، من المهم أن تكون الأحزمة موازية للأعمدة. من المستحسن أيضًا تزييت الأعمدة. استخدمنا الزيت العادي لآلات الخياطة.
  • في البداية ، استخدمنا LM8UU الخاص بـ Uncle Liao كمحامل خطية ، لكننا غالبًا ما صادفنا عينات معيبة تم فكها ، وانهارت على الفور وخدش العمود. لذلك ، قرروا استبدالها بجلب الجرافيت.
  • هناك بعض الميزات في الحركة باستخدام حركيات CoreXY. لذلك ، إذا بدأنا محرك السائر 1 فقط ، فستنتقل العربة قطريًا. للحركة الأفقية ، من الضروري تشغيل المحركات في نفس الاتجاه. عمودي - في اتجاهات متعاكسة.

لحساب المسافة على طول X و Y ، يجب عليك استخدام الصيغ التالية:

الصورة

مجال اللعب


لتسليط الضوء على مجال اللعب ، اخترنا شريط LED مع بكسل بكسل WS2812b ، وهو مثالي لأهدافنا.

WS2812b هو RGB LED في حزمة SMD5050 مع 4 دبابيس: VDD و VSS و DIN و DOUT.

ما هي متطلبات المجال:

  • سمك صغير بحيث يمكن للمغناطيس الكهربائي سحب الشكل معه.
  • سطح أملس يتم فيه الانزلاق بدون مشاكل.

نتيجة لذلك ، يتكون الملعب بشكل مشروط من 3 أجزاء: الركيزة ، التي يتم إرفاق شريط LED بها ، الشريط نفسه وطلاء السطح الذي تنزلق عليه الأشكال.

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

الصورة

كسطح ، تم اختيار كل شيء أيضًا كـ Plexiglas ، الذي كان يرقد فوقي بعد الإصلاح على شرفة ، بسماكة 4 مم ، حليبي اللون ، مع معدلات تشتت جيدة.

ونتيجة لذلك ، بعد الجلوس في المساء بمكواة لحام ، حصلنا على ما يلي:

الصورة

هناك أشرطة ذات كثافة مختلفة من مصابيح LED. عادة ما تكون: 144 ، 90 ، 60 ، 30 لكل متر. توقفنا على شريط يحتوي على 30 مصباح LED لكل متر ، لأن باستخدام شريط بكثافة أعلى من مصابيح LED - من الصعب تحريك الأشكال بدون تصادمات وتزداد الطاقة المطلوبة للطعام.

يجدر الانتباه إلى أن مصابيح LED متصلة في سلسلة. لذلك ، إذا احترق مصباح LED الأول ، فلن يعمل الباقي.

مجالنا بحجم 14 * 14 خلية ، ما مجموعه 196 بكسل. يعمل الشريط بجهد 5 فولت. يتكون بكسل واحد في الشريط من 3 مصابيح LED - R ، G ، B ، كل منها يستهلك 20 مللي أمبير في أقصى سطوع. من السهل حساب أنه إذا أردنا إضاءة جميع وحدات البكسل البالغ عددها 196 بكسل باللون الأبيض ، فإننا نحتاج إلى 12 أمبير تقريبًا ...

إن العثور على PSU مضغوط أو محول DC-DC الذي يمكن أن ينتج مثل هذا التيار عند 5V يمثل مشكلة كبيرة. لذلك ، قررنا أنه في لعبتنا يجب ألا يتم ملء الحقل بأكثر من 60 ٪ ، ولا تستخدم اللون الأبيض / الرمادي (اللون الذي يتم تشغيل جميع مصابيح LED الثلاثة فيه) ، أي 40 مللي أمبير لكل بكسل. ونتيجة لذلك ، نحصل على أن الجدول لا يجب أن يستهلك أكثر من 5 أ.

غالبًا ما رأيت توصية مفادها أنه من الضروري تشغيل الشريط من جانبين حتى لا يكون هناك فقدان للجهد. لكننا نربط الشريط من ناحية ، كل 100 مصباح LED ، ولا نلاحظ انخفاض الجهد المرئي.

إلكترونيات


يتم إدارة جميع أجزاء اللعبة باستخدام Arduino Mega 2560. يتم تعيين الوظائف التالية لها:

  • قم بإجراء معايرة ، ونتيجة لذلك اكتشفنا عدد الخطوات التي يجب أن يتخذها محرك السائر من أجل التغلب على خلية واحدة.
  • تلقي الأوامر والبيانات من تطبيق الهاتف المحمول وإرسال حالة التنفيذ إلى BLE.
  • انقل حامل الخراطيش من النقطة A إلى النقطة B وفقًا للإحداثيات من البيانات الواردة من تطبيق الهاتف المحمول.
  • قم بتشغيل / إيقاف تشغيل المغناطيس الكهربائي.
  • قم بإضاءة بكسل محدد على طاولة بلون معين. يتم إرسال رقم ولون البكسل بواسطة تطبيق الهاتف المحمول.

تم تجميع النموذج الأولي الأول على لوح توصيل وتضمن المكونات التالية:

  • اردوينو ميجا 2560 ؛
  • محركان سائران DRV8825 ؛
  • 4 مفاتيح حد ؛
  • وحدة بليه HM-10 ؛
  • الترانزستور IRF530N - للتحكم في مغناطيس كهربائي ؛
  • PSU MeanWell 12V 10A ؛
  • MeanWell DC-DC محول تنحى من 12V إلى 5V ، 10A ؛

الصورة

بعد أن تأكدنا من أن كل شيء يعمل ، قررنا أننا بحاجة إلى صنع درعنا لـ Arduino Mega والتخلص أخيرًا من الأسلاك ومجموعة من الأسلاك.

نظرًا لنقص الخبرة في تطوير البرامج ، قررنا أن نعهد بهذه الأعمال إلى محترف. ونتيجة لذلك ، قام أحد أصدقائنا بتطوير اللوحة بالكامل وتثبيت جميع المكونات. يمكن رؤية النتيجة أدناه:

الصورة

لا يمكنني الحكم على جودة التنفيذ بسبب قلة الخبرة ، لكن المجلس يعمل بشكل لا تشوبه شائبة. يمكنك رؤية مخطط الدائرة هنا .

تطبيق جوال


تطبيق المحمول هو دماغ لعبتنا. هو التطبيق الذي يحتوي على جميع المعلومات حول حالة اللعبة والشخصيات وما إلى ذلك. تم اختيار Anroid كمنصة تطوير ، والمتطلب الرئيسي هو دعم BLE (حيث أنه من المخطط في المستقبل إضافة نسخة من اللعبة لنظام iOS).

على عكس الإلكترونيات ، كانت لدينا خبرة قليلة في تطوير تطبيقات الهاتف المحمول ، لذلك خططنا لإكمال هذه المرحلة بسرعة كافية. ومع ذلك ، كالعادة ، لم يعمل كل شيء كما هو مخطط له.

الصورة

أدركنا بسرعة أنه في الواقع سيتعين علينا كتابة لعبة جوّال كاملة تكون فيها وسائل عرض المعلومات ليست فقط شاشة الهاتف المحمول ، ولكن أيضًا سطح لعبة اللوحة.

الوظيفة الرئيسية للتطبيق الحالي:

  • ابحث عن أجهزة BLE ، وحدد الجهاز المناسب للاتصال. يتضمن التعريف "مصافحة" - يجب أن يتأكد الهاتف من أن الجهاز المتصل هو وحدة بلوتوث حقًا للعبة لوحية وليس تلفزيونًا.
  • اختيار اللاعبين (2 على الأقل) من الأبطال المتاحين ، والذين يوجد حاليًا 4.
  • توفير جميع المعلومات اللازمة للاعب الحالي: عن القدرات المتاحة ، وعن فترات التهدئة ، وعن الخصوم ، وما إلى ذلك.
  • القيام بالتحركات - يتحكم كل لاعب في تحركاته بمساعدة "عصا التحكم" ، التي يختار بها الخلايا لتطبيق القدرات والتحرك وما إلى ذلك.

ليس لدينا إحساس بالجمال ، بالإضافة إلى مصممي UX / UI المألوفين ، لذلك قمنا بتصميم أنفسنا قدر الإمكان. في المستقبل ، نخطط لإضافة ENT ، ووصف ، بالإضافة إلى وضع PVE حيث سيقاتل اللاعبون ضد الرؤساء في الساحة.

النتيجة


في الوقت الحالي ، لدينا نموذج أولي يعمل بكامل طاقته يمكنك تشغيله (وإن كان ذلك على هاتف ذكي واحد) ، والذي نقوم بصقل قواعد اللعبة وآلياتها. قضينا حوالي عام في إنشائه ، ونعمل في عطلات نهاية الأسبوع والأمسيات النادرة عندما يكون هناك وقت فراغ.

لدينا خطة طموحة: للعثور على أشخاص متشابهين في التفكير ، ووضع اللمسات الأخيرة على النموذج الأولي ، و "لعق" توازن وقواعد اللعبة تمامًا ومحاولة الانتقال إلى Kickstarter ، ستكون تجربة رائعة.

إذا كان الأمر مثيرًا للاهتمام ، فسوف أخبرك في المقالة التالية المزيد عن تطبيق الهاتف المحمول ، واللعبة نفسها ، وكيف صنعنا منمنماتنا وماذا جاء منها.

Source: https://habr.com/ru/post/ar425629/


All Articles