विषयसूची:

यूएसबी एनईसी इंफ्रा-रेड ट्रांसमीटर और रिसीवर: 4 कदम (चित्रों के साथ)
यूएसबी एनईसी इंफ्रा-रेड ट्रांसमीटर और रिसीवर: 4 कदम (चित्रों के साथ)

वीडियो: यूएसबी एनईसी इंफ्रा-रेड ट्रांसमीटर और रिसीवर: 4 कदम (चित्रों के साथ)

वीडियो: यूएसबी एनईसी इंफ्रा-रेड ट्रांसमीटर और रिसीवर: 4 कदम (चित्रों के साथ)
वीडियो: खराब Remote फेंकों मत | Remote ठीक करने की सीक्रेट ट्रिक सीख लो | Remote repair | Remote not working 2024, जून
Anonim
यूएसबी एनईसी इंफ्रा-रेड ट्रांसमीटर और रिसीवर
यूएसबी एनईसी इंफ्रा-रेड ट्रांसमीटर और रिसीवर

यह प्रोजेक्ट एक अन्य प्रोजेक्ट का स्पिन-ऑफ है जिस पर मैं काम कर रहा हूं और चूंकि इंस्ट्रक्शंस पर रिमोट कंट्रोल 2017 प्रतियोगिता है, मुझे लगा कि मैं इस प्रोजेक्ट को पोस्ट कर रहा हूं। तो अगर आपको यह परियोजना पसंद है, तो कृपया इसे वोट करें। धन्यवाद।

जैसा कि आप जानते हैं, मैं माइक्रोचिप 8-बिट पीआईसी नियंत्रकों का बहुत बड़ा प्रशंसक हूं, देखें:

मैं जेएएल प्रोग्रामिंग भाषा का उपयोग करता हूं क्योंकि यह पास्कल की तरह दिखता है (जो मुझे भी पसंद है)। जेएएल कम्पाइलर और पुस्तकालयों को यहां से डाउनलोड किया जा सकता है: https://www.justanotherlanguage.org/downloads (नवीनतम जारी संस्करण के लिए नीचे स्क्रॉल करें)।

आम तौर पर मैं पूरी तरह से समझने के लिए सभी कोड लिखता हूं कि मैं क्या कर रहा हूं लेकिन इस परियोजना के लिए मुझे पीसी के यूएसबी पोर्ट से पीआईसी कनेक्ट करने की आवश्यकता है और इसलिए मुझे इस पीआईसी नियंत्रक के लिए एक जेएएल यूएसबी सीरियल ड्राइवर की आवश्यकता है। मैंने जेएएल डाउनलोड पैकेज में यूएसबी सीरियल ड्राइवर का इस्तेमाल किया जो ठीक काम करता प्रतीत होता है। चूंकि यह USB सीरियल ड्राइवर एक विशिष्ट PIC के लिए लिखा गया था, इसलिए मैंने उस PIC का उपयोग किया जो कि PIC18F14K50 है। इस नियंत्रक के पास इस परियोजना के लिए मेरी आवश्यकता से कहीं अधिक कार्यक्षमता है, इसलिए मैं वर्तमान में इस USB ड्राइवर को एक सरल PIC संस्करण, PIC16F1455 पर काम करने की प्रक्रिया में हूँ, जो कि सस्ता भी है।

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

चरण 1: एनईसी इंफ्रा-रेड प्रोटोकॉल के बारे में कुछ जानकारी

एनईसी इंफ्रा-रेड प्रोटोकॉल के बारे में कुछ जानकारी
एनईसी इंफ्रा-रेड प्रोटोकॉल के बारे में कुछ जानकारी

इस प्रोटोकॉल का संक्षिप्त परिचय। एनईसी इंफ्रा रेड रिमोट कंट्रोल प्रोटोकॉल का उपयोग कई उपकरणों और रिमोट कंट्रोल में किया जाता है जिन्हें आप खरीद सकते हैं। यह 38 kHz के वाहक पर एक इंफ्रा रेड सिग्नल को नियंत्रित करता है और तार्किक '1' और एक तार्किक '0' को एन्कोड करने के लिए पल्स दूरी एन्कोडिंग का उपयोग करता है। प्रोटोकॉल यह देखने के लिए एक साधारण जांच का उपयोग करता है कि क्या पता और कमांड बाइट और एक और एक ही संदेश में दोनों का एक उल्टा संस्करण भेजकर संदेश ठीक है और रिसेप्शन के बाद वे समान हैं या नहीं। जब रिमोट कंट्रोल पर एक बटन दबाया जाता है तो यह एक बार एड्रेस और कमांड के साथ एक पूरा इंफ्रा रेड संदेश भेजता है। बटन को दबाए रखने से पता और कमांड की जानकारी के बिना एक छोटा रिपीट संदेश भेजा जाएगा। बटन दबाए रखते हुए प्रेषित संदेशों का दोहराव समय निश्चित है।

उदाहरण के लिए एनईसी इंफ्रा रेड प्रोटोकॉल पर अधिक जानकारी यहां पाई जा सकती है:https://sibotic.files.wordpress.com/2013/12/adoh-n…

चरण 2: आवश्यक घटक

आवश्यक घटक
आवश्यक घटक
आवश्यक घटक
आवश्यक घटक

इस परियोजना के लिए आपके पास निम्नलिखित घटक होने चाहिए:

  • PIC माइक्रोकंट्रोलर PIC18F14K50, देखें:https://www.win-source.net/embedded-microcontrolle…
  • क्रिस्टल 12 मेगाहर्ट्ज
  • सिरेमिक कैपेसिटर: 2 * 100nF, 1 * 220 nF, 2 * 18pF
  • इलेक्ट्रोलाइटिक कैपेसिटर 47 यूएफ / 16 वी
  • इंफ्रा रेड रिसीवर TSOP4838, देखें:https://www.win-source.net/optical-sensors-photo-d…
  • प्रतिरोधक: 2 * 33k, 1 * 4k7, 1 * 1k, 3 * 330 ओम, 1 * 22 ओम
  • एल ई डी: 2 * इंफ्रा रेड, 1 एम्बर, 1 ग्रीन, 1 रेड
  • ट्रांजिस्टर BC640, देखें:https://www.win-source.net/transistorsbjt-single-b…
  • जम्पर (वैकल्पिक)
  • यूएसबी कनेक्टर

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

चरण 3: सॉफ्टवेयर और डिवाइस का संचालन

जैसा कि पहले ही उल्लेख किया गया है, सॉफ्टवेयर PIC18F14K50 के लिए लिखा गया है। यह JAL में लिखा गया था। आपके PIC की प्रोग्रामिंग के लिए Intel Hex फ़ाइल संलग्न है। सॉफ्टवेयर निम्नलिखित कार्य करता है:

  • एनईसी इंफ्रा-रेड संदेशों को डिकोड करना और इसे यूएसबी के माध्यम से पीसी पर भेजना। मैसेज को बिट स्ट्रीम से डिकोड किया जाता है जो इंफ्रा-रेड रिसीवर द्वारा उत्पन्न होता है और एड्रेस + कमांड मैसेज या रिपीट मैसेज में अनुवादित होता है।
  • यूएसबी के माध्यम से पीसी से प्राप्त एनईसी इंफ्रा रेड संदेश भेजना। ध्यान दें कि सॉफ्टवेयर 38 kHz वाहक आवृत्ति भी बनाता है जो सीधे इन्फ्रा-रेड एलईडी को चलाता है। इंफ्रा-रेड एलईडी के समानांतर एक एम्बर एलईडी को एक संदेश के प्रसारण को दृश्यमान बनाने के लिए जोड़ा जाता है।

डिफ़ॉल्ट रूप से यह सर्किट इंफ्रा-रेड संदेश के प्रसारण के दौरान इन्फ्रा-रेड रिसीवर को म्यूट कर देगा। यदि एक जम्पर को 'अनम्यूट' स्थिति पर रखा जाता है, तो यह इस म्यूट फ़ंक्शन को अक्षम कर देगा। उस स्थिति में प्रेषित इंफ्रा-रेड संदेश भी ट्रांसमिशन के समानांतर डिकोड किया जाएगा और पूर्ण स्वागत के बाद इसे पीसी पर प्राप्त इंफ्रा-रेड संदेश के रूप में भेजा जाएगा। यदि एक वैध एनईसी इंफ्रा-रेड संदेश प्राप्त होता है, तो लाल 'आईआर ओके' एलईडी प्रकाश करेगा।

इस उपकरण को संचालित करने के लिए आपके पास अपने पीसी पर एक टर्मिनल एमुलेटर प्रोग्राम होना चाहिए। मैंने इस उद्देश्य के लिए 'दीमक' का इस्तेमाल किया। जब डिवाइस पीसी से जुड़ा होता है, तो इसे स्वचालित रूप से विंडोज 10 द्वारा एक अतिरिक्त COM पोर्ट के रूप में पहचाना जाएगा क्योंकि विंडोज 10 में इस डिवाइस के लिए एक माइक्रोचिप ड्राइवर पहले से स्थापित है। इस COM पोर्ट की सेटिंग होनी चाहिए: 19200 बॉड 8 बिट, 1 स्टॉप-बिट, कोई समानता नहीं और RTS/CTS प्रवाह नियंत्रण का उपयोग करना। बॉड दर को जरूरत पड़ने पर किसी अन्य मूल्य पर सेट किया जा सकता है इसलिए 115200 की बॉड दर भी काम करेगी। एक बार जब डिवाइस को टर्मिनल एमुलेटर प्रोग्राम के माध्यम से यूएसबी पोर्ट के माध्यम से कनेक्ट करके कॉन्फ़िगर किया जाता है, तो ग्रीन 'कॉन्फ़िगर' एलईडी प्रकाश करेगा।

इन्फ्रा-रेड संदेश प्राप्त करना

जब एक इंफ्रा-रेड संदेश प्राप्त होता है, तो निम्नलिखित टर्मिनल एमुलेटर प्रोग्राम में प्रदर्शित किया जाएगा:

  • एक पूर्ण संदेश के मामले में 'ए: एक्सएक्स सी: एक्सएक्स', जहां एक्सएक्स पते (ए) और कमांड (सी) की हेक्साडेसिमल संख्या है। दोनों के लिए मान 0x00 (0) से 0xFF (255) तक हो सकते हैं।
  • दोहराए गए संदेश के मामले में 'दोहराएं'।

इन्फ्रा-रेड संदेश भेजना

इसके लिए मुझे एक प्रोटोकॉल को परिभाषित करने की आवश्यकता है जो डिवाइस को बताता है कि क्या करना है। चूंकि हम एक टर्मिनल एमुलेटर का उपयोग करते हैं इसलिए मैंने एक संदेश को परिभाषित करने के लिए ASCII वर्णों का उपयोग किया। डिवाइस को कमांड भेजने के लिए प्रोटोकॉल निम्नलिखित प्रारूप का उपयोग करता है: '!AACCRR#', जहां (सभी वर्ण केस असंवेदनशील हैं):

  • '!' संदेश की शुरुआत को इंगित करता है।
  • 'एए' हेक्साडेसिमल नोटेशन में पते का मान है इसलिए '0' से '9' और 'ए' से 'एफ',
  • 'CC' हेक्साडेसिमल नोटेशन में कमांड का मान है इसलिए '0' से '9' और 'A' से 'F'
  • 'आरआर' दोहराए जाने वाले संदेश की संख्या है जिसे हेक्साडेसिमल नोटेशन में प्रसारित करने की आवश्यकता है इसलिए '0' से '9' और 'ए' से 'एफ'। '00' के मान का मतलब है कि कोई रिपीट मैसेज नहीं भेजा गया है।

पता 0x07, कमांड 0x05 और 3 दोहराव वाले संदेश का एक उदाहरण टर्मिनल एमुलेटर प्रोग्राम पर निम्नानुसार टाइप किया जाना चाहिए: !070503#

पीसी से कमांड भेजे जाने के बाद डिवाइस की अलग-अलग प्रतिक्रियाएं होती हैं:

  • 'Y' का अर्थ है कि एक संदेश प्रेषित किया गया था। ध्यान दें कि यह प्रतिक्रिया सभी संदेशों के बाद दी जाती है - जिसमें सभी दोहराव शामिल हैं - प्रेषित किए जाते हैं, इसलिए इस प्रतिक्रिया को दिए जाने में कुछ समय लग सकता है जब कई दोहराने वाले संदेशों को प्रसारित करने की आवश्यकता होती है।
  • 'एन' का अर्थ है कि पीसी को भेजे गए संदेश में एक अवैध चरित्र था।
  • 'बी' का मतलब है कि इंफ्रा-रेड ट्रांसमिशन अभी भी व्यस्त था जब कमांड दिया गया था।
  • ?' का मतलब है कि डिवाइस '!' की उम्मीद कर रहा था लेकिन उसे कुछ और मिला।

चरण 4:

मैंने कार्रवाई में डिवाइस का एक छोटा वीडियो बनाया। इस वीडियो के लिए मैंने इसके रिमोट कंट्रोल के साथ एक वाणिज्यिक एलईडी लैंप का उपयोग किया ताकि यह देखा जा सके कि ट्रांसमिशन और रिसेप्शन दोनों काम करते हैं। वीडियो निम्नलिखित दिखाता है:

  • टर्मिनल इम्यूलेशन प्रोग्राम से यूएसबी डिवाइस को कॉन्फ़िगर करना। जब डिवाइस को कॉन्फ़िगर किया जाता है तो यह 'यूएसबी एनईसी इंफ्रा रेड ट्रांसमीटर और रिसीवर' संदेश के साथ प्रतिक्रिया करता है। डिवाइस पर ग्रीन एलईडी चालू है, यह दिखाते हुए कि डिवाइस पीसी द्वारा कॉन्फ़िगर किया गया था।
  • रिमोट कंट्रोल के साथ लैंप चालू है। इसके लिए रिमोट कंट्रोल एड्रेस 0x00 और कमांड 0x07 का उपयोग करता है जिसे डिवाइस द्वारा डिकोड किया जाता है और पीसी पर दिखाया जाता है।
  • रिमोट कंट्रोल से लैंप को बंद कर दिया जाता है। इसके लिए रिमोट कंट्रोल एड्रेस 0x00 और कमांड 0x06 का उपयोग करता है जिसे डिवाइस द्वारा डिकोड किया जाता है और पीसी पर दिखाया जाता है।
  • पीसी पर समान रिमोट कंट्रोल कमांड को 0 के रिपीट वैल्यू (नो रिपीट) के साथ टाइप करके लैंप को स्विच किया जाता है, इसलिए '!000700#' टाइप करके। दीपक चालू होता है।
  • पता 0x00 और कमांड 0x0A का उपयोग करके और 0x30 दोहराव का उपयोग करके दीपक के रंग को नीले रंग में बदलना। एम्बर एलईडी, जो इंफ्रा रेड एलईडी के समानांतर जुड़ा हुआ है, इंफ्रा रेड के माध्यम से रिपीट संदेश के प्रसारण को दिखाते हुए ब्लिंक कर रहा है। टाइप किया गया संदेश '!000A30#' है।

ध्यान दें कि इस वीडियो की रिकॉर्डिंग के दौरान जम्पर कनेक्शन 'अनम्यूट' सक्रिय था ताकि आप ट्रांसमिटेड संदेश '!000700#' भी देख सकें, जिसे टर्मिनल इम्यूलेशन प्रोग्राम पर 'ए: 00 सी: 07' के रूप में प्राप्त किया जा रहा है। नीले रंग के दीपक के डेमो में आप यह भी देख सकते हैं कि लाल एलईडी तब तक जलाया जाता है जब तक वैध - दोहराना - संदेश प्रसारित होते हैं क्योंकि वे दोहराए गए संदेशों के संचरण के समानांतर में प्राप्त और डीकोड किए जाते हैं।

अपनी खुद की परियोजना बनाने में मज़ा लें और आपकी प्रतिक्रियाओं की प्रतीक्षा करें। यदि आप इसे पसंद करते हैं तो रिमोट कंट्रोल 2017 प्रतियोगिता में इस परियोजना के लिए वोट करना न भूलें। एक बार फिर धन्यवाद।

सिफारिश की: