विषयसूची:

मिरर डिस्प्ले: 8 कदम
मिरर डिस्प्ले: 8 कदम

वीडियो: मिरर डिस्प्ले: 8 कदम

वीडियो: मिरर डिस्प्ले: 8 कदम
वीडियो: Mirror touch sensor light |Mirror light|Mirror backlight|mirror led #mirrorwork #mirror #mirrordecor 2024, जुलाई
Anonim
मिरर डिस्प्ले
मिरर डिस्प्ले
मिरर डिस्प्ले
मिरर डिस्प्ले
मिरर डिस्प्ले
मिरर डिस्प्ले

इस परियोजना का लक्ष्य एक स्मार्ट मिरर की छवि प्रदर्शन कार्यक्षमता बनाना है। दर्पण पूर्वानुमान (धूप, आंशिक रूप से धूप, बादल, हवा, बारिश, गरज और बर्फ) और तापमान मान -9999° से 9999° तक प्रदर्शित करने में सक्षम है। पूर्वानुमान और तापमान मूल्यों को हार्ड कोडित किया जाता है जैसे कि उन्हें मौसम एपीआई से पार्स किया जा रहा है।

परियोजना एक Zynq-Zybo-7000 बोर्ड का उपयोग करती है जो FreeRTOS चलाती है और हार्डवेयर को डिजाइन और प्रोग्राम करने के लिए Vivado 2018.2 का उपयोग करती है।

भाग:

Zynq-Zybo-7000 (फ्रीआरटीओएस के साथ)

19 एलसीडी (640x480)

वीजीए केबल

12 "x 18" एक्रिलिक दर्पण

चरण 1: विवाडो को कॉन्फ़िगर करना

विवाडो को कॉन्फ़िगर करना
विवाडो को कॉन्फ़िगर करना
विवाडो को कॉन्फ़िगर करना
विवाडो को कॉन्फ़िगर करना

Xilinx से Vivado 2018.2 डाउनलोड करें और Webpack लाइसेंस का उपयोग करें। विवाडो लॉन्च करें और "नया प्रोजेक्ट बनाएं" और इसे एक नाम दें। अगला "आरटीएल प्रोजेक्ट" चुनें और "इस समय स्रोत निर्दिष्ट न करें" चेक करें। किसी भाग का चयन करते समय, "xc7z010clg400-1" चुनें और अगले पृष्ठ पर "समाप्त करें" हिट करें।

चरण 2: पैकेजिंग वीजीए चालक आईपी

पैकेजिंग वीजीए चालक आईपी
पैकेजिंग वीजीए चालक आईपी
पैकेजिंग वीजीए चालक आईपी
पैकेजिंग वीजीए चालक आईपी

डिज़ाइन स्रोतों में vga_driver.sv फ़ाइल जोड़ें। अगला, "टूल्स" पर क्लिक करें और "नया आईपी बनाएं और पैकेज करें" चुनें। "अपनी वर्तमान परियोजना को पैकेज करें" चुनें। फिर एक IP स्थान चुनें और ".xci फ़ाइलें शामिल करें।" पॉपअप पर "ओके" पर क्लिक करें और फिर "फिनिश" पर क्लिक करें।

"पैकेजिंग स्टेप्स" पर "रिव्यू एंड पैकेज" पर जाएं और "पैकेज आईपी" चुनें।

अब vga_driver एक IP ब्लॉक के रूप में उपलब्ध होना चाहिए।

चरण 3: ज़िनक आईपी

ज़िनक आईपी
ज़िनक आईपी
ज़िनक आईपी
ज़िनक आईपी
ज़िनक आईपी
ज़िनक आईपी
ज़िनक आईपी
ज़िनक आईपी

"आईपी इंटीग्रेटर" अनुभाग के तहत, "ब्लॉक डिज़ाइन बनाएं" चुनें। "ZYNQ7 प्रोसेसिंग सिस्टम" जोड़ें और ब्लॉक पर डबल क्लिक करें। "XPS सेटिंग्स आयात करें" पर क्लिक करें और ZYBO_zynq_def.xml फ़ाइल अपलोड करें।

इसके बाद, "PS-PL कॉन्फ़िगरेशन" के अंतर्गत "AXI नॉन सिक्योर इनेबलमेंट" के लिए ड्रॉपडाउन खोलें और "M AXI GP0 इंटरफ़ेस" चेक करें।

इसके बाद, "एमआईओ कॉन्फ़िगरेशन" के तहत "एप्लिकेशन प्रोसेसर यूनिट" के लिए ड्रॉपडाउन खोलें और "टाइमर 0" और "वॉचडॉग" की जांच करें।

अंत में, "क्लॉक कॉन्फ़िगरेशन" के तहत "पीएल फैब्रिक क्लॉक" के लिए ड्रॉपडाउन खोलें और "FCLK_CLK0" और 100 मेगाहर्ट्ज पर चेक करें।

चरण 4: जीपीआईओ आईपी

जीपीआईओ आईपी
जीपीआईओ आईपी
जीपीआईओ आईपी
जीपीआईओ आईपी

ब्लॉक डिज़ाइन में दो GPIO ब्लॉक जोड़ें। GPIO का उपयोग पिक्सेल पते और पिक्सेल के RGB घटकों को नियंत्रित करने के लिए किया जाएगा। जैसा कि ऊपर की छवियों में दिखाया गया है, ब्लॉक को कॉन्फ़िगर करें। एक बार जब आप दोनों ब्लॉकों को जोड़ और कॉन्फ़िगर कर लेते हैं, तो "रन कनेक्शन ऑटोमेशन" पर क्लिक करें।

GPIO 0 - चैनल 1 पिक्सेल पते को नियंत्रित करता है और चैनल 2 लाल रंग को नियंत्रित करता है।

GPIO 1 - चैनल 1 हरे रंग को नियंत्रित करता है और चैनल 2 नीले रंग को नियंत्रित करता है।

चरण 5: मेमोरी को ब्लॉक करें

ब्लॉक मेमोरी
ब्लॉक मेमोरी
ब्लॉक मेमोरी
ब्लॉक मेमोरी
ब्लॉक मेमोरी
ब्लॉक मेमोरी

ब्लॉक डिज़ाइन में ब्लॉक मेमोरी जेनरेटर आईपी जोड़ें और ऊपर दिखाए अनुसार कॉन्फ़िगर करें। पिक्सेल रंग स्मृति पतों पर लिखे जाते हैं जिन्हें बाद में VGA ड्राइवर द्वारा पढ़ा जाता है। पता पंक्ति को उपयोग किए जा रहे पिक्सेल की मात्रा से मेल खाना चाहिए, इसलिए इसे 16 बिट्स की आवश्यकता है। इसमें डेटा भी 16 बिट का है क्योंकि 16 रंग बिट हैं। हम किसी भी पावती बिट को पढ़ने की परवाह नहीं करते हैं।

चरण 6: अन्य आईपी

संलग्न पीडीएफ पूर्ण ब्लॉक डिजाइन को दर्शाता है। लापता आईपी जोड़ें और कनेक्शन पूरा करें। साथ ही वीजीए कलर आउटपुट और वर्टिकल और हॉरिजॉन्टल सिंक आउटपुट के लिए "मेक एक्सटर्नल"।

xlconcat_0 - एक 16 बिट आरजीबी सिग्नल बनाने के लिए अलग-अलग रंगों को जोड़ता है जिसे ब्लॉक रैम में फीड किया जाता है।

xlconcat_1 - वीजीए ड्राइवर से कॉलम और रो सिग्नल को जोड़ता है और ब्लॉक रैम के पोर्ट बी में फीड किया जाता है। यह VGA ड्राइवर को पिक्सेल रंग मान पढ़ने की अनुमति देता है।

VDD - ब्लॉक रैम के राइट इनेबल से लगातार हाई जुड़ा हुआ है ताकि हम इसे हमेशा सही कर सकें।

xlslice_0, 1, 2 - स्लाइस का उपयोग आरजीबी सिग्नल को अलग-अलग आर, जी, और बी सिग्नल में तोड़ने के लिए किया जाता है जिसे वीजीए ड्राइवर में फीड किया जा सकता है।

एक बार ब्लॉक डिज़ाइन पूरा हो जाने के बाद, एक एचडीएल रैपर उत्पन्न करें और बाधा फ़ाइल जोड़ें।

*ब्लॉक डिजाइन benlin1994 द्वारा लिखित ट्यूटोरियल पर आधारित है*

चरण 7: एसडीके

इस ब्लॉक डिज़ाइन को चलाने वाला कोड नीचे शामिल है। Init.c में ऐसे कार्य होते हैं जो ड्राइंग (पूर्वानुमान, संख्या, डिग्री प्रतीक, आदि) को संभालते हैं। main.c में मुख्य लूप वह है जो बोर्ड के प्रोग्राम होने पर चलता है। यह लूप पूर्वानुमान और तापमान मान सेट करता है और फिर init.c में ड्रॉ फ़ंक्शन को कॉल करता है। यह वर्तमान में सभी सात पूर्वानुमानों के माध्यम से लूप करता है और एक के बाद एक प्रदर्शित करता है। यह अनुशंसा की जाती है कि आप पंक्ति 239 पर एक विराम बिंदु जोड़ें ताकि आप प्रत्येक छवि को देख सकें। कोड पर टिप्पणी की गई है और आपको अधिक जानकारी देगा।

चरण 8: निष्कर्ष

वर्तमान परियोजना को बेहतर बनाने के लिए, कोई व्यक्ति सीओई फाइलों के रूप में प्रीलोड पूर्वानुमान छवियों को ब्लॉक मेमोरी जेनरेटर में अपलोड कर सकता है। इसलिए पूर्वानुमानों को मैन्युअल रूप से चित्रित करने के बजाय जैसे हमने सी कोड में किया था, कोई भी छवियों को पढ़ सकता था। हमने ऐसा करने का प्रयास किया लेकिन इसे काम नहीं कर सका। हम पिक्सेल मानों को पढ़ने और उन्हें आउटपुट करने में सक्षम थे, लेकिन इसने गड़बड़ छवियां बनाईं जो कि हमारे द्वारा रैम पर अपलोड की गई छवियों की तरह कुछ भी नहीं थीं। ब्लॉक मेमोरी जेनरेटर डेटाशीट पढ़ने के लिए उपयोगी है।

यह परियोजना अनिवार्य रूप से आधा स्मार्ट मिरर है क्योंकि इसमें इंटरनेट कनेक्टिविटी पहलू नहीं है। इसे जोड़ने से एक संपूर्ण स्मार्ट मिरर मिलेगा।

सिफारिश की: