विषयसूची:

ATtiny85 आरएफ रिमोट कंट्रोल: 3 कदम
ATtiny85 आरएफ रिमोट कंट्रोल: 3 कदम

वीडियो: ATtiny85 आरएफ रिमोट कंट्रोल: 3 कदम

वीडियो: ATtiny85 आरएफ रिमोट कंट्रोल: 3 कदम
वीडियो: Small IR Remote Control Circuit Project using Attiny85 2024, जुलाई
Anonim
ATtiny85 आरएफ रिमोट कंट्रोल
ATtiny85 आरएफ रिमोट कंट्रोल

नोट: माई इंस्ट्रक्शनल "वर्चुअल हाई-एंड-सीक गेम" दिखाता है कि इस प्रकार के रिमोट का उपयोग RXC6 मॉड्यूल के साथ कैसे किया जाता है जो स्वचालित रूप से संदेश को डिकोड करता है।

जैसा कि मैंने पिछले निर्देश में उल्लेख किया है कि मैंने हाल ही में कुछ ATtiny85 चिप्स के साथ खेलना शुरू किया है। मेरे मन में प्रारंभिक परियोजना एक आरएफ रिमोट कंट्रोल बनाने की थी जो एक सिक्का बैटरी पर काम कर सके। मुझे एक कच्ची चिप के साथ जाने की आवश्यकता थी क्योंकि मेरे पास कोई भी Arduinos बहुत कम शक्ति और अपेक्षाकृत छोटे आकार की आवश्यकता दोनों को पूरा नहीं कर सकता है। एक संशोधित लिलीपैड करीब आया लेकिन चिप एक बेहतर जवाब है। विचार मौजूदा रिमोट की नकल करने के लिए इतना नहीं था, बल्कि यह दिखाने के लिए था कि आप अपना खुद का ट्रांसमीटर और रिसीवर सेट कैसे बना सकते हैं। एक मजेदार सीखने की परियोजना होने के अलावा, यह आपको अपना "गुप्त" कोड संयोजन बनाने की भी अनुमति देता है। मैंने उद्धरणों में "गुप्त" रखा है क्योंकि इन सरल कोडों को क्रैक करना बहुत आसान है।

चरण 1: आरएफ संदेश प्रारूप

आरएफ संदेश प्रारूप
आरएफ संदेश प्रारूप

इस परियोजना के लिए मैंने अपने Etekcity RF वायरलेस स्विच में से एक के लिए संकेतों को दोहराने के लिए चुना (उन मॉड्यूल पर मेरे निर्देश को देखें)। मैंने ऐसा इसलिए किया क्योंकि मैं यह सत्यापित करने में सक्षम था कि मेरा ट्रांसमीटर Etekcity रिसीवर के साथ काम करता है और मेरा रिसीवर Etekcity रिमोट के साथ काम करता है। मुझे यह भी पता चल गया है कि उन उपकरणों के लिए सही कोड और प्रारूप क्या हैं क्योंकि मैंने उन्हें पहले कैप्चर किया था। कोड कैप्चर स्केच के लिए मेरे "Arduino RF सेंसर डिकोडर" को देखें।

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

चरण 2: हार्डवेयर

हार्डवेयर
हार्डवेयर
हार्डवेयर
हार्डवेयर
हार्डवेयर
हार्डवेयर

ट्रांसमीटर एक कॉइन बैटरी (2032) पर चलता है इसलिए कम बिजली की खपत महत्वपूर्ण है। उनमें से अधिकांश सॉफ्टवेयर में पूरा किया जाता है लेकिन इस तथ्य से मदद मिलती है कि ATtiny85 आम तौर पर 1-मेगाहर्ट्ज आंतरिक घड़ी पर चलता है। नियम यह है कि कम घड़ी आवृत्तियों के लिए कम शक्ति की आवश्यकता होती है और 1-मेगाहर्ट्ज ट्रांसमीटर तर्क के लिए एकदम सही है।

वास्तविक आरएफ ट्रांसमीटर मॉड्यूल जो मैं उपयोग करना चाहता हूं वह एक FS1000A है जो आमतौर पर उपलब्ध है। यह 433-मेगाहर्ट्ज और 315-मेगाहर्ट्ज दोनों संस्करणों में आता है। सॉफ़्टवेयर परवाह नहीं करता कि आप किसका उपयोग करते हैं, लेकिन आपको यह सुनिश्चित करने की ज़रूरत है कि रिसीवर बोर्ड उसी आवृत्ति पर काम करता है। मेरी अधिकांश परियोजनाएं 433-मेगाहर्ट्ज उपकरणों का उपयोग करती हैं क्योंकि मेरे द्वारा जमा किए गए विभिन्न सस्ती वायरलेस उपकरणों द्वारा इसका उपयोग किया जाता है। चित्र में दिखाया गया ट्रांसमीटर बोर्ड लेआउट एक पुरानी गोली की बोतल में अच्छी तरह से फिट बैठता है। यह सुंदर नहीं है, लेकिन प्रूफ-ऑफ-कॉन्सेप्ट के लिए काफी अच्छा है।

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

जैसा कि मैंने अपने पहले के RF इंस्ट्रक्शंस में विस्तार से बताया है, मैं सामान्य RXB6 जैसे रिसीवर का उपयोग करना पसंद करता हूं। यह एक सुपर-हेटरोडाइन रिसीवर है जो आमतौर पर FS1000A ट्रांसमीटरों के साथ बंडल किए गए सुपर-रीजेनरेटिव रिसीवर्स की तुलना में बहुत बेहतर काम करता है।

ट्रांसमीटर और रिसीवर मॉड्यूल दोनों ही उचित एंटेना के साथ बेहतर काम करते हैं लेकिन उन्हें अक्सर आपूर्ति नहीं की जाती है। आप उन्हें खरीद सकते हैं (सही आवृत्ति प्राप्त करें) या आप अपना खुद का बना सकते हैं। 433-मेगाहर्ट्ज पर, सीधे तार एंटीना के लिए सही लंबाई लगभग 16 सेमी है। एक कुंडलित एक बनाने के लिए, लगभग 16 सेमी इंसुलेटेड, ठोस कोर तार लें और इसे एक परत में 5/32-इंच ड्रिल बिट शैंक की तरह लपेटें। एक छोर पर एक छोटे सीधे खंड के इन्सुलेशन को हटा दें और इसे अपने ट्रांसमीटर/रिसीवर बोर्ड से कनेक्ट करें। मैंने पाया है कि एक स्क्रैप ईथरनेट केबल से तार एंटेना के लिए अच्छा काम करता है। ट्रांसमीटर बोर्ड में आमतौर पर एंटीना को मिलाप करने की जगह होती है लेकिन रिसीवर बोर्ड में केवल पिन (जैसे RXB6) हो सकते हैं। बस सुनिश्चित करें कि यदि आप इसे मिलाप नहीं करते हैं तो कनेक्शन सुरक्षित है।

चरण 3: सॉफ्टवेयर

चिप को स्लीप मोड में डालने के लिए ट्रांसमीटर सॉफ्टवेयर सामान्य तकनीकों का उपयोग करता है। उस मोड में यह 0.2ua से कम करंट खींचता है। स्विच इनपुट (D1-D4) में आंतरिक पुल-अप प्रतिरोधक चालू होते हैं, लेकिन जब तक कोई स्विच दबाया नहीं जाता है, तब तक वे कोई करंट नहीं खींचते हैं। इनपुट को इंटरप्ट-ऑन-चेंज (IOC) के लिए कॉन्फ़िगर किया गया है। जब कोई स्विच दबाया जाता है, तो एक व्यवधान उत्पन्न होता है और यह चिप को जगाने के लिए बाध्य करता है। इंटरप्ट हैंडलर स्विच को डिबॉउंस करने की अनुमति देने के लिए लगभग 48msec देरी करता है। फिर यह निर्धारित करने के लिए एक जांच की जाती है कि कौन सा स्विच दबाया गया था और उपयुक्त दिनचर्या कहलाती है। प्रेषित संदेश कई बार दोहराया जाता है (मैंने 5 बार चुना)। यह वाणिज्यिक ट्रांसमीटरों के लिए विशिष्ट है क्योंकि वहाँ ४३३-मेगाहर्ट्ज और ३१५-मेगाहर्ट्ज पर बहुत अधिक आरएफ ट्रैफिक है। दोहराए गए संदेश यह सुनिश्चित करने में मदद करते हैं कि कम से कम एक रिसीवर तक पहुंच जाए।

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

सिफारिश की: