विषयसूची:
- चरण 1: प्रेरणा और समस्या
- चरण 2: बेसिस यूएसबी से कच्ची बिट जानकारी प्राप्त करना
- चरण 3: यूएसबी जानकारी को पार्स करना
- चरण 4: वीजीए पर चित्रित छवि प्रदर्शित करना और जो खींचा जा रहा है उसे संपादित करना
- चरण 5: अपनी रचना का आनंद लें
वीडियो: वीजीए पेंटिंग प्रोग्राम: 5 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:22
द्वारा परियोजना: एडम क्लेन, इयान स्ट्रेचन, ब्रैंडन स्लेटर
जिस प्रोजेक्ट को हमने पूरा करने के लिए निर्धारित किया था वह एक पेंटिंग प्रोग्राम के रूप में यूएसबी माउस से जानकारी को स्टोर, पार्स और प्रदर्शित करना था। परियोजना के पीछे का विचार माउस और वीजीए केबल्स को अपने अंतर्निर्मित बंदरगाहों में बेसिस बोर्ड में प्लग करने में सक्षम होना है, और माउस को मॉनीटर पर चलने योग्य पेंटिंग स्क्वायर के रूप में प्रदर्शित करना है, बाएं और दाएं क्लिक होने पर अलग-अलग रंग बदलते हैं उपयोग किया गया। संक्षेप में, हम बेसिस बोर्ड के साथ माउस का उपयोग करने के लिए एक ड्राइवर बना रहे होंगे, और मॉनिटर को हमारी कार्यक्षमता के सत्यापन के रूप में रखेंगे। वास्तव में जो हुआ वह एक इनपुट सिस्टम के रूप में बेसिस बोर्ड के साथ एक ड्राइंग प्रोग्राम का निर्माण और माउस के लिए एक अर्ध-कार्यात्मक डेटा कैप्चरिंग सिस्टम था।
इस निर्देश में, हम माउस इनपुट से वीजीए आउटपुट तक के चरणों को तोड़ेंगे।
चरण 1: प्रेरणा और समस्या
प्रेरणा:
हमारी परियोजना के लिए मुख्य प्रेरणा बेसिस3 बोर्ड के लिए एक माउस ड्राइवर बनाना था जिसे भविष्य के सीपीई 133 छात्र भविष्य में अपनी अंतिम परियोजनाओं के लिए उपयोग कर सकेंगे। हालाँकि, हमने इस विचार को एक पेंटिंग प्रोग्राम बनाकर एक कदम आगे बढ़ाया, जिसे भविष्य के छात्र भी बना सकते हैं।
संकट:
हमने जो समस्या खोजी वह यह थी कि बेसिस3 बोर्ड के लिए डाउनलोड करने और उपयोग करने के लिए कोई स्पष्ट माउस मॉड्यूल तैयार नहीं है। इस समस्या को हल करने के लिए, हमने स्वयं एक बनाने का प्रयास किया। ऐसा करके, हम एक माउस मॉड्यूल बनाने का प्रयास कर रहे थे जो भविष्य के छात्रों को अपनी परियोजनाओं में माउस इनपुट को अधिक आसानी से लागू करने की अनुमति देगा।
चरण 2: बेसिस यूएसबी से कच्ची बिट जानकारी प्राप्त करना
- इस प्रोजेक्ट में हमने माउस के लिए जो कुछ किया, वह बेसिस3 डॉक्यूमेंटेशन से आया है। उस पीडीएफ में बेसिस यूएसबी पोर्ट पर छोटे गाइड से, हमने पाया कि यूएसबी डिवाइस से बिट्स को सही गति से पढ़ने के लिए बेसिस बोर्ड में एक अंतर्निहित घड़ी है।
- अनिवार्य रूप से, माउस एक निष्क्रिय स्थिति से शुरू होने वाले यूएसबी को बिट्स भेजता है, 32 बिट्स को पति की स्थिति, एक्स स्थिति और वाई स्थिति का प्रतिनिधित्व करता है, और अंत में एक और निष्क्रिय बिट के साथ समाप्त होता है। ऐसा करने के लिए, माउस इनपुट घटक एक शिफ्ट रजिस्टर और 32 बिट काउंटर का उपयोग करता है जहां शिफ्ट रजिस्टर का उपयोग माउस से आने वाले डेटा के 32 बिट्स को स्टोर करने के लिए किया जाता है और 32 बिट काउंटर का उपयोग राज्य को अनुमति देने वाले बिट्स की संख्या को गिनने के लिए किया जाता है। 32 आने वाले बिट्स के अगले सेट को रीसेट और स्टोर करने के लिए रजिस्टर करें।
- शिफ्ट रजिस्टर, 32 बिट काउंटर और डेटा रीडर के लिए कोड नीचे डाउनलोड करने योग्य हैं, साथ ही इनपुट के रूप में यूएसबी पोर्ट के हमारे उपयोग के लिए अनुकूलित बाधा फ़ाइल भी है।
चरण 3: यूएसबी जानकारी को पार्स करना
- यूएसबी घटक के लिए माउस इनपुट बनाने के बाद, अगला कदम वेक्टर सूचना घटक के लिए यूएसबी बिट्स बनाना था जो माउस द्वारा प्राप्त डेटा को वीजीए के लिए पठनीय बना देगा।
- यह घटक एक राज्य मशीन का उपयोग करता है जो माउस इनपुट द्वारा यूएसबी में आउटपुट बिट्स के सेट में ले जाता है और राज्यों के माध्यम से चलता है कि क्या माउस की स्थिति और स्थिति को बदलने वाले नए बिट्स इनपुट किए गए थे।
- परियोजना के पहले दो चरणों के लिए ब्लॉक आरेख यहां दिखाया गया है, और दो वीएचडीएल फाइलें बेसिस एलईडी (एक परीक्षण जो दुर्भाग्य से कभी पारित नहीं हुआ था) का उपयोग करके माउस के कार्यान्वयन के परीक्षण के लिए और यूएसबी से बिट स्ट्रीम कास्टिंग करने के लिए हैं। पोर्ट टू स्पीड और पोजीशन वैक्टर जो वीजीए उपयोग कर सकता है।
- ऊपर दिए गए ब्लॉक आरेख के आगे की छवि इस चरण को पूरा करने के लिए बेसिस दस्तावेज़ में मिली बिट जानकारी का एक छोटा स्नैपशॉट है (निर्देश हमें पूर्ण विस्तृत छवि प्रदर्शित करने की अनुमति नहीं दे रहे हैं)।
चरण 4: वीजीए पर चित्रित छवि प्रदर्शित करना और जो खींचा जा रहा है उसे संपादित करना
- वीजीए केबल में आउटपुट के 14 बिट, तीन रंगों में से प्रत्येक के लिए 4 बिट और क्षैतिज सिंक और वर्टिकल सिंक के लिए थोड़ा सा है।
-
OtherVGA प्रदान किया गया VGA मॉड्यूल है और यह निम्नलिखित के रूप में कार्य करता है:
- जैसा कि ऊपर की तस्वीर में देखा गया है, 640x480 रिज़ॉल्यूशन स्क्रीन के लिए मॉनिटर 16x16 पिक्सल के 40x30 ब्लॉक में टूट गया है। मॉड्यूल मॉनिटर पर 1200 ब्लॉकों में से एक का प्रतिनिधित्व करने के लिए एक ब्लॉक पते का चयन करता है। ब्लॉक पता निम्नलिखित समीकरण के माध्यम से चुना जाता है: पता = 40y + x
- रंग को 12 बिट सिग्नल द्वारा दर्शाया जाता है जो एक RRRRGGGGBBBB मान से संबंधित होता है जो चयनित ब्लॉक को रंग देता है।
-
हमारा नियंत्रण कोड, VGAtest और VGAtestconst, निम्नलिखित के रूप में कार्य करता है:
- यह पहले चयनित ब्लॉक को मॉनिटर के केंद्र में सेट करता है।
- ब्लॉक का रंग बोर्ड पर 12 स्विच द्वारा निर्धारित किया जाता है, RRRRGGGGBBBB मान सेट करता है।
- बोर्ड पर चार दिशात्मक बटन चयनित पते को बदलते हैं। उदाहरण के लिए, दायां बटन दबाने से पते में 1 जुड़ जाएगा, पिछले ब्लॉक के दाईं ओर ब्लॉक एक का चयन करने पर। पिछले ब्लॉक के नीचे एक ब्लॉक का चयन करते हुए, डाउन बटन दबाने से पते में 40 जुड़ जाएंगे।
- केंद्र बटन का उपयोग सभी रंग मानों को दबाए जाने पर 0 पर सेट करने के लिए किया जाता है। यह एक मिटाए गए बटन के रूप में व्यवहार करने के लिए है जो उपयोगकर्ता के लिए उपयोग करना आसान है, इसलिए उपयोगकर्ता को मिटाने के लिए प्रत्येक स्विच को 0 पर फ़्लिप करने की आवश्यकता नहीं है।
- अंतिम छवि नियंत्रक के लिए ब्लॉक आरेख है। यह काफी चौड़ा है क्योंकि इसमें मॉड्यूल के घटक शामिल हैं और इसे पूरी तरह से प्रदर्शित नहीं किया जा सकता है।
चरण 5: अपनी रचना का आनंद लें
यहां लिंक किया गया है कि आप अंतिम प्रोजेक्ट के साथ मज़े का एक त्वरित समय-सारिणी कर सकते हैं, यहां तक कि बस इनपुट के रूप में बेसिस बोर्ड पर स्विच और बटन का उपयोग करने के साथ।
पढ़ने के लिए धन्यवाद!
सिफारिश की:
लाइट पेंटिंग की शुरुआत (कोई फोटोशॉप नहीं): 5 कदम (चित्रों के साथ)
बिगिनिंग लाइट पेंटिंग (कोई फोटोशॉप नहीं): मैंने हाल ही में एक नया कैमरा खरीदा है और इंटरनेट पर लाइट पेंटिंग, या लंबी एक्सपोजर फोटोग्राफी के दौरान इसकी कुछ विशेषताओं की जांच कर रहा था। हम में से अधिकांश लोगों ने सड़क वाले शहर में फोटो के साथ लाइटपेंटिंग का मूल रूप देखा होगा
अंतरिक्ष राक्षस - एक इंटरएक्टिव पेंटिंग: 8 कदम (चित्रों के साथ)
स्पेस मॉन्स्टर्स - एक इंटरएक्टिव पेंटिंग: "नहीं!" जब आप किसी पेंटिंग को छूना चाहते हैं? आइए एक ऐसा बनाएं जिसे आप छू सकें
वीजीए आउटपुट के साथ Arduino बेसिक पीसी: 5 कदम (चित्रों के साथ)
वीजीए आउटपुट के साथ अरुडिनो बेसिक पीसी: अपने पिछले इंस्ट्रक्शनल में मैंने दिखाया है कि कैसे दो Arduino के माध्यम से, और एक टीवी स्क्रीन के लिए B & W में आउटपुट सिग्नल के साथ BASIC पर चलने वाला एक रेट्रो 8-बिट कंप्यूटर बनाया जाए। अब मैं दिखाऊंगा कि एक ही कंप्यूटर कैसे बनाया जाता है, लेकिन आउटपुट सिग्नल के साथ
टाइगर पेंटिंग 3डी प्रिंटेड: 5 कदम
टाइगर पेंटिंग 3 डी प्रिंटेड: यह निर्देश एक बाघ की पेंटिंग को फिर से बनाने के लिए कला और 3 डी प्रिंटिंग को एक साथ जोड़ देगा। तरंग 3 फिलामेंट से बनी होती है: काला, सफेद और नारंगी। जिस तरह से यह काम करता है वह यह है कि आप कुछ परतों के बाद बाघ का एक stl प्रिंट करते हैं
DIY कॉपर स्टाइल एलईडी पेंटिंग इलुमिनेटर: 9 कदम (चित्रों के साथ)
DIY कॉपर स्टाइल एलईडी पेंटिंग इल्यूमिनेटर: क्या आपके पास एक पेंटिंग या एक तस्वीर है, जिसे आप रोशन करना चाहते हैं? एक पुराने, उबाऊ प्रकाश बल्ब का उपयोग क्यों करें, जब आप अधिक ऊर्जा कुशल प्रदीपक बना सकते हैं, यह अपने आप में एक कला है। कॉपर वास्तव में एक अच्छी दिखने वाली धातु है। यह शायद ही कभी आप