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

عرض المرآة: 8 خطوات
عرض المرآة: 8 خطوات

فيديو: عرض المرآة: 8 خطوات

فيديو: عرض المرآة: 8 خطوات
فيديو: 8 خطوات سهله لتغيير #اسلوب_حياة #صحي #انقطاع_الطمث #menopause #life #منتصف_العمر 2024, يوليو
Anonim
عرض المرآة
عرض المرآة
عرض المرآة
عرض المرآة
عرض المرآة
عرض المرآة

الهدف من هذا المشروع هو إنشاء وظيفة عرض الصور للمرآة الذكية. المرآة قادرة على عرض التوقعات (مشمس ، مشمس جزئيًا ، غائم ، عاصف ، مطر ، رعد ، وثلج) وقيم درجات الحرارة من -9999 درجة إلى 9999 درجة. يتم ترميز قيم التنبؤ ودرجة الحرارة بشكل صارم كما لو كان يتم تحليلها من واجهة برمجة تطبيقات الطقس لمحاكاة هذه القيم.

يستخدم المشروع لوحة Zynq-Zybo-7000 التي تعمل بنظام FreeRTOS ويستخدم Vivado 2018.2 لتصميم الأجهزة وبرمجتها.

القطع:

Zynq-Zybo-7000 (مع FreeRTOS)

شاشة LCD مقاس 19 بوصة (640 × 480)

كابل VGA

مرآة أكريليك مقاس 12 × 18 بوصة

الخطوة 1: تكوين Vivado

تكوين Vivado
تكوين Vivado
تكوين Vivado
تكوين Vivado

قم بتنزيل Vivado 2018.2 من Xilinx واستخدم ترخيص Webpack. قم بإطلاق Vivado و "إنشاء مشروع جديد" وقم بتسميته. بعد ذلك ، حدد "مشروع RTL" وحدد "عدم تحديد المصادر في الوقت الحالي". عند اختيار جزء ، حدد "xc7z010clg400-1" واضغط على "إنهاء" في الصفحة التالية.

الخطوة 2: تغليف VGA Driver IP

التعبئة والتغليف VGA Driver IP
التعبئة والتغليف VGA Driver IP
التعبئة والتغليف VGA Driver IP
التعبئة والتغليف VGA Driver IP

أضف ملف vga_driver.sv إلى Design Sources. بعد ذلك ، انقر فوق "أدوات" وحدد "إنشاء وحزم IP جديد". حدد "حزم مشروعك الحالي". ثم اختر موقع IP و "تضمين ملفات xci." انقر فوق "موافق" في النافذة المنبثقة ثم "إنهاء".

في "خطوات الحزم" ، انتقل إلى "المراجعة والحزم" وحدد "حزمة IP".

الآن يجب أن يكون vga_driver متاحًا ككتلة IP.

الخطوة 3: Zynq IP

زينك IP
زينك IP
زينك IP
زينك IP
زينك IP
زينك IP
زينك IP
زينك IP

ضمن قسم "IP Integrator" ، حدد "Create Block Design". أضف "نظام معالجة ZYNQ7" وانقر نقرًا مزدوجًا فوق الكتلة. انقر فوق "استيراد إعدادات XPS" وقم بتحميل ملف ZYBO_zynq_def.xml.

بعد ذلك ، ضمن "تكوين PS-PL" ، افتح القائمة المنسدلة لـ "AXI Non Secure Enablement" وحدد "واجهة M AXI GP0."

بعد ذلك ، ضمن "تكوين MIO" ، افتح القائمة المنسدلة لـ "وحدة معالج التطبيق" وحدد "Timer 0" و "Watchdog".

أخيرًا ، ضمن "تكوين الساعة" ، افتح القائمة المنسدلة لـ "PL Fabric Clocks" وحدد "FCLK_CLK0" وعند 100 ميجاهرتز.

الخطوة 4: GPIO IP

GPIO IP
GPIO IP
GPIO IP
GPIO IP

أضف كتلتين من كتل GPIO إلى تصميم الكتلة. سيتم استخدام GPIOs للتحكم في عنوان البكسل ومكونات RGB لوحدات البكسل. قم بتكوين الكتل كما هو موضح في الصور أعلاه. بمجرد إضافة وتكوين كلا الكتلتين ، انقر فوق "تشغيل أتمتة الاتصال".

تتحكم GPIO 0 - Channel 1 في عنوان البكسل وتتحكم القناة 2 في اللون الأحمر.

تتحكم GPIO 1 - Channel 1 في اللون الأخضر وتتحكم القناة 2 في اللون الأزرق.

الخطوة 5: حظر الذاكرة

كتلة الذاكرة
كتلة الذاكرة
كتلة الذاكرة
كتلة الذاكرة
كتلة الذاكرة
كتلة الذاكرة

أضف Block Memory Generator IP إلى Block Design وقم بتكوينه كما هو موضح أعلاه. تتم كتابة ألوان البكسل على عناوين الذاكرة التي تتم قراءتها بعد ذلك بواسطة برنامج تشغيل VGA. يجب أن يتطابق سطر العنوان مع كمية البكسل المستخدمة ، لذا يجب أن يكون 16 بت. البيانات الموجودة في هي أيضًا 16 بت نظرًا لوجود 16 بتًا لونيًا. نحن لا نهتم بقراءة أي بتات.

الخطوة 6: عنوان IP آخر

يُظهر ملف pdf المرفق تصميم الكتلة المكتمل. أضف IP المفقود وأكمل الاتصالات. أيضًا "Make Externals" لمخرجات ألوان VGA ومخرجات المزامنة الرأسية والأفقية.

xlconcat_0 - يربط بين الألوان الفردية لتشكيل إشارة RGB واحدة 16 بت يتم تغذيتها في Block RAM.

xlconcat_1 - يربط إشارات العمود والصف من برنامج تشغيل VGA ويتم إدخالها في المنفذ B من Block RAM. هذا يسمح لبرنامج تشغيل VGA بقراءة قيم ألوان البكسل.

VDD - ثابت عالي متصل بتمكين الكتابة لذاكرة الوصول العشوائي Block RAM حتى نتمكن دائمًا من الوصول إليها.

xlslice_0، 1، 2 - تُستخدم الشرائح لتقسيم إشارة RGB إلى إشارات R و G و B فردية يمكن إدخالها في مشغل VGA.

بمجرد اكتمال تصميم القوالب ، قم بإنشاء غلاف HDL وأضف ملف القيود.

* يعتمد تصميم القوالب على البرنامج التعليمي الذي كتبه benlin1994 *

الخطوة 7: SDK

تم تضمين الكود الذي يقوم بتشغيل تصميم الكتلة هذا أدناه. يحتوي Init.c على الوظائف التي تتعامل مع الرسم (التنبؤات والأرقام ورمز الدرجة وما إلى ذلك). الحلقة الرئيسية في main.c هي ما يتم تشغيله عند برمجة اللوحة. تحدد هذه الحلقة قيم التنبؤ ودرجة الحرارة ثم استدعاء وظائف الرسم في init.c. وهو يتجول حاليًا في جميع التوقعات السبعة ويعرض واحدًا تلو الآخر. يوصى بإضافة نقطة فاصل عند السطر 239 حتى تتمكن من رؤية كل صورة. تم التعليق على الكود وسوف يعطيك المزيد من المعلومات.

الخطوة 8: الخاتمة

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

المشروع هو في الأساس نصف مرآة ذكية لأنه يفتقد جانب الاتصال بالإنترنت. إضافة هذا من شأنه أن يعطي مرآة ذكية كاملة.

موصى به: