وضع لعبة "الأفعى" على اللوح. الجزء 2: عرض "متجه"

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




ارسم الذيل


لدينا بالفعل رأس يعمل بمفرده على حقل 8 × 8 ، والآن نحتاج إلى رسم ذيل. هذه ليست نقطة واحدة ، ولكنها كثيرة ، ولا يمكننا ببساطة نقل الإحداثيات (X ، Y) إلى أجهزة فك التشفير.

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

نظرًا لأن عدد النقاط معنا يمكن أن يكون مختلفًا (اعتمادًا على طول الذيل) ، فإن سطوع الصورة الناتجة سيتغير أيضًا مع مسار اللعبة ونمو الثعبان نفسه. لمنع حدوث ذلك ، سنحتفظ بعدد ثابت من الإطارات (10 = 1 إطار للرأس ، 1 للتفاح و 8 للذيل) وسنغلق الشاشة للحصول على نقاط غير ضرورية. أ - تفاحة ، رأس - ه ، خلايا ذيل. مرسومة في موجة




للعرض ، نحتاج أيضًا إلى إنسان آلي. ستحتوي هذه الآلة على عدة أجزاء: أحدها عداد إطار ، والذي سيتجاوز ببساطة 10 حالات في دائرة. دعونا نأخذ IE18 وبعض المنطق لهذه الأغراض.



إن أبسط شيء هو إخراج الرأس ، في هذا الإطار ، نقوم فقط بتشغيل الشاشة وتغذية ناقل x / y بالقيمة التي تمنحها لنا الآلة الأوتوماتيكية. للقيام بذلك ، استخدم المخزن المؤقت AP6 (يمكنك أخذ AP5 ، ​​ولكن ليس لديه مثل هذا pinout المناسب).
بعد ذلك نحتاج إلى رسم ذيل. للقيام بذلك ، سوف نتذكر في دولتنا ما رسمناه للتو. أضف اتجاه نمو الذيل إليها (باستخدام المخططمن الجزء السابق) والعرض. لمعرفة أننا بحاجة إلى إخراج الذيل ، نقوم ببساطة بمقارنة رقم الإطار مع طول الذيل باستخدام أداة المقارنة المقارنة 4 بت (U13). سنقوم بتخزين الإحداثيات السابقة في تسجيل 8 بت IR37 (أو IR27 ، انتهى للتو ...) ، وبالنسبة للإحداثيات الجديدة التي نستخدمها EEPROM ، الجدول الذي أنشأناه بالفعل في الجزء الأول. سيتم أخذ اتجاه القسم المطلوب من الذيل من جهاز اللعبة باستخدام معددات إرسال KP15 من خلال تطبيق رقم الإطار على إدخالات العنوان. ويجب ألا ننسى أننا نحافظ على اتجاه الرأس ، وهو عكس اتجاه نمو الذيل ، مما يعني أنه يجب عكس أحد المكونات. لحسن الحظ ، لن تضطر إلى تثبيت عاكس منفصل ، لأن KP15 له إخراج عكسي. مجموع:


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

تفاحة


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

من أين تحصل على عشوائي؟ يمكنك أن تأتي بمولد عشوائي زائف ، لكن هذا سيتطلب كمية غير منطقية من المنطق. خيار آخر هو أخذ ساعة بتردد مختلف ، ويفضل ألا يكون مستقرًا للغاية ، ولكن NE555s لا ​​تختلف في الاستقرار على أي حال. في الدائرة متعددة الاهتزازات ، يمكنك إضافة بعض العناصر الصاخبة أو غير الخطية إلى ذوقك (أضفت في سلسلة مع المقاوم JFET مع مصراع متدلي في الهواء). سنستقبل إحداثيات عشوائية ونخزنها في عداد 6 بت. لا توجد شرائح 6 بت جاهزة ، لذلك دعونا نربط حالتين IE10:



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

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



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

قطع مسافة السباق وقطف تفاحة جديدة


إطارات الساعات الرئيسية للمولدات U7 ، لدينا 10 إطارات ، ثم سنقسم هذا التردد على 16 باستخدام عداد IE10 آخر (U19) ونستخدمه لتسجيل الخطوات. تظهر الإشارة إلى أن الرأس يتزامن مع التفاحة على إطار واحد فقط من أصل 10 ولن تستمر حتى تقوم مقدمة النبضة بتبديل الإطار. هنا نحتاج إلى دارة تزامن. قررت أن أتخذ أبسط خيار: سنقوم بحقن الإشارة في الإدخال غير المتزامن للمشغل ، وسنعيد تعيينها في كل خطوة جديدة من جهاز الاستقبال.



عند إخراج الزناد ، نحصل على إشارة لإضافة خلية ذيل أخرى (U6) ، وكذلك لبدء العداد الذي يخزن إحداثيات الرأس (U21 ، U22) ، سيؤدي ذلك إلى توليد تفاحة جديدة ، وربما عشوائية.

دائرة كاملة



مخطط نقر كبير. وكيف يبدو على اللوح - في بداية المقال

الأجزاء والمكونات


ألواح الخبز


يمكنك أن تأخذ لوحات التطوير الصينية من علي ، ولكن بعد ذلك ستستغرق مشاكل الاتصال السيئ وقتًا أطول بكثير من تجميع الدائرة بشكل مباشر. ينصح Ben Eater باللوحات الجيدة ، وهي لوحات BB830 (أبيض) أو WBU-202 (أصفر). من الأفضل أيضًا أن تأخذ مجموعة الأسلاك Wisher (WJW-60B) ، وأي مجموعة صينية ، حتى أرخص مجموعة ، سيتم استخدامها كلين.

الدوائر المصغرة


حاولت التجمع في المسلسل المحلي الأكثر شعبية ، KP1533. في الغرب ، هذه هي سلسلة 74ALS ، ولكن لم تكن هناك شعبية على الإطلاق. في هذا المخطط ، لا توجد معلمات حرجة للتوقيت أو سعة التحميل ، لذلك يمكنك بأمان أخذ سلسلة K555 (74LS) أو حتى K155 (SN74). من بين تلك المستوردة ، يمكنك أخذ 74HC (ولكن بعد ذلك ، بالنسبة لمستويات التوافق ، سيتعين عليك أخذ جميع الرقائق تقريبًا من هذه السلسلة) أو 74HCT ، وهي متوافقة تمامًا مع سلسلة TTL و CMOS.

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

ظهر BOM الناتج على هذا النحو (من خلال الشرطة المائلة ، يشار إلى الاستبدالات المحتملة):

──────────────────────────────────────────────────────
          │ 1× *1 74*04
                │ 1× *3 74*00
                │ 1× *1 74*20
         │ 1× *2 74*74
          │ 2× *6 74*245 / *5 74*244 ( )
     │ 3× *1 74*85
  │ 2× *15 74*251 / *7 *151
        │ 1× *18 *163
                │ 4× *18 *163 / *10 *161
        │ 3× *27 74*377 / *37 74*574 ( )
                │ 1× *37 74*574 / *27 74*377 ( )
EEPROM          │ 3× AT28C16 / CAT28C16
     │ 1× *7 74*138 / 4 74*155 ( )
                │ 1× 5611 CD4028 ( ) /  AT28C16
       | 2× 10061 NE555
──────────────────────────────────────────────────────

مجموع


آمل أن تكون قد أحببت هذا المخطط ، وربما يرفع أحد الأشخاص يده لتكراره أو يفعل شيئًا أكثر إثارة للاهتمام)) يمكنك

مشاهدة الفيديو على YouTube:

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

أرشيف مع دائرة EEPROM ويمكن تنزيل مقالب هنا .



المواد المستعملة


1. كتاب هاريس وهاريس الذي لا يمل من التوصيةYuripanchul- للإرشاد العام.

2. مرجع Biryukova S.A. - للبحث عن pinouts دوائر صغيرة محددة.

كلا الكتابين يمكن العثور عليها في PDF، ولكن النسخة الورقية أجمل

3. بن الآكل الصورة موقع و قناة يوتيوب لها هي لإلهام))

4. Wavedrom هو لرسم المخططات

لجميع من قرأ لهذه الغاية، وذلك بفضل الاهتمام!

All Articles