فهرست مطالب:
- مرحله 1: فایل های داده شده VHDL را وارد کنید
- مرحله 2: خرابی ماژول بالای VHDL
- مرحله 3: خرابی ماژول VHDL Kill Switch
- مرحله 4: خرابی ماژول VHDL Flip Flop
- مرحله 5: خرابی ماژول VHDL Piezo Buzzer
- مرحله 6: تجزیه فایل محدودیت های VHDL
- مرحله 7: ساختن Basys 3
- مرحله 8: پیاده سازی فایل های VHDL در Basys 3
- مرحله 9: استفاده از برد Basys 3
- مرحله 10: خودنمایی کنید
تصویری: مدل یک سوئیچ جهانی: 10 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
آیا از چک کردن تمام چراغ های خانه قبل از خواب خسته شده اید؟ آیا آرزو می کنید که بتوانید همه چراغ ها را یکباره و بدون هیچ سر و صدا خاموش کنید؟ به منظور صرفه جویی در قدرت و زمان ، ما تصمیم گرفتیم سیستمی را ایجاد کنیم که از لحاظ تئوری بتواند یک خانه را به طور همزمان تعطیل کند.
ما اثبات این مفهوم را با استفاده از چند برد مدار LED و 3 پایه طراحی کردیم و طرحی را ایجاد کردیم که با فشار یک دکمه همه LED ها را غیرفعال می کرد. این مدل را می توان در مورد سیستم روشنایی واقعی خانه نیز به کار برد ، اگرچه به سیم کشی پیچیده تر و اصلاح فایل های VHDL داده شده نیاز دارد.
مرحله 1: فایل های داده شده VHDL را وارد کنید
برای اینکه مدل ما به درستی کار کند ، باید نرم افزاری را که دستورالعمل های آن را به برد Basys 3 می دهد ، بارگیری کنید.
ابتدا باید یک ابزار سنتز برای پیاده سازی فایل های vhdl در سخت افزار بارگیری کنید. اگر می خواهید مطمئن باشید که همه کد به طور کامل طراحی ما را بدون نیاز به هیچ گونه تغییری تکرار می کند ، توصیه می کنیم از Vivado 2016.2 استفاده کنید. پس از نصب Vivado می توانید یک پروژه ایجاد کرده و فایل های منبع ما را بارگیری کنید. آنها را به عنوان منابع به پروژه خود اضافه کنید ، فراموش نکنید که فایل محدودیت ها را نیز اضافه کنید!
در ادامه توضیح خواهیم داد که هر یک از فایل های منبع چه کار می کند. اگر فقط می خواهید به ساختار فیزیکی دستگاه برسید ، مراحل 2 تا 6 را رد کنید.
مرحله 2: خرابی ماژول بالای VHDL
ماژول برتر پروژه چیزی است که همه ماژول های جداگانه را به سخت افزار مورد استفاده متصل می کند. همانطور که می بینید ما ماژولهای killSwitch و buzzerControl را به عنوان اجزای بالا تعریف کرده ایم.
قسمت پایین نحوه اتصال این ماژول ها به یکدیگر را مشخص می کند. ما چهار LED را به برد متصل کرده و آنها را با ماژول killSwitch dev0 تا dev3 مرتبط کرده ایم. ما چهار ماژول killSwitch تعریف کرده ایم زیرا به یک مورد برای مدیریت وضعیت هر LED متصل نیاز داریم. هر یک از این ماژول ها از سیگنال ساعت و دکمه ای که در تعریف ماژول بالا ایجاد کرده ایم و همچنین سیگنال های ورودی و خروجی مربوطه آنها استفاده می کند.
ماژول کنترل زنگ در پایین با فشار دادن دکمه خاموش کردن جهانی ، زنگ را فعال می کند. همانطور که می بینید ماژول کنترل کننده زنگ ساعت و دکمه را به عنوان ورودی ارسال می کند. همچنین پین خروجی زنگ دار فیزیکی به آن منتقل می شود تا مطابق آن کنترل شود.
مرحله 3: خرابی ماژول VHDL Kill Switch
Kill Switch دکمه خاموش جهانی است و ماژول در درجه اول به اتصال آن به سایر عناصر مدار می پردازد تا با فشردن آن همه چراغ ها خاموش شوند.
در حالی که ماژول بالا اتصال سخت افزار فیزیکی به نرم افزار را کنترل می کند ، ماژول killSwitch منطق اصلی هر دستگاه را مدیریت می کند. ماژول ورودی های سیگنال ساعت ، دکمه خاموش جهانی و سوئیچ ضامن دستگاه را می گیرد. در عوض ، وضعیت پین دستگاهی که به آن متصل است را کنترل می کند.
در قسمت معماری کد می بینیم که برای ذخیره حافظه به ماژول dFlipFlop وابسته است. همچنین می توانید مشاهده کنید که ما چهار سیگنال اعلام کرده ایم که برای اتصال فلیپ فلاپ و همچنین اجرای دستورات منطقی ما استفاده می شود. در بخش رفتاری کد ، ما یک نمونه از ماژول dFlipFlop ایجاد کرده و سیگنال های ورودی/خروجی خود را به پورت ها اختصاص داده ایم.
از اینجا قسمت اصلی منطق ما در مقادیر سیگنال invertState و isDevOn نهفته است. اساس منطقی ما برای دستگاه به شرح زیر است: "هر زمان که سوئیچ پرتاب شود ، حالت روشن/خاموش را معکوس می کند. هر زمان که دکمه فشار داده شود و LED در حال حاضر روشن باشد ، LED حالت خود را خاموش می کند. " از این دو عبارت می توان برآورد کرد که حالت LED باید XOR کلید و عنصر حافظه ما باشد. به این ترتیب تغییر در هر دو LED را معکوس می کند. این را می توان در سیگنال isDevOn پیاده سازی کرد. LED به شرط عنصر حافظه توسط سیگنال invertState ما اداره می شود. اگر LED روشن باشد و دکمه فشار داده شود ، عنصر حافظه ما به روز می شود و حالت خود را برعکس می کند. سپس حالت LED را نیز معکوس می کند.
مرحله 4: خرابی ماژول VHDL Flip Flop
یکی از مشکلات طراحی ما این واقعیت بود که پس از استفاده از سوئیچ خاموش ، چراغهایی که قبلاً روشن بودند ممکن است نیاز به دوبار چرخاندن داشته باشند تا به حالت روشن برگردند. این به مرور زمان برای مردم بسیار ناراحت کننده خواهد بود. ما با استفاده از "Flip Flop" ، یک عنصر مدار که قادر به ذخیره اطلاعات است ، در طرح خود این ناراحتی را دور زدیم. در حال حاضر ، سیستم به خاطر می آورد که آیا قبلاً یک کلید روشن بوده است ، بنابراین اگر دوباره روشن شود ، بدون توجه به موقعیت اولیه آن روشن می شود.
کد VHDL از دستور if و else برای ایجاد Flip Flop به عنوان یک جزء در طراحی مدار استفاده می کند. این تضمین می کند که وقتی سیگنال ساعت از حالت پایین به حالت بالا می رود ، هنگامی که لامپ روشن است و هنگامی که کلید خاموش فشار داده می شود ، خروجی فلیپ فلاپ ورودی خود را رونویسی می کند. وقتی ورودی رونویسی می شود ، فلیپ فلاپ معکوس می شود.
مرحله 5: خرابی ماژول VHDL Piezo Buzzer
این فایل از نظر طراحی سخت افزاری کمی اضافی است ، اما برای اینکه ماژول برتر و فایلهای محدودیت به راحتی اجرا شوند ضروری است. در صورت عدم استفاده از زنگ پیزو ، این فایل را بارگیری کنید ، اما زنگ را به برد Basys 3 وصل نکنید.
با فشردن دکمه غیرفعال ، صدای زنگ Piezo یک صدای دو نت را پخش می کند که با فشار دادن دکمه ، بازخورد شنیداری را در اختیار کاربر قرار می دهد. ما این کار را از طریق یک سری دستورات if در ساختار فرآیند در VHDL پیاده سازی کردیم. ما با ایجاد یک مقدار صحیح شروع کردیم تا تعداد تغییرات ساعت را ردیابی کنیم. پس از شروع فرآیند ، برنامه نیم ثانیه اول (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 است. برای صدای زنگ پیزو ما از پین خروجی JA9 استفاده می کنیم.
همانطور که در تجزیه ماژول بالا بیان کردیم ، اگر می خواهید LED های اضافی یا سایر دستگاه ها را به برد اضافه کنید ، باید دامنه سیگنال های sw و dev را افزایش دهید ، ماژولهای killSwitch بیشتری اضافه کنید و آنها را به هم متصل کنید. سپس باید نام متغیرها را از طریق فایل محدودیت ها به سخت افزار دستگاه پیوند دهید. این را می توان با اظهارنظر (فعال کردن مجدد) خطوط کد مربوط به پین هایی که می خواهید استفاده کنید و سپس نام متغیر مربوطه در ماژول بالا اضافه کنید. نحو مناسب برای این را می توان از دستگاه هایی که استفاده می کنیم کپی کرد. برای یافتن نام پین هایی که می خواهید روی صفحه استفاده کنید ، به راهنمای مرجع Baasys 3 در اینجا مراجعه کنید.
مرحله 7: ساختن Basys 3
شما باید LED های خود را به پورت های ورودی/خروجی صحیح Basys وصل کنید. 3 تصاویر ارائه شده را دنبال کنید تا مشخص شود که پورت های صحیح کدامند ، زیرا اگر LED را به پورت اشتباه وصل کنید ، روشن نمی شود. اگر انتخاب کرده اید که زنگ پیزو را وصل کنید ، باید آن را به پورت های ورودی/خروجی صحیح وصل کنید.
هنگامی که برد آماده است ، آن را از طریق کابل USB به رایانه خود وصل کنید.
مرحله 8: پیاده سازی فایل های VHDL در Basys 3
اکنون که برد شما آماده است و کد شما به پایان رسیده است ، در نهایت می توانید مدل را کنار هم قرار دهید.
هنگامی که پروژه خود را در Vivado راه اندازی کردید ، باید روی دکمه "ایجاد Bitstream" کلیک کنید تا کد را قبل از بارگذاری روی برد کامپایل کنید. در صورت دریافت پیام خطا در این زمان ، باید دوباره بررسی کنید که کد شما دقیقاً با کد ما مطابقت دارد. وقتی دقیق می گویم ، منظور من حتی نقطه ویرگول یا انواع پرانتزهایی است که استفاده می شود. پس از اینکه بیت استریم شما با موفقیت نوشته شد ، به مدیر سخت افزار Vivado بروید و روی دکمه "باز کردن هدف" کلیک کنید ، سپس بلافاصله پس از آن روی "برنامه دستگاه" کلیک کنید. تخته Basys 3 شما اکنون باید کاملاً کاربردی باشد.
مرحله 9: استفاده از برد Basys 3
اکنون که هیئت مدیره Basys 3 عملیاتی شده است و برای نشان دادن مدل ما برنامه ریزی شده است ، باید نحوه استفاده از آن را بدانید.
هریک از چهار سوئیچ دورترین سمت راست یکی از LED ها را کنترل می کند ، با فشردن آنها LED روشن یا خاموش می شود. اگر LED فعال نمی شود ، بررسی کنید که آیا به درگاه ورودی/خروجی صحیح وصل شده اید و آیا LED شما در وهله اول عملکردی دارد یا خیر.
هنگامی که می خواهید همه LED ها را به طور همزمان غیرفعال کنید ، باید دکمه مرکزی را در مجموعه پنج دکمه نمایش داده شده در بالا فشار دهید.
مرحله 10: خودنمایی کنید
این مدل به عنوان یک تازگی کوچک و منظم عمل می کند که می توانید آن را در حضور دوستان و خانواده خود نشان دهید. اگر از LED ها با سیم هایی که منجر به چراغ می شوند ، LED ها را جایگزین کنید ، از لحاظ نظری نیز می توان از آن برای پیاده سازی کلید خاموش عمومی در سیستم برق خانه استفاده کرد. در حالی که ممکن است ، ما هنوز باید در برابر آن توصیه کنیم. اگر بخواهید بدون کمک برق کار کنید ، می توانید آسیب جدی به خود یا خانه خود وارد کنید.
توصیه شده:
صفحه کلید USB جهانی با سوئیچ های RGB: 6 مرحله
صفحه کلید USB جهانی با سوئیچ های RGB: در این مقاله آموزشی به شما نشان خواهم داد که چگونه صفحه کلید USB سفارشی خود را بسازید که مانند یک صفحه کلید رایانه ای معمولی رفتار می کند. می توانید هر کلید یا دنباله ای از کلیدها را برای فشردن اختصاص دهید در حالی که فقط یک دکمه را فشار می دهید. می توانید از آن استفاده کنید
مدل راه آهن مدل خودکار با حلقه های معکوس: 14 مرحله
طرح خودکار مدل راه آهن با حلقه های معکوس: در یکی از دستورالعمل های قبلی من ، نحوه ساخت یک راه آهن ساده نقطه ای به نقطه مدل ساده را نشان دادم. یکی از معایب اصلی آن پروژه این بود که قطار برای برگشت به نقطه شروع باید در جهت معکوس حرکت کند. آر
سوئیچ IR از راه دور جهانی: 12 مرحله
Universal IR Remote Switch: این پروژه استفاده از یک تراشه منظم را نشان می دهد که به شما امکان می دهد از هر ریموت IR برای خاموش و روشن کردن چیزی استفاده کنید. در اینجا من یک سوئیچ AC از راه دور جنرال الکتریک RF که کار نمی کند را به سوئیچ تغییر داده ام که می توان با هر ریموت مادون قرمز کنترل کرد. انگیزه من از
سوئیچ جهانی کنترل از راه دور IR برای کامپیوتر: 10 مرحله
سوئیچ جهانی کنترل از راه دور IR برای رایانه: این پروژه به شما امکان می دهد رایانه خود را با ریموت تلویزیون روشن و خاموش کنید. چند ماه پیش پروژه ای ارسال کردم که نشان می داد چگونه از ریموت DirecTV خود برای کنترل لامپ در اتاق استفاده می کنم. آن پروژه به چیزی تبدیل شد که من همیشه از آن استفاده می کنم. آلموس
حفاظت جهانی (سرقت) برای تجهیزات الکترونیکی یا خودروها با سوئیچ نامرئی: 4 مرحله (همراه با تصاویر)
حفاظت جهانی (سرقت) برای تجهیزات الکترونیکی یا اتومبیل با سوئیچ نامرئی: من نشان خواهم داد که چگونه می توانید از سوئیچ نی به عنوان محافظ جهانی برای تجهیزات یا ماشین های الکترونیکی استفاده کنید. تنها چیزی که نیاز دارید یک سوئیچ نی و یک آهنربا است. برای اتومبیل ها به رله قدرت نیاز دارید تا ظرفیت سوئیچ سوئیچ نی را افزایش دهید. تصویری