विषयसूची:

प्रोग्राम करने योग्य कीपैड: 5 चरण (चित्रों के साथ)
प्रोग्राम करने योग्य कीपैड: 5 चरण (चित्रों के साथ)

वीडियो: प्रोग्राम करने योग्य कीपैड: 5 चरण (चित्रों के साथ)

वीडियो: प्रोग्राम करने योग्य कीपैड: 5 चरण (चित्रों के साथ)
वीडियो: प्रोग्राम के शुरुआत स्टार्टिंग में सिर्फ ये एक नगमा बजाओ आपके प्रोग्राम का माहौल बन जायेगा Harmonium 2024, नवंबर
Anonim
प्रोग्राम करने योग्य कीपैड
प्रोग्राम करने योग्य कीपैड
प्रोग्राम करने योग्य कीपैड
प्रोग्राम करने योग्य कीपैड

इस प्रोजेक्ट में मैं दिखाऊंगा कि आपके सबसे अधिक उपयोग किए जाने वाले कीबोर्ड शॉर्टकट, एप्लिकेशन और बहुत कुछ मैप करने के लिए अपेक्षाकृत सरल और सस्ता प्रोग्राम योग्य कीपैड कैसे बनाया जाता है।

यह कीपैड सभी प्रमुख ओएस में कीबोर्ड के रूप में पाया जाता है, किसी अतिरिक्त ड्राइवर की आवश्यकता नहीं होती है।

आपूर्ति

  • रोटरी कोडित्र।
  • बहुत सारे (आपकी आवश्यकताओं पर निर्भर करता है) पुश बटन।
  • Arduino Pro Micro, Arduino लियोनार्डो या Atmega32U4 MCU के साथ कोई अन्य देव बोर्ड।
  • तार, सोल्डर, सोल्डरिंग आयरन इत्यादि।
  • (वैकल्पिक) कीपैड को फिसलने से रोकने के लिए कुछ भारी आधार, मैं पुराने 3.5" एचडीडी का उपयोग कर रहा हूं

चरण 1: विद्युत सर्किट

विद्युत सर्किट
विद्युत सर्किट

मैंने Atmega32U4 MCU के साथ Arduino Pro Micro dev बोर्ड का उपयोग करना चुना जिसमें 18 प्रयोग करने योग्य डिजिटल पिन हैं।

पुश बटन और रोटरी एनकोडर को जोड़ने के लिए पिन को बिना किसी विशेष क्रम को ध्यान में रखकर चुना गया था, लेकिन कुछ बातों पर ध्यान दिया जाना चाहिए:

  1. सभी डिजिटल रीड सक्षम पिन में आंतरिक पुल-अप होते हैं जो बाहरी पुल-डाउन प्रतिरोधों को कम करने की अनुमति देता है। बेशक कोड को तदनुसार अपडेट किया जाना चाहिए, क्योंकि यह उम्मीद करता है कि पुश बटन दबाए जाने पर पिन की स्थिति निम्न से उच्च हो जाएगी।
  2. एनकोडर.एच लाइब्रेरी उदाहरण में नोट किया गया है कि एनकोडर का सर्वश्रेष्ठ प्रदर्शन तब होता है जब एमसीयू से जुड़े दोनों पिन सक्षम पिनों को बाधित करते हैं। Atmega32U4 के अधिकांश एनालॉग पिन में इंटरप्ट क्षमता नहीं होती है।
  3. सटीक पुल-डाउन रोकनेवाला मान ज्यादा मायने नहीं रखता, 1 kΩ से 100 kΩ तक कुछ भी ठीक काम करेगा। बड़ा प्रतिरोध मान छोटे बिजली अपव्यय की अनुमति देता है लेकिन वोल्टेज परिवर्तनों के लिए धीमी पिन प्रतिक्रिया में परिणाम देता है। बस वही चुनें जो आपके पास सबसे अधिक मूल्य प्रतिरोधक हों।
  4. संपर्क पहनने और उछलने के कारण यांत्रिक एन्कोडर सबसे विश्वसनीय चीजें नहीं हैं। इसलिए एक अच्छे डिबगिंग समाधान की जरूरत है। मेरे चुने हुए कैपेसिटर मान और कोड में देरी का समय शायद आपके लिए सर्वोत्तम परिणाम प्रदान नहीं करेगा। इसलिए थोड़े से प्रयोग की जरूरत है। या ऑप्टिकल एन्कोडर जैसी किसी चीज़ पर स्विच करें, लेकिन इसकी कीमत काफी अधिक है।

चरण 2: विधानसभा

सभा
सभा
सभा
सभा
सभा
सभा
सभा
सभा

मैं कीपैड को यथासंभव साफ-सुथरा बनाना चाहता था, इसलिए मैंने प्रोटोटाइप बोर्ड के पीछे सभी घटकों को मिलाया। मुझे लगा कि कीपैड अधिक एर्गोनोमिक होगा यदि इसे छोटे कोण पर ऊंचा किया जाता है। इसलिए मैंने Arduino Pro Micro को अलग बोर्ड पर मिलाया और सभी डिजिटल पिन को वायर से पुश बटन से जोड़ा। यूएसबी केबल को इस तरह से कनेक्ट करना अधिक सुविधाजनक है।

मुझे कीपैड के लिए आधार के रूप में उपयोग करने के लिए पुराना 3.5 HDD मिला, यह काफी भारी है और संचालन के दौरान बोर्ड के रूप को डेस्क पर फिसलने से रोकता है (एंटी-स्लिप पैड भी मदद करता है)। इसके अलावा इसमें सुविधाजनक 3 मिमी स्क्रू छेद हैं जिसमें मैंने पीतल के स्टैंडऑफ को खराब कर दिया है और बोर्ड को मामूली कोण पर तय किया।

चरण 3: प्रोग्रामिंग

कोड Arduino IDE के साथ लिखा गया है। आपको 2 पुस्तकालय स्थापित करने की आवश्यकता होगी:

  • पॉल स्टॉफ्रेजेन द्वारा एनकोडर
  • Arduino द्वारा कीबोर्ड

Atmega32U4 के लिए संकलन करने के लिए आपको Arduino Pro माइक्रो बोर्ड फ़ाइल भी स्थापित करने की आवश्यकता है, स्पार्कफुन के पास यह करने के लिए बहुत अच्छा ट्यूटोरियल है।

पहले से ध्यान देने वाली एक बात यह है कि अपने कोड में "कुंजी दबाए गए" को न छोड़ें। यह मेरे साथ हुआ और एमसीयू लगातार कुछ प्रमुख प्रेस संयोजनों को स्पैम कर रहा था। जिस तरह से मुझे पता है कि इसे कैसे ठीक किया जाए, बूट-लोडर को एमसीयू में फिर से जलाना है। यदि आप मेरी तरह समाप्त हो जाएंगे, तो आप बूट-लोडर को जलाने के लिए इस गाइड का पालन कर सकते हैं, प्रोग्रामर के रूप में उपयोग करने के लिए आपको एक और आर्डिनो बोर्ड की आवश्यकता होगी।

मुख्य लूप में MCU पहले प्रत्येक पुश बटन स्थिति को पढ़ता है, यदि LOW से HIGH में राज्य परिवर्तन का पता चलता है, तो फ़ंक्शन कीबोर्ड_शॉर्टकट (i) निष्पादित होता है। चर मैं दबाए गए बटन की एक आईडी है, कुल पुश बटन संख्या ALL_BUTTONS (मेरे मामले में 15) द्वारा परिभाषित की गई है। निष्पादित होने पर, कीबोर्ड_शॉर्टकट (i) CTRL+SHIFT भेजता है और फिर एक अक्षर जो बटन आईडी पर मैप किया जाता है: 1->A, 2->B, 3->C आदि। कुछ संयोजन जैसे CTRL+SHIFT+N को छोड़ दिया जाता है क्योंकि यह पहले से ही विंडोज 10 में डिफ़ॉल्ट रूप से उपयोग किया जाता है (इस मामले में एक नया फ़ोल्डर बनाने के लिए)। यहां सभी डिफ़ॉल्ट विंडोज शॉर्टकट की सूची दी गई है। थोड़ी देर के बाद एमसीयू सभी चाबियों को छोड़ने के लिए सिग्नल भेजता है और फ़ंक्शन मुख्य लूप पर वापस निकल जाता है।

सभी बटनों की जांच के बाद, एमसीयू जांचता है कि क्या रोटरी एन्कोडर स्थिति बदल गई है और यदि ऐसा होता है, तो कीबोर्ड_शॉर्टकट (i) अद्वितीय आईडी के साथ निष्पादित होता है।

एनकोडर बटन प्रेस इनवर्ट्स एन्कोडरबटनफ्लैग बूलियन वैरिएबल। जब एन्कोडर को घुमाया जाता है तो रोटेशन दिशा और एन्कोडरबटनफ्लैग मान के आधार पर पीसी को अलग-अलग शॉर्टकट भेजे जाते हैं।

यदि डिबगफ्लैग को 1 डिबग संदेशों पर सेट किया जाता है तो यूएआरटी के माध्यम से सीरियल मॉनिटर को भेजा जाता है।

चरण 4: शॉर्टकट कॉन्फ़िगर करना

शॉर्टकट कॉन्फ़िगर करना
शॉर्टकट कॉन्फ़िगर करना
शॉर्टकट कॉन्फ़िगर करना
शॉर्टकट कॉन्फ़िगर करना

प्रत्येक शॉर्टकट क्या करता है, यह आप पर भी निर्भर करता है, हम सभी की अलग-अलग प्राथमिकताएँ होती हैं। मैं एक उदाहरण के रूप में अपने लिए कॉन्फ़िगर किए गए शॉर्टकट प्रदान करूंगा। मैं xfce4 डेस्कटॉप मैनेजर के साथ लिनक्स मिंट 19.3 का उपयोग कर रहा हूं, इसलिए मेरे उदाहरणों में मुख्य रूप से बैश स्क्रिप्ट शामिल हैं, लेकिन मैं विंडोज 10 के लिए भी कुछ बुनियादी उदाहरण दिखाऊंगा।

पहली तस्वीर में आप देख सकते हैं कि मैंने किन स्क्रिप्ट्स को किस शॉर्टकट से मैप किया है। यह xfce सेटिंग्स मेनू से किया गया है, इसके लिए प्रक्रिया सीधे आगे है। आप इन लिपियों को मेरे GitHub रिपॉजिटरी में पा सकते हैं

नीचे में छोटे 6 पुश बटन वेब ब्राउजर या फाइल मैनेजर जैसे एप्लिकेशन शुरू करने के लिए हैं, इनमें से कुछ एप्लिकेशन को start_only_one_app.sh स्क्रिप्ट से कहा जाता है, जो सभी शुरू किए गए एप्लिकेशन नाम प्राप्त करता है और उस एप्लिकेशन की खोज करता है जिसे आप शुरू करना चाहते हैं। यदि एप्लिकेशन विंडो पहले से मौजूद है तो यह फोकस हो जाता है, अन्यथा एप्लिकेशन का नया इंस्टेंस शुरू हो जाता है।

अन्य स्क्रिप्ट:

  • 2nd_display_control.sh - दूसरे मॉनिटर को चालू/बंद करता है।
  • Moon_lamp.sh - मेरे मून लैंप को चालू/बंद करता है।
  • pc_load.sh - वर्तमान सीपीयू और जीपीयू उपयोग और तापमान के साथ अधिसूचना बबल बनाता है।
  • शटडाउन.श - 1 मिनट की देरी से पीसी शटडाउन को इनिशियलाइज़ करता है और नोटिफिकेशन बबल बनाता है जिसमें शेष समय प्रदर्शित होता है।
  • spec_vpn.sh - विशिष्ट OpenVPN सर्वर से जुड़ता है या यदि कनेक्शन पहले से मौजूद है, तो सर्वर से डिस्कनेक्ट हो जाता है।
  • शॉर्टकट_कंट्रोल.श - कमांड (प्लस, माइनस, टैब, क्लोज़) को तर्क के रूप में लेता है, यह पता लगाता है कि अब कौन सी विंडो केंद्रित है और यदि विशिष्ट एप्लिकेशन सक्रिय पाया जाता है तो नियंत्रण क्रिया निष्पादित करता है। उदाहरण के लिए उदात्त पाठ संपादक में नया टैब खोलने के लिए डिफ़ॉल्ट शॉर्टकट "CTRL+N" है और xfce टर्मिनल में - "CTRL+T" है, इसलिए यह स्क्रिप्ट एक ही पुश बटन के साथ उदात्त और टर्मिनल में नया टैब खोलने की अनुमति देती है।

रोटरी एन्कोडर का पहला कार्य वॉल्यूम को नियंत्रित करना है, दूसरा कार्य शॉर्टकट_कंट्रोल.श के माध्यम से सक्रिय विंडो ज़ूम को नियंत्रित करना है।

विंडोज ओएस के लिए आप प्रोग्राम प्रॉपर्टीज विंडो के जरिए एप्लिकेशन के शॉर्टकट मैप कर सकते हैं जैसा कि दूसरी तस्वीर में दिखाया गया है। किसी और चीज के लिए आप AutoHotkey का उपयोग करना चाहेंगे। यह विंडोज़ के लिए ऑटोमेशन स्क्रिप्टिंग भाषा है।

AHK सिंटैक्स के कुछ सरल उदाहरण:

;ध्वनि नियंत्रण

^+t::भेजें {Volume_Up}

वापसी

^+v:: भेजें {Volume_Down}

वापसी

;सक्रिय विंडो बंद करें

^+h::WinGetTitle, शीर्षक, ए

पोस्टमैसेज, 0x112, 0xF060,, % शीर्षक%

वापसी

;पीसी बंद करो

^+बी::शटडाउन चलाएं /s

चरण 5: सुधार

सुधार
सुधार

कुछ संभावित सुधार:

  • बेहतर गुणवत्ता वाले पुश बटन।
  • जब बटन दबाया जाता है तो प्रोटोटाइप पीसीबी काफी फ्लेक्स करता है।
  • आरजीबी लाइटिंग रंग बदलने के लिए किस फ़ंक्शन के आधार पर रोटरी एन्कोडर सेट है।
  • अधिक बटन (IO विस्तारक IC का उपयोग करें)।
  • बेहतर रोटरी एनकोडर (या बेहतर डिबगिंग समाधान)।

सिफारिश की: