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

طراز مفتاح إيقاف التشغيل العام: 10 خطوات
طراز مفتاح إيقاف التشغيل العام: 10 خطوات

فيديو: طراز مفتاح إيقاف التشغيل العام: 10 خطوات

فيديو: طراز مفتاح إيقاف التشغيل العام: 10 خطوات
فيديو: خطوات عمل الريست واعادة الضبط عن طريق المفتاح في حال وجود أي خلل بالسيارة 2024, شهر نوفمبر
Anonim
طراز مفتاح إيقاف التشغيل العام
طراز مفتاح إيقاف التشغيل العام

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

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

الخطوة 1: استيراد ملفات VHDL المعطاة

لكي يعمل نموذجنا بشكل صحيح ، ستحتاج إلى تنزيل البرنامج الذي يعطي تعليمات لوحة Basys 3.

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

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

الخطوة 2: تفصيل الوحدة النمطية العليا لـ VHDL

انهيار وحدة VHDL العلوية
انهيار وحدة VHDL العلوية
انهيار وحدة VHDL العلوية
انهيار وحدة VHDL العلوية

الوحدة العلوية للمشروع هي ما يربط جميع وحدات المكونات الفردية بالأجهزة المستخدمة. كما ترى ، لدينا وحدتا killSwitch و buzzerControl المُعرَّفة كمكونات في الأعلى.

يحدد القسم السفلي كيفية توصيل هذه الوحدات معًا. لقد قمنا بتوصيل أربعة مصابيح LED باللوحة وربطناها بوحدات killSwitch dev0 من خلال dev3. لدينا أربع وحدات killSwitch محددة لأننا نحتاج إلى واحدة لإدارة حالة كل LED متصل. تستخدم كل وحدة من هذه الوحدات إشارة الساعة والزر التي أنشأناها في تعريف الوحدة العليا بالإضافة إلى مفتاح الإدخال وإشارات جهاز الإخراج.

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

الخطوة 3: انهيار وحدة VHDL Kill Switch

انهيار وحدة VHDL Kill Switch
انهيار وحدة VHDL Kill Switch
انهيار وحدة VHDL Kill Switch
انهيار وحدة VHDL Kill Switch

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

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

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

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

الخطوة 4: انهيار وحدة VHDL Flip Flop

انهيار وحدة VHDL Flip Flop
انهيار وحدة VHDL Flip Flop

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

يستخدم كود VHDL عبارات if and else من أجل إنشاء Flip Flop كمكون داخل تصميم دائرتنا. إنه يضمن أنه عندما تنتقل إشارة الساعة من حالة منخفضة إلى حالة عالية ، وعندما يكون المصباح قيد التشغيل ، وعندما يتم الضغط على مفتاح إيقاف التشغيل ، فإن إخراج flip flops يحل محل مدخلاته. عندما يتم الكتابة فوق الإدخال ، يتم عكس الوجه.

الخطوة 5: انهيار وحدة VHDL Piezo Buzzer

انهيار وحدة VHDL بيزو الجرس
انهيار وحدة VHDL بيزو الجرس
انهيار وحدة VHDL بيزو الجرس
انهيار وحدة VHDL بيزو الجرس

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

سوف يقوم Piezo buzzer ، عند الضغط على زر التعطيل ، بتشغيل نغمتين من النغمات التي ستزود المستخدم بردود سمعية تفيد بأن الزر قد تم الضغط عليه. قمنا بتنفيذ هذا السلوك بشكل سلوكي في VHDL من خلال سلسلة من عبارات if في بنية عملية. بدأنا بإنشاء قيمة عددية لتتبع عدد تغييرات الساعة التي حدثت. بمجرد أن تبدأ العملية ، يقضي البرنامج النصف الأول من الثانية (من 0 إلى 50 مليون علامة ساعة) في إخراج نغمة A عند 440 هرتز. يتم تحقيق ذلك عن طريق عكس إشارة الجرس بيزو كل مضاعفات من 227272 على مدار الساعة مع وظيفة modulo. هذا الرقم هو نتيجة قسمة إشارة ساعة اللوحة (100 ميجاهرتز) على التردد المطلوب (400 هرتز). خلال النصف الثاني من الثانية (من 50 إلى 100 مليون علامة ساعة) تصدر اللوحة ملاحظة F عند 349.2 هرتز عبر نفس الطريقة كما في السابق. بعد ثانية واحدة ، لا يقوم البرنامج بزيادة متغير الساعة أكثر من ذلك ويتوقف عن إخراج أي شيء من جرس بيزو. يؤدي الضغط على زر إيقاف التشغيل العالمي مرة أخرى إلى إعادة تعيين هذا الرقم إلى 0 ، وإعادة تشغيل دورة الضوضاء.

الخطوة 6: تفصيل ملف قيود VHDL

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

تشتمل الأجهزة التي نستخدمها على أربعة مفاتيح إدخال تحمل علامات V17 و V16 و W16 و W1 على اللوحة. نستخدم أيضًا زر إيقاف التشغيل العام ، المسمى U18. دبابيس الإخراج لمصابيح LED الأربعة المتصلة لدينا هي JB4 و JB10 و JC4 و JC10. بالنسبة إلى جرس piezzo الخاص بنا ، نستخدم دبوس الإخراج JA9.

كما ذكرنا في الجزء العلوي من تفصيل الوحدة النمطية ، إذا كنت ترغب في إضافة مصابيح LED إضافية أو أجهزة أخرى إلى اللوحة ، فأنت بحاجة إلى زيادة نطاق إشارات sw و dev ، وإضافة المزيد من وحدات killSwitch ، وتوصيلها معًا. تحتاج بعد ذلك إلى ربط هذه الأسماء المتغيرة بأجهزة الجهاز عبر ملف القيود. يمكن القيام بذلك عن طريق إلغاء (إعادة تمكين) سطور التعليمات البرمجية المرتبطة بالدبابيس التي تريد استخدامها ثم إضافة اسم المتغير المرتبط بها في الوحدة النمطية العليا. يمكن نسخ البنية المناسبة لهذا من الأجهزة التي نستخدمها. لمعرفة أسماء الدبابيس التي تريد استخدامها على اللوحة ، ارجع إلى الدليل المرجعي Baasys 3 هنا.

الخطوة 7: بناء الأسس 3

بناء الأسس 3
بناء الأسس 3
بناء الأسس 3
بناء الأسس 3

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

عندما تكون اللوحة جاهزة ، قم بتوصيلها بجهاز الكمبيوتر الخاص بك عبر كابل USB.

الخطوة 8: تنفيذ ملفات VHDL على Basys 3

تنفيذ ملفات VHDL على Basys 3
تنفيذ ملفات VHDL على Basys 3
تنفيذ ملفات VHDL على Basys 3
تنفيذ ملفات VHDL على Basys 3

الآن بعد أن أصبحت اللوحة الخاصة بك جاهزة وتم الانتهاء من التعليمات البرمجية الخاصة بك ، يمكنك أخيرًا تجميع النموذج معًا.

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

الخطوة 9: استخدام لوحة Basys 3

استخدام لوحة Basys 3
استخدام لوحة Basys 3

الآن بعد أن أصبحت لوحة Basys 3 جاهزة للعمل وتمت برمجتها لتمثيل نموذجنا ، عليك أن تعرف كيفية استخدامه.

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

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

الخطوة 10: التباهي

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

موصى به: