فهرست مطالب:

نمایش آینه: 8 مرحله
نمایش آینه: 8 مرحله

تصویری: نمایش آینه: 8 مرحله

تصویری: نمایش آینه: 8 مرحله
تصویری: گوز زدن پریانکا چوپرا هنرپیشه بالیوود در یکی از برنامه های لایف تلویزیونی |C&C 2024, جولای
Anonim
نمایش آینه
نمایش آینه
نمایش آینه
نمایش آینه
نمایش آینه
نمایش آینه

هدف این پروژه ایجاد قابلیت نمایش تصویر یک آینه هوشمند است. آینه قادر به نمایش پیش بینی (آفتابی ، تا حدی آفتابی ، ابری ، باد ، باران ، رعد وبرق و برف) و دما از -9999 درجه تا 9999 درجه است. مقادیر پیش بینی و دما به سختی کدگذاری شده اند که گویی شبیه سازی آنها از تجزیه و تحلیل آب و هوا انجام می شود.

این پروژه از یک برد Zynq-Zybo-7000 با FreeRTOS استفاده می کند و از Vivado 2018.2 برای طراحی و برنامه ریزی سخت افزار استفاده می کند.

قطعات:

Zynq-Zybo-7000 (با FreeRTOS)

LCD 19 اینچی (640x480)

کابل VGA

آینه اکریلیک 12 در 18 اینچ

مرحله 1: پیکربندی Vivado

پیکربندی Vivado
پیکربندی Vivado
پیکربندی Vivado
پیکربندی Vivado

Vivado 2018.2 را از Xilinx بارگیری کرده و از مجوز Webpack استفاده کنید. Vivado و "Create New Project" را راه اندازی کرده و نامی برای آن بگذارید. سپس "RTL Project" را انتخاب کرده و "در حال حاضر منابع را مشخص نکنید" را علامت بزنید. هنگام انتخاب یک قسمت ، "xc7z010clg400-1" را انتخاب کرده و در صفحه بعدی ضربه "Finish" را بزنید.

مرحله 2: بسته بندی IP درایور VGA

بسته بندی IP درایور VGA
بسته بندی IP درایور VGA
بسته بندی IP درایور VGA
بسته بندی IP درایور VGA

فایل vga_driver.sv را به منابع طراحی اضافه کنید. در مرحله بعد ، روی "Tools" کلیک کنید و "Create and Package New IP" را انتخاب کنید. "بسته بندی پروژه فعلی خود" را انتخاب کنید. سپس یک مکان IP و "Include.xci files" را انتخاب کنید. در پنجره باز شده روی "OK" و سپس "پایان" کلیک کنید.

در "مراحل بسته بندی" به "بررسی و بسته بندی" بروید و "بسته بسته IP" را انتخاب کنید.

اکنون vga_driver باید به عنوان یک بلوک IP در دسترس باشد.

مرحله 3: IP Zynq

IP Zynq
IP Zynq
IP Zynq
IP Zynq
IP Zynq
IP Zynq
IP Zynq
IP Zynq

در بخش "IP Integrator" ، "ایجاد طرح بلوک" را انتخاب کنید. "سیستم پردازش ZYNQ7" را اضافه کرده و روی بلوک دوبار کلیک کنید. روی "وارد کردن تنظیمات XPS" کلیک کنید و فایل ZYBO_zynq_def.xml را بارگذاری کنید.

سپس ، در بخش "پیکربندی PS-PL" منوی کشویی "AXI Non Secure Enablement" را باز کرده و "رابط M AXI GP0" را بررسی کنید.

در مرحله بعد ، در "پیکربندی MIO" ، منوی کشویی "Unit Processor Application" را باز کرده و "Timer 0" و "Watchdog" را علامت بزنید.

در نهایت ، در بخش "پیکربندی ساعت" منوی کشویی "ساعت های پارچه ای PL" را باز کرده و "FCLK_CLK0" و در 100 مگاهرتز را بررسی کنید.

مرحله 4: IP GPIO

IP GPIO
IP GPIO
IP GPIO
IP GPIO

دو بلوک GPIO به Block Design اضافه کنید. GPIO ها برای کنترل آدرس پیکسل و اجزای RGB پیکسل ها استفاده خواهند شد. بلوک ها را همانطور که در تصاویر بالا نشان داده شده پیکربندی کنید. پس از افزودن و پیکربندی هر دو بلوک ، روی "اجرای اتوماسیون اتصال" کلیک کنید.

GPIO 0 - کانال 1 آدرس پیکسل و کانال 2 رنگ قرمز را کنترل می کند.

GPIO 1 - کانال 1 رنگ سبز و کانال 2 رنگ آبی را کنترل می کند.

مرحله 5: مسدود کردن حافظه

مسدود کردن حافظه
مسدود کردن حافظه
مسدود کردن حافظه
مسدود کردن حافظه
مسدود کردن حافظه
مسدود کردن حافظه

یک IP Block Memory Generator به Block Design اضافه کنید و مطابق شکل بالا پیکربندی کنید. رنگ پیکسل در آدرس های حافظه نوشته شده و سپس توسط درایور VGA خوانده می شود. خط آدرس باید با تعداد پیکسل های مورد استفاده مطابقت داشته باشد بنابراین باید 16 بیت باشد. داده های موجود نیز 16 بیت است زیرا 16 بیت رنگی وجود دارد. ما به خواندن بیت های تأیید اهمیتی نمی دهیم.

مرحله 6: سایر IP ها

پی دی اف پیوست ، طرح بلوک کامل شده را نشان می دهد. IP گم شده را اضافه کرده و اتصالات را کامل کنید. همچنین برای خروجی های رنگ VGA و خروجی های همگام سازی عمودی و افقی "Make Externals" بسازید.

xlconcat_0 - رنگهای جداگانه را به هم متصل می کند تا یک سیگنال 16 بیتی RGB ایجاد کند که در بلوک RAM قرار می گیرد.

xlconcat_1 - سیگنال های ستون و سطر از درایور VGA را به هم متصل می کند و به پورت B بلوک RAM وارد می شود. این به راننده VGA اجازه می دهد تا مقادیر رنگ پیکسل را بخواند.

VDD - Constant HIGH به قابلیت نوشتن Block RAM متصل است تا همیشه بتوانیم از آن استفاده کنیم.

xlslice_0 ، 1 ، 2 - از برش ها برای شکستن سیگنال RGB به سیگنال های R ، G و B جداگانه استفاده می شود که می توانند درایور VGA وارد شوند.

پس از اتمام طرح بلوک ، یک پوشش HDL ایجاد کرده و فایل محدودیت ها را اضافه کنید.

*طراحی بلوک بر اساس آموزش نوشته شده توسط benlin1994 است*

مرحله 7: SDK

کدی که این Block Design را اجرا می کند در زیر گنجانده شده است. Init.c شامل توابعی است که نقاشی را انجام می دهند (پیش بینی ها ، اعداد ، نماد درجه و غیره). حلقه اصلی در main.c چیزی است که با برنامه ریزی برد اجرا می شود. این حلقه مقادیر پیش بینی و دما را تنظیم می کند و سپس توابع draw را در init.c. در حال حاضر هر هفت پیش بینی را حل کرده و یکی پس از دیگری نمایش داده می شود. توصیه می شود نقطه شکست را در خط 239 اضافه کنید تا بتوانید هر تصویر را مشاهده کنید. کد کامنت شده است و اطلاعات بیشتری را در اختیار شما قرار می دهد.

مرحله 8: نتیجه گیری

برای بهبود پروژه فعلی ، می توان تصاویر پیش بینی را در قالب فایل های COE در Block Memory Generators بارگذاری کرد. بنابراین به جای رسم پیش بینی ها به صورت دستی مانند کد C ، می توان تصاویر را مطالعه کرد. ما سعی کردیم این کار را انجام دهیم اما نتوانستیم کار کنیم. ما توانستیم مقادیر پیکسل ها را بخوانیم و آنها را خروجی دهیم ، اما تصاویر نامرتب ایجاد کرد که هیچ شباهتی به آنچه که ما در RAM بارگذاری کردیم ، نداشت. برگه اطلاعات Block Memory Generator برای خواندن مفید است.

این پروژه در اصل نیمی از آینه هوشمند است زیرا جنبه اتصال به اینترنت را از دست داده است. با افزودن این یک آینه هوشمند کامل به دست می آید.

توصیه شده: