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

اردوينو الجلاد في مورس: 9 خطوات
اردوينو الجلاد في مورس: 9 خطوات

فيديو: اردوينو الجلاد في مورس: 9 خطوات

فيديو: اردوينو الجلاد في مورس: 9 خطوات
فيديو: Microcontroller AVR Lesson 9 ADC analog to digital converter + LCD تحويل اشارة انالوج متغيرة لديجيتل 2024, شهر نوفمبر
Anonim
اردوينو الجلاد في مورس
اردوينو الجلاد في مورس

سأوضح لك في هذا البرنامج التعليمي كيفية إعداد Arduino الخاص بك للعب Hangman عن طريق إرسال رمز مورس باستخدام مصباح يدوي بسيط أو وظيفة الشعلة من هاتفك.

كل ما تحتاج إلى متابعته هو: لوحة اردوينو ، 10 أسلاك بمصابيح LED لتوصيلها جميعًا ، إضافة: عنصر بيزو (لإضافة الصوت).

الخطوة 1: إعداد مصابيح LED

إعداد مصابيح LED
إعداد مصابيح LED

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

الخطوة الثانية: إضافة مستشعر ضوء مؤقت

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

كل ما عليك فعله هو توصيل الجانب الإيجابي من مصباح LED بأحد المنافذ التناظرية (في حالتي A0) والجانب السالب بأرضيتك.

الخطوة 3: أضف قاموسك

أضف قاموسك
أضف قاموسك

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

الخطوة 4: اجعل الأضواء تضيء افتراضيًا

اجعل الأضواء تضيء افتراضيًا
اجعل الأضواء تضيء افتراضيًا
اجعل الأضواء تضيء افتراضيًا
اجعل الأضواء تضيء افتراضيًا

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

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

الخطوة 5: إضافة المدخلات

مضيفا المدخلات
مضيفا المدخلات

سنقوم الآن بكتابة الكود للتحقق مما إذا كان اللاعب يضيء ضوءًا على مصباح LED المتصل بمنفذنا التناظري A0 ، وما إذا كان يتعين عليهم ترجمته إلى الحرف الصحيح.

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

يمثل msBtnPushed مقدار الوقت الذي ظل فيه الضوء مضاءًا.lastPressed هو منطقي يتتبع ما إذا كان الضوء مضاءًا في الحلقة السابقة.

الخطوة السادسة: التعامل مع المدخلات

التعامل مع المدخلات
التعامل مع المدخلات
التعامل مع المدخلات
التعامل مع المدخلات

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

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

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

ملاحظة: جميع وظائف Serial.println مخصصة لأغراض الاختبار فقط. قد يتم حذفها عند الانتهاء.

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

الخطوة السابعة: ترسيخ الرسائل التي تم تخمينها بشكل صحيح

ترسيخ الرسائل الصحيحة
ترسيخ الرسائل الصحيحة

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

لهذا ، قمت بكتابة وظيفتين: morseThis و nextLetter وهي تستخدم الأرقام التي قمنا بتعيينها مسبقًا في مصفوفة المؤقتات الخاصة بنا وتغييرها اعتمادًا على أي جزء من شفرة مورس يلمع حاليًا.

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

الخطوة 8: مراجعة الإعداد وإعادة التعيين

مراجعة الإعداد وإعادة التعيين
مراجعة الإعداد وإعادة التعيين

بالطبع لن يعمل البرنامج إذا لم يتم ضبط الأضواء على الإخراج والإدخال. أقوم أيضًا بإضافة مُنشئ أرقام عشوائي لإضافة كلمة من قائمة الكلمات التي وضعتها في مصفوفة تسمى WordsToGuess.

إلى جانب ذلك ، يجب أن نضيف وظيفة إعادة التعيين والتأكد من إعادة تعيين جميع القيم إلى الوضع الافتراضي.

الخطوة 9: جميع المتغيرات في صورة واحدة

جميع المتغيرات في صورة واحدة
جميع المتغيرات في صورة واحدة

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

استمتع الآن بلعب Hangman في Morse!

موصى به: