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

وحدة تحكم الوحدة البسيطة: 5 خطوات
وحدة تحكم الوحدة البسيطة: 5 خطوات

فيديو: وحدة تحكم الوحدة البسيطة: 5 خطوات

فيديو: وحدة تحكم الوحدة البسيطة: 5 خطوات
فيديو: شرح خرائط التدفق - flow charts بالامثله خطوة بخطوة 2024, يوليو
Anonim
وحدة تحكم بسيطة
وحدة تحكم بسيطة

وصف

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

الخطوة 1: المواد

المكونات المطلوبة

  • -اردوينو 2x المقاوم
  • - [~ 220 أوم
  • -أسلاك
  • -2x أزرار
  • - اللوح

الخطوة 2: اللوح

اللوح
اللوح

لقد بدأت بتوصيل منفذ arduino GND بدبوس سالب (-) على الجانب الأيسر من اللوح ، وربط 5V بموجبه (+) على الجانب الأيمن من اللوح.

بعد ذلك وضعت الأزرار في المكان الذي أردت أن تكون عليه. وربطها بالأسلاك والمقاومات.

الخطوة 3: ترميز Arduino

بادئ ذي بدء ، ستحتاج إلى كتابة بعض التعليمات البرمجية لتشغيل Arduino. أضع تعليقات في الكود تشرح ما يفعله.

// قم بتعريف الدبابيس التي تتصل بها الأزرار.

const int buttonPin1 = 3 ؛ const int buttonPin2 = 4 ؛

الإعداد باطل()

{// ابدأ المسلسل Serial.begin (9600) ؛ // تكوين الدبابيس كإخراج. pinMode (buttonPin1 ، الإدخال) ؛ pinMode (buttonPin2 ، الإدخال) ؛ }

حلقة فارغة()

{// اقرأ حالة الزر إذا (digitalRead (buttonPin1) == HIGH) {// اطبع هذا السطر إذا كانت الحالة مرتفعة. Serial.println ("يسار") ؛ تأخير (20) ؛ } if (digitalRead (buttonPin2) == HIGH) {// اطبع هذا السطر إذا كانت الحالة عالية. Serial.println ("يمين") ؛ تأخير (20) ؛ }}

الخطوة 4: الوحدة

إذا لم يكن لديك لعبة جاهزة ، فسيعمل هذا الرمز على أي كائن لعبة في الوحدة.

إذا كانت هذه هي الحالة ، فستحتاج إلى كائن لعبة للتحرك.

من أجل البساطة ، سننشئ مكعبًا بالانتقال إلى GameObject-> 3D Object-> Cube

بمجرد أن يصبح المكعب في المشهد الخاص بك ، حدده واضغط على زر إضافة مكون ، وأنشئ برنامج نصي جديد.

ستحتاج أيضًا إلى تغيير مستوى توافق Api حتى تعمل مكتبة System. IO. Ports.

للقيام بذلك ، انتقل إلى تحرير-> إعدادات المشروع-> المشغل

قم بالتمرير لأسفل في هذه القائمة حتى تجد مستوى توافق Api وحدد. NET 2.0 بدلاً من. Net 2.0 subset

أنت الآن جاهز لبدء البرمجة.

باستخدام System. Collections ؛ باستخدام System. Collections. Generic ؛ باستخدام UnityEngine ؛ باستخدام System. IO. Ports ؛

لاعب من الطبقة العامة: حركة أحادية السلوك

{سرعة الطفو العامة؛ حركة تعويم

SerialPort sp = منفذ تسلسلي جديد ("COM3"، 9600) ؛

بداية باطلة ()

{// قم بتشغيل الكود لفتح المنفذ التسلسلي OpenSerialPort () ؛ }

OpenSerialPort () باطل

{// فتح المنفذ التسلسلي sp. Open () ؛ sp. ReadTimeout = 1 ، }

حركة الفراغ (اتجاه السلسلة)

{// تحقق من الاتجاه الذي مر به اردوينو إذا (الاتجاه == "اليسار") {الحركة = -1 ؛ } إذا (الاتجاه == "يمين") {حركة = 1 ؛ } // احسب المقدار الذي سيتم من خلاله نقل كائن اللعبة ، الترجمة الطافية = الحركة * السرعة ؛ // قم بتطبيق الحركة على تحويل كائن اللعبة. ترجمة (ترجمة ، 0 ، 0) ؛ }

تحديث باطل ()

{if (sp. IsOpen) {try {// while the serialport is open move قم بتنفيذ وظيفة الحركة وتمرير الخط الذي يطبع Arduino حركة (sp. ReadLine ()) ؛ } catch (System. Exception) {

}

}

} }

الخطوة 5: الملاحظات النهائية

تحقق مما إذا كانت مكوناتك تعمل

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

موصى به: