
यह सब मेरे लिए
मैकेनिकल कीबोर्ड के बारे में इस विषय के साथ शुरू हुआ, यह सीखने की इच्छा कि कैसे तेजी से टाइप करना है (मेरी शर्म की बात है, जब तक कि हाल ही में मैं दो उंगलियों के साथ प्रिंट नहीं करता था, प्रोग्रामिंग अनुभव के 25 साल के बावजूद), और एक कामकाजी दिन के बाद मेरे हाथों में हाल ही में अप्रिय उत्तेजना (और आम तौर पर समय कंप्यूटर पर खर्च)।
उन्होंने प्रोग्रामर और उन लोगों के लिए जो क्या टाइप करते हैं, इसका एक छोटा अध्ययन किया और
इस समीक्षा विषय को लिखा। मैंने
हैप्पी हैकिंग लाइट (झिल्ली स्विच के साथ एक न्यूनतम कीबोर्ड) खरीदा, लेकिन इस पर टाइप करना लैपटॉप पर टाइप करने की तुलना में बहुत कम सुविधाजनक था, मुख्यतः चाबियों के और भी अधिक कॉम्पैक्ट लेआउट के कारण।
जल्द ही एक विषय सामने आया, जिसमें लेखक
ने ट्रुली एर्गोनोमिक के बारे में
बात की थी , जिसे उन्होंने हाल ही में हासिल किया था, शायद, मेरे दृष्टिकोण से लगभग एक सही कीबोर्ड, लेकिन टिप्पणियों में लेखक ने कहा कि दो महीने के उपयोग के बाद
वह पूरी तरह से इसे स्विच नहीं
कर सका , और उसके हाथों की स्थिति बिल्कुल भी नहीं थी। विज्ञापन के
रूप में सुविधाजनक है ।
थोड़ी देर बाद, लेखक की
राय के अनुसार एक
विषय काइन्सिस एडवांटेज के बारे में सामने आया, जो कि उपयोग करने के लिए इतना आसान नहीं है, और कीमत सिर्फ डरावना है।
सर्वेक्षण
पहले विषय से लिंक के बाद, मैं कीबोर्ड प्रेमियों,
अमेरिकी और
यूरोपीय के प्रशंसकों की साइटों पर गया, जिस पर लोगों ने खरोंच से कीबोर्ड को समाप्त, रीमेड और बनाया। मैंने उनका अध्ययन किया, सब कुछ सीखा (मैं आपको इस विषय के बारे में बहुत कुछ बताऊंगा), आपको स्क्रैच से कीबोर्ड को इकट्ठा करने की क्या आवश्यकता है, सभी आवश्यक भागों और उपकरणों का आदेश दिया, और इंतजार किया।
आवश्यकताओं की सूची नीचे दी गई है, लेकिन अब मैं उन दो सबसे दिलचस्प एर्गोनोमिक कीबोर्ड परियोजनाओं के बारे में बात करूंगा जो मुझे मिलीं, और जिसने सोचा "मैं भी कर सकता हूं" मेरे सिर में चला गया।
BlueCube
एक प्लास्टिक कंपनी के लिए काम करने वाले शिल्पकार से
कीबोर्ड ।

ErgoDox
कीबोर्ड , जो
Key64 से विकसित हुआ,
DoxKB के
माध्यम से , और $ 200 की कीमत पर
बड़े पैमाने पर उत्पादन (हालांकि भागों से स्वयं-विधानसभा के साथ) के चरण तक पहुंच गया।

डिज़ाइन
पिछले अनुभाग के दोनों कीबोर्ड विशिष्ट कीबोर्ड से भिन्न होते हैं, जिसमें उनके पास काफी कम चाबियाँ होती हैं। यह संख्यात्मक कुंजियों के ब्लॉक, तीरों के ब्लॉक और फ़ंक्शन कुंजियों के ब्लॉक की अस्वीकृति के कारण किया जाता है। यह विचार करने योग्य है कि क्या वे अक्सर उपयोग किए जाते हैं, और क्या एफ 1 के बजाय एफएन -1 या कुछ अन्य कुंजी संयोजन को दबाया जाना असंभव है।
ब्लू क्यूब, एर्गोडॉक्स पर कुंजियों को यहां तक कि पंक्तियों में भी व्यवस्थित नहीं किया गया है। उसी कुंजी लेआउट का उपयोग ट्रूली एर्गोनोमिक, टाइपमैट्रिक्स, और कई अन्य कीबोर्ड में किया जाता है। यह दो कारणों से किया जाता है, सबसे पहले, उंगलियों की लंबाई में अंतर, मध्य एक आम तौर पर बाकी की तुलना में लंबा होता है, और छोटी उंगली छोटी होती है, और उन सभी के लिए एक पंक्ति में झूठ बोलना बहुत सुविधाजनक नहीं होता है। दूसरी बात यह है कि तेज़ दस-फिंगर प्रिंटिंग विधि का उपयोग करते समय, यदि आप सीरीज़ कीज़, F और J पर इंडेक्स कीज़ लगाते हैं, और बाकी की तरफ की चाबियाँ, एक्स कीज़ तक पहुँचने की कोशिश करते हैं, तो अपने बायें हाथ की रिंग फिंगर दूसरी उंगलियों, या बीच में बिना हिलाए C कुंजी तक हाथ। स्तंभों में भी कुंजियों को रखने से ये दोनों समस्याएं हल हो जाती हैं।
BlueCube में उपयोग किया जाने वाला एक अन्य महत्वपूर्ण बिंदु है, संशोधक कुंजियों का संयोजन जिसमें स्पेसबार, टैब आदि जैसी कुंजियाँ हैं। निम्नानुसार है: यदि कुंजी को अकेले दबाया जाता है, तो परिणामी वर्ण एक स्थान होता है, और यदि कुंजी को दबाया जाता है और उसी क्षण दबाया जाता है और फिर जारी किया जाता है, तो दूसरी कुंजी, उदाहरण के लिए 'q', तो पहली कुंजी को एक संशोधक के रूप में व्याख्या की जाती है, उदाहरण के लिए, Shift और जिसके परिणामस्वरूप चरित्र क्यू है।
यह भी ध्यान देने योग्य है कि अंगूठा, जो नियमित कीबोर्ड पर टाइप करते समय व्यावहारिक रूप से उपयोग नहीं किया जाता है, यहां अधिक शामिल है, माल्ट्रॉन और किनेसिस के कीबोर्ड के समान। हालांकि, अंगूठे के लिए चाबियों का ब्लॉक इतना सुविधाजनक नहीं लगता है कि एर्गडॉक्स (और माल्ट्रॉन और किनेसिस एडवांटेज पर), और ब्लूक्यूब पर, जहां उन्हें छोटी उंगली के आधार पर नीचे झुकना पड़ता है।
चूंकि कुछ भी मुझे वापस नहीं पकड़ रहा था कि कीबोर्ड कैसे दिखेगा, मैंने बस अपने हाथों को कागज़ पर रखने का फैसला किया और यह समझा कि मेरे लिए अपनी उंगलियों को बिना हाथ हिलाए बाहर निकालना सुविधाजनक होगा। अंत में, मुझे यह स्केच मिला:

जिसे मैंने तुरंत सदिश संपादक को हस्तांतरित कर दिया, लेकिन जिन कुंजियों पर मैंने प्रतीकों को लागू किया, उन्हें पारंपरिक रूप से कम या ज्यादा करके:

कुल मिलाकर, यह पता चला कि मेरी उंगलियां 50 कुंजी तक पहुंचती हैं, और ऐसा लगता है कि सभी आवश्यक चाबियाँ जगह में हैं (हालांकि हमेशा अपने दम पर नहीं, अगर आप पारंपरिक लेआउट के दृष्टिकोण से देखते हैं)। क्या पर्याप्त ५० कुंजियाँ होंगी, यह देखते हुए कि पारंपरिक कीबोर्ड पर १०४ कीज़ (चरम मामलों में,, कीज़, बिना नंबर की ब्लॉक वाली वेरिएंट में) हैं? एफएन संशोधक का उपयोग करना, यह संभव हो जाता है, क्योंकि अक्षरों और एफएन के संयोजन आमतौर पर उपयोग नहीं किए जाते हैं, और आप कुछ भी लटका सकते हैं जो उन पर फिट नहीं था, लेकिन किसी कारण के लिए आपको आवश्यकता होती है, उदाहरण के लिए, तीर, होम, एंड, PgUp और PgDn।
कलाई के नीचे के भूरे रंग के वर्ग नरम अस्तर का संकेत देते हैं।
संकेतक? मैं कैप्स लॉक का उपयोग नहीं करता हूं, कोई अलग डिजिटल ब्लॉक नहीं है, इसलिए मुझे या तो न्यूक्लॉक की आवश्यकता नहीं है, लेकिन स्क्रॉललॉक की कितनी आवश्यकता है, वे शायद जानते भी नहीं हैं। इसलिए मैं संकेतक झाड़ू लगा रहा हूं।
छोटी उंगली के नीचे चाबियों के ब्लॉक को थोड़ा भ्रमित करता है, अगर कोई और मेरे कीबोर्ड का उपयोग करने का फैसला करता है, तो उसकी छोटी उंगली मेरे सात-ऑक्टेव से कम हो सकती है, इसलिए मैंने छोटी उंगली मोड़ के तहत ब्लॉक बनाने का फैसला किया, जैसे कि, आंकड़े के अन्य कॉलम के समानांतर।
एक अन्य पहलू हाथों की प्राकृतिक स्थिति है, जो हथेलियों के नीचे की स्थिति के बजाय हथेलियों की ऊर्ध्वाधर स्थिति के करीब है, जिसके लिए हम सभी आदी हैं। यह उन कारणों में से एक है, जिनके कारण मैंने वास्तव में ट्रेजोन एर्गोनोमिक कीबोर्ड नहीं खरीदा और शांत नहीं हुआ। यह कीबोर्ड को दो हिस्सों में विभाजित करता है, जैसे कि काइनिस फ्रीस्टाइल और एर्गोडॉक्स के साथ ब्लू क्यूब, और झुका हुआ।
तो, योजना के अनुसार कीबोर्ड को द्विभाजित किया जाता है, कम संख्या में कुंजियों के साथ, अंगूठे ब्लॉक को स्थानांतरित करने के साथ, ऊर्ध्वाधर समान कॉलम के साथ, एक दूसरे के सापेक्ष लंबवत रूप से स्थानांतरित कर दिया जाता है, बाएं और दाएं ब्लॉक झुके हुए होते हैं (समायोज्य, क्योंकि विभिन्न स्रोत 15 से झुकने की सलाह देते हैं एक ऊर्ध्वाधर सतह के सापेक्ष 90 डिग्री, और संकेतक के बिना, छोटी उंगलियों के नीचे समायोज्य ब्लॉकों को स्लाइड करना।
विवरण
आपको क्या चाहिए इसकी एक छोटी सूची:
- कीबोर्ड स्विच;
- स्विच पर कैप;
- डायोड (उनकी आवश्यकता क्यों है - थोड़ी देर बाद);
- एक माइक्रोकंट्रोलर जो कीबोर्ड को यूएसबी डिवाइस होने की अनुमति देता है, और स्विच की स्थिति को पढ़ता है;
भुगतान
चूंकि मैं अपनी पहली कोशिश में एक मुद्रित सर्किट बोर्ड के त्रुटि-मुक्त डिज़ाइन के लिए बहुत कम के रूप में मौका का आकलन करता हूं, मुझे LUT और एक फोटोरसिस्ट के साथ कोई अनुभव नहीं है, एक एकल वॉल्यूम में कस्टम उत्पादन की कीमत अधिक है, मैंने एक माउंटेड वायरिंग बनाने का फैसला किया। सामग्री - पारंपरिक मुद्रित सर्किट बोर्डों में इस्तेमाल होने वाला टेक्स्टोलाइट। एक दोस्त, सौभाग्य से, शीसे रेशा की कई चादरें थीं, जिन्हें मैंने उधार दिया था। ठाठ सामग्री, उपयोग में आसानी के मामले में, केवल नीले बिजली के टेप से तुलनीय है।

माइक्रोकंट्रोलर
एआरएम नियंत्रकों के उज्ज्वल भविष्य के लिए मेरे
युवा उत्साह के बावजूद, मैंने फिर भी अधिक पारंपरिक एवीआर के आधार पर एक उपकरण चुना। इस एप्लिकेशन के लिए सबसे उपयुक्त में से, Atmega32u4 की पहचान की गई, ROM के 32KB के साथ, पर्याप्त संख्या में इनपुट-आउटपुट पोर्ट, USB स्लेव मोड में काम करना, और I
2 C. के माध्यम से भी संवाद करने में सक्षम। यह तथ्य कि कीबोर्ड बिना पारंपरिक प्रिंटेड सर्किट बोर्ड के जरूरी होगा। नियंत्रक को दूरस्थ बोर्ड पर ले जाएं, और मैंने सबसे कॉम्पैक्ट -
टेन्सी चुना।
एक ही निर्माता से भी
बहुत सारे विकल्प हैं, और यहां तक कि घरेलू
एनालॉग भी हैं, हालांकि किसी कारण से वे
अधिक महंगे हैं ।

स्विच
की-स्विच की पसंद केवल चेरी से यांत्रिक लोगों के बीच होती है, जो कि कीबोर्ड द्वारा कई लोगों के लिए जाना जाता है, और अब-अनुपलब्ध आल्प्स स्विच के कई चीनी क्लोन हैं।
चेरी ने स्विच की दो मुख्य लाइनें, लो-प्रोफाइल
चेरी एमएल , और आमतौर पर उपयोग किए जाने वाले
एमएक्स को निम्न
प्रमुख संस्करणों में लॉन्च किया:
- काला (रैखिक दबाने बल, मध्यम लोच, क्लिक नहीं करना);
- लाल (पिघला हुआ, प्रकाश, तड़क नहीं), गेमिंग कीबोर्ड में लोकप्रिय;
- ग्रे (स्पर्श, लोचदार, तड़क नहीं);
- पारदर्शी (स्पर्श, मध्यम लोच, तड़क नहीं);
- हरा (स्पर्श, मध्यम लोच, तड़क);
- नीला (स्पर्श, प्रकाश, तड़क);
- भूरा (स्पर्श, प्रकाश, तड़क);
- सफेद (स्पर्श, मध्यम लोच, मध्यम तड़क)।
अपनी व्यक्तिगत प्राथमिकताओं के आधार पर, मैंने पारदर्शी लोगों को पसंद किया।
इंस्टॉलेशन विधि में स्विच अलग-अलग होते हैं। एक मुद्रित सर्किट बोर्ड पर बढ़ते के लिए और एक अतिरिक्त प्लेट पर बढ़ते के लिए एक विकल्प है। पूर्व में अधिक स्थिरता के लिए दो अतिरिक्त स्तंभ हैं, जबकि बाद वाले को स्थिरता के लिए एक अतिरिक्त प्लेट की आवश्यकता होती है। पहला विकल्प इस अतिरिक्त प्लेट में भी तड़क सकता है।
एमएक्स के कई और संशोधन हैं, लेकिन यह उन हिस्सों में से एक है जो खरीद करने के लिए इतना आसान नहीं है, या इतना सस्ता नहीं है, विशेष रूप से कम मात्रा में, और बहुत लोकप्रिय संशोधनों में नहीं - और इससे भी ज्यादा। Ebay पर, वे उन्हें लगभग $ 4 के लिए बेचते हैं, इलेक्ट्रॉनिक घटक आपूर्तिकर्ताओं के पास बहुत कम विकल्प हैं। यह बहुत अच्छा है कि वे कीबोर्ड मंचों पर समूह खरीद का आयोजन करते हैं, और मैं उनमें से एक में फिट बैठता हूं। दुर्भाग्य से, मुझे या तो इंतजार करना था या क्या था, और मैंने एक मुद्रित सर्किट बोर्ड पर स्थापना के साथ संस्करण में नीले वाले (लाल, भूरे और नीले रंग से चुनना) लिया।

टोपियां
शुरू में, मैं कुछ पुराने मैकेनिकल कीबोर्ड खरीदना चाहता था, उसमें से स्विच हटाकर कैप निकालता था, लेकिन मुझे कुछ भी सार्थक नहीं लगा।
नए खरीदने के बाद से - इसलिए चुनें। WASD कीबोर्ड एक
अच्छा विकल्प है , मैंने अलग-अलग कुंजी लेने की कोशिश करने का फैसला किया, और अल्फाबेट ब्लॉक की 39 चाबियों का एक सेट लिया, और परीक्षण के लिए दो रंग कुंजी, जो कि क्लिक करने के प्रभाव को कम करने के लिए कुंजी डैम्पर्स के साथ आते हैं (बजाय बोर्ड पर कैप के प्रभाव को कम करने के लिए आते हैं) आंतरिक स्विच का प्रभाव)। इसके अलावा बड़ी चाबियों की जरूरत है, और मैंने कुछ चाबियाँ लीं, आमतौर पर अलग-अलग रंगों में टैब (1.5x), Alt (1.25x) और कैप्स लॉक (1.75x) के रूप में उपयोग किया जाता है।
आजकल, बेलनाकार शंकु मुख्य रूप से उपयोग किए जाते हैं, जिसमें कुंजियों की प्रत्येक पंक्ति का अपना प्रोफ़ाइल होता है।

मेरे पास अपने सेट में संख्या रेखा E से एक भी कुंजी नहीं है:


डायोड
डायोड, अर्थात् 50 पीसी। डीओ -35 मामले में 1N4148, जो इलेक्ट्रॉनिक उपकरणों की बिक्री करने वाले स्थानीय सुपरमार्केट की तुलना में इंग्लैंड से डिलीवरी के साथ खरीदना आसान और सस्ता हो गया।
वयस्कों के लिए लेगो
भागों और उपकरण।

ख़ाका
लोहा
व्यर्थ में समय बर्बाद नहीं करने के लिए, मैंने एक मॉडल को एक साथ रखने और अपने हाथों से छूने का फैसला किया, यह सब क्या हो सकता है और अगर इस तरह के एक मध्यवर्ती परिणाम पसंद नहीं आया तो समय बर्बाद न करें। यहाँ मुझे क्या मिला है:

हाथ (बाएं, मैंने फिटिंग जूते के सिद्धांत से आगे बढ़ने का फैसला किया) आराम से झूठ बोलता है, सभी चाबियों तक पहुंचता है। संकल्प किया, जारी रखा।
माइक्रोकंट्रोलर
टेनेसी वायर्ड फर्मवेयर के साथ आता है जिसे "चमकती रोशनी" कहा जाता है। हैरानी की बात है, जब आप इसे यूएसबी केबल के साथ कंप्यूटर से जोड़ते हैं, तो छोटा डायोड वास्तव में झपकी लेना शुरू कर देता है। उदाहरण के लिए साइट पर एक और फर्मवेयर है, जिसे "तेज चमकती रोशनी" कहा जाता है, मैंने इसे डाउनलोड किया और इसे डिवाइस पर डाला, और प्रकाश वास्तव में तेजी से फ्लैश करना शुरू कर दिया। मूल भरा - फिर से धीमा। खैर, यह बहुत अच्छा है, एक स्ट्रोब पहले से ही किया जा सकता है।
"USB कीबोर्ड" नामक साइट से एक उदाहरण के स्रोत कोड के साथ छोटे स्मैश होते हैं, और हर 8 सेकंड में स्क्रीन पर एक स्पेस कैरेक्टर प्रिंट होता है, और जब जीएनडी किसी भी इनपुट के साथ बंद हो जाता है, तो स्क्रीन पर पोर्ट और लेग नंबर को इंगित करते हुए दो अक्षर दिखाई देते हैं, उदाहरण के लिए बी 1। वर्तमान तिरछा है - 135 μA। एक और शुभकामना।
सिद्धांत
25 I / O पोर्ट के साथ माइक्रोकंट्रोलर के लिए 50 (और दो बार से अधिक पारंपरिक कीबोर्ड पर) कनेक्ट करने के लिए कैसे, एक माउस जैसी चीजों के लिए कुछ छोड़कर?
सब कुछ काफी सरल है, आपको मैट्रिक्स बनाते हुए, पंक्तियों और स्तंभों में कुंजियों को वितरित करने की आवश्यकता है। कॉलम ए के लिए वोल्टेज लागू करके, और पंक्तियों 2 और 3 से इस वोल्टेज को हटाकर, हम समझ सकते हैं कि अब इन पंक्तियों के चौराहे पर चाबियाँ और यह कॉलम दबाए गए राज्य में हैं। वोल्टेज को बदले में वक्ताओं को आपूर्ति की जाती है। इस प्रकार, मोटे तौर पर, आपको चाबियाँ की संख्या के बराबर इनपुट / आउटपुट पोर्ट की संख्या की आवश्यकता नहीं है, बल्कि इस संख्या का वर्गमूल है, मेरे मामले में - 8x7, यानी 8 आउटपुट और 7 इनपुट (या इसके विपरीत)।
हालाँकि, इस पद्धति में एक गंभीर खामी है, जो अवरुद्ध और क्लिकों के नुकसान में स्वयं प्रकट होती है:

इस आंकड़े में, यह देखा जा सकता है कि जब डब्ल्यू, ई और डी कुंजी दबाए जाते हैं, और जब वोल्टेज को कॉलम बी पर लागू किया जाता है, तो एस कुंजी विफल हो जाती है। डायोड को इस घटना का मुकाबला करने के लिए कहा जाता है: और।

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


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

मैट्रिक्स में कॉलम और पंक्तियाँ कुंजियों के अनुरूप हैं, अंगूठे ब्लॉक की चाबियाँ चौथी पंक्ति हैं।
हम इस कॉलम के स्विच के सभी आने वाले पैरों के लिए कॉलम से वोल्टेज लागू करते हैं। स्विच के आउटपुट पैर से - डायोड के एनोड तक। स्ट्रिंग में सभी स्विच के कैथोड से आउटपुट जुड़े हुए हैं, और स्ट्रिंग के इनपुट से जुड़े हैं।
कीबोर्ड के दाहिने आधे हिस्से के लिए, 6 आउटपुट और 4 इनपुट की आवश्यकता होती है, बाईं ओर - 6 और आउटपुट, और इनपुट का उपयोग एक ही किया जा सकता है। परिणाम एक 12x4 मैट्रिक्स है, कुल 18 इनपुट और आउटपुट के रूप में, जो कुछ हद तक अनौपचारिक है। मैं 6 बाई 8 मैट्रिक्स का उपयोग करूंगा, जो कि कीबोर्ड के एक आधे हिस्से के रूप में कल्पना करना आसान है, जो बाईं ओर स्थित नहीं है, लेकिन दूसरे के नीचे, जिसके परिणामस्वरूप 14 I / O पोर्ट हैं।
यह पता चला है कि कीबोर्ड के बाएं आधे हिस्से में 10 कोर का नेतृत्व करने की आवश्यकता होगी। मेरे द्वारा खरीदा गया पिन कनेक्टर केवल 10 कोर हैं, और वे बिल्कुल पर्याप्त हैं।
नियंत्रक पर पैर दो मोड में हो सकते हैं: इनपुट या आउटपुट। इनपुट खुला हो सकता है, इस मामले में, यदि इसे बंद नहीं किया जाता है, तो यह शोर कर सकता है, और इसे अंतर्निहित पुल-अप रोकनेवाला के साथ मोड में रखना बेहतर होता है, ताकि अगर इसे जमीन पर छोटा न किया जाए, तो यह हमेशा 1 स्थिति में होगा। हम आउटपुट सेट करते हैं। डिफ़ॉल्ट स्थिति 5V है, और एक विशिष्ट कॉलम को पढ़ते हुए हम इसे 0V तक कम कर देते हैं, ताकि जब यह इनपुट के साथ बंद हो जाए, तो बाद वाला राज्य 0 पर चला जाता है, जिसका अर्थ है एक बटन दबाना। यह कनेक्शन विकल्प उस फॉर्म में कुछ गलतफहमी की ओर जाता है जो इनपुट से आउटपुट तक वर्तमान "प्रवाह" करता है।
अन्य कनेक्शन विकल्प हैं जहां सब कुछ अधिक या कम तार्किक है, लेकिन वे अतिरिक्त बाहरी तत्व प्रदान करते हैं, जैसे सभी आउटपुट के लिए एक या कई बाहरी प्रतिरोधक (एडीसी के माध्यम से पढ़ने के साथ बंदरगाहों को बचाने के लिए), लेकिन यह मुझे लगता है कि यदि कोई नियंत्रक पर्याप्त है बंदरगाहों की संख्या से, उन्हें खुद से सामना करना होगा कि उनके पास एक पैर कैसे है जहां वे बंद हैं, इसलिए - सबसे आसान विकल्प, हालांकि पहली नज़र में यह सबसे समझ में नहीं आता है।
टेनेसी पर माइक्रोकंट्रोलर के पैर सभी प्रदर्शित नहीं होते हैं, लेकिन जो प्रदर्शित होते हैं वे अलग-अलग होते हैं। "ठोस" बंदरगाहों में से, केवल बी आंशिक रूप से व्युत्पन्न हैं - एफ (कोई पैर F2, एफ 3), डी (बोर्ड के निचले छोर पर दो पैर, पैर नहीं हैं, और दो और I I C, C के साथ संयुक्त हैं (केवल पैर C6 हैं) और सी 7)।
माइक्रोकंट्रोलर पर हम पैर PF0, PF1, PC6, PC7, PF4-PF7 का उपयोग करते हैं जो हम आउटपुट के लिए उपयोग करते हैं, PB0-PB5 इनपुट के लिए (पुल-अप रोकनेवाला के साथ)। I
2 C के तहत पैर PD0 और PD1 को छोड़ दें, जो माउस / ट्रैकपॉइंट को जोड़ने के लिए बाद में काम आएगा। हम PD6 लेग को स्पर्श नहीं करते हैं, क्योंकि यह बोर्ड पर स्थित एलईडी से जुड़ा होता है, जिसे इस लेग को आपूर्ति की जाने वाली धारा द्वारा संचालित किया जा सकता है और वोल्टेज को 5V से ~ 1.7V तक कम किया जा सकता है।
लोहा
भुगतान
Textolite उस पर प्रवाहकीय प्रवाह नक़्क़ाशी के लिए करना है। चूंकि मेरे मामले में यह आवश्यक नहीं है, इसलिए पन्नी को इससे निकालना होगा। यह करना इतना आसान नहीं है, क्योंकि यह बहुत मोटा और मजबूत है कि हम सभी को चॉकलेट से निकालने के लिए उपयोग किया जाता है।
शुरुआत से ही मुश्किल है - इस पन्नी के कोने को हुक करने के लिए, फिर, यदि आप इसे मोटी धारियों के साथ शूट करते हैं, तो आपको बहुत अधिक बल लगाना पड़ता है, लेकिन अगर पतली - टूटने का प्रयास करता है, और आपको कोने के लिए फिर से खोजना होगा। मैं एक काफी सरल तरीके की पहचान करने में सक्षम था: एक कोण से हुक करने के लिए, और बोर्ड के केंद्र में एक सर्पिल में 1-1.5 सेमी की एक सीसा।
दिलचस्प पैटर्न टेक्स्टोलिट पर बने रहते हैं, जिससे आपको यह समझने में मदद मिलती है कि पन्नी को कैसे हटाया गया था।
मैं अत्यधिक दस्ताने पहनने और पेस्टर्स के साथ पन्नी उतारने की सलाह देता हूं, अन्यथा खरोंच अपरिहार्य हैं।बोरिंग
मैंने एक स्केच बनाया कि बोर्ड (बोर्डों) पर स्विच कैसे स्थित होना चाहिए, क्योंकि यह कम से कम 4 टुकड़े निकलता है, और पीसीबी पर बेहतर लेआउट के लिए, 6 टुकड़े के रूप में)। उन्हें इस पर तय करने के लिए, बोर्ड को ड्रिल करने की आवश्यकता है। प्रत्येक स्विच के लिए 7 छेद, दो 0.8 मिमी, दो 1.2 मिमी, दो 1.6 मिमी और एक केंद्रीय 4 मिमी हैं।
प्रिंटआउट पर तुरंत ड्रिलिंग करना बहुत सुविधाजनक नहीं है, इसलिए मैंने मोबाइल फोन के पुराने एल्यूमीनियम बैक कवर से एक स्टैंसिल बनाया:

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


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


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


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



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



धागा
बोर्डों को 6 टुकड़ों की आवश्यकता होती है। सैद्धांतिक रूप से, दो बनाना संभव था, लेकिन 1) टेक्टोलाइट के टुकड़ों का आकार 2 की अनुमति नहीं देता है) अगर ऐसा किया भी है, तो यह बहुत ही किफायती नहीं होगा 3) विधानसभा के दौरान एक दूसरे के सापेक्ष बोर्डों की स्थिति के साथ खेलना संभव है।


बोर्ड कनेक्शन
कीबोर्ड के हिस्सों के बीच तारों को खींचने के लिए नहीं करने के लिए, मैंने उन हार्डॉप्स का उपयोग किया जो हार्ड ड्राइव को मदरबोर्ड से कनेक्ट करने के लिए उपयोग किए जाते थे, केवल कम कोर और आईडीसी / बीएच कनेक्टर के साथ। बेशक, यह एक मुड़ जोड़ी का उपयोग करने के लिए अधिक सही होगा, लेकिन मुझे 8 से अधिक तारों की आवश्यकता है, और 8P8C कनेक्टर भी कॉम्पैक्ट नहीं है (और 10P10C और 10-तार मुड़ जोड़ी को ढूंढना इतना आसान नहीं है)। एक अन्य विकल्प I
2 C बस पर I / O पोर्ट मल्टीप्लेकर का उपयोग करना होगा, लेकिन मैंने इस सुधार को स्थगित करने का निर्णय लिया।
वैसे, कोने के आईडीसी कनेक्टर और सीधे मैं पूरी तरह से अलग हो गया। सीधे किसी भी तरह से मिलाप नहीं किया, और पैर थोड़ी सी हीटिंग पर उसमें से बाहर गिर गए, और कोने को अच्छी तरह से मिलाया गया। बाह्य रूप से, वे अलग नहीं थे।

टांकने की क्रिया
मैं सोल्डरिंग के बारे में एक बात कह सकता हूं - यह मेरा शौक नहीं है। धीरे-धीरे, लेकिन यह काम करता है।

प्रविष्टि
पंख परीक्षण
इसलिए, मुझे कीबोर्ड का एक टुकड़ा मिला है, और यह जांचने का समय है कि क्या यह सब मेरी उम्मीद के अनुसार काम करता है।
Teensy कीबोर्ड और माउस विकल्पों में USB HID (ह्यूमन इंटरफेस डिवाइस) सहित कई उदाहरणों के साथ आता है। फर्मवेयर इन उदाहरणों में से पहला हो गया है।
मूल उदाहरण में, गणना इस तथ्य पर आधारित है कि इनपुट जमीन पर स्विच द्वारा बंद किए जाते हैं, और मैट्रिक्स कनेक्शन के साथ, सब कुछ थोड़ा अलग होता है, वोल्टेज समय-समय पर पैरों के हिस्से पर लागू होता है, और इस अवधि के दौरान अन्य पैरों की स्थिति पढ़ी जाती है। आउटपुट के रूप में काम करने के लिए पैरों के लिए, आपको उन्हें इस मोड में स्थानांतरित करना होगा।
सामान्य तौर पर, आदेश निम्नानुसार है: बंदरगाहों और यूएसबी को इनिशियलाइज़ करें; चक्र में, वैकल्पिक रूप से आउटपुट पर वोल्टेज लागू करते हैं, इनपुट्स को पढ़ते हैं, अगर इनपुट पर मान दबाए गए कुंजी से मेल खाता है, और पिछले पढ़ने के चक्र में इसे दबाया नहीं गया था - यूएसबी के माध्यम से कुंजी कोड भेजें।
मैं सी में एक बड़ा विशेषज्ञ नहीं हूं, और जब मैक्रोज़ में खुदाई करने की बात आती है, तो मैं थोड़ा खो गया हूं, इसलिए कोड थोड़ा अनाड़ी हो सकता है, लेकिन सामान्य अर्थ को व्यक्त करना चाहिए:
अंग्रेजी में टिप्पणी करने की मेरी आदत के लिए पाठक को क्षमा करें।
फर्मवेयर कोड # अलग करना <avr / io.h>
#include <avr / pgmspace.h>
# किंकर्तव्यविमूढ़ <avr / interf.h>
# # का उपयोग करें </ देरी
#include "usb_keyboard.h"
#define CPU_PRESCALE (n) (CLKPR = 0x80, CLKPR = (n))
uint8_t मैट्रिक्स [8] [8] = {
/ * B0 * / {KEY_TILDE, KEY_Q, 0, 0, KEY_W, KEY_E, KEY_R, KEY_T}, // शीर्ष पंक्ति
/ * B1 * / {KEY_SLASH, KEY_A, 0, 0, KEY_S, KEY_D, KEY_F, KEY_G}, // होम रो
/ * B2 * / {KEY_LEFT_BRACE, KEY_Z, 0, 0, KEY_X, KEY_C, KEY_V, KEY_B}, // निचला पंक्ति
/ * B3 * / {0 / * Fn * /, KEY_ENTER, 0, 0, KEY_TAB, KEY_ESC, KEY_SPACE}
/ * B6 * / {KEY_Y, KEY_U, 0, 0, KEY_I, KEY_O, KEY_P, KEY_EQUAL}, // शीर्ष पंक्ति
/ * B5 * / {KEY_H, KEY_J, 0, 0, KEY_K, KEY_L, KEY_SEMICOLON, KEY_QUOTE}, // होम रो
/ * B4 * / {KEY_NM, KEY_M, 0, KEY_COMMA, KEY_PERIOD, KEY_SLASH, KEY_RIGHT_BRACE}, // निचला पंक्ति
/ * D7 * / {KEY_SPACE, KEY_ESC, 0, 0, KEY_TAB, KEY_ENTER, 0 / * Fn * /}
};
इंट मेन (शून्य)
{
uint8_t राज्य = 0, prev_state [8] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
setup_pins_and_usb ();
जबकि (1) {
// B0
PORTB = 0b11111110;
_delay_ms (5);
राज्य = पिनएफ;
read_row (स्थिति, prev_state [0], मैट्रिक्स [0]);
prev_state [0] = राज्य;
// बी 1
PORTB = 0b11111101;
_delay_ms (5);
राज्य = पिनएफ;
read_row (स्थिति, prev_state [1], मैट्रिक्स [1]);
prev_state [1] = राज्य;
// बी 2
PORTB = 0b11111011;
_delay_ms (5);
राज्य = पिनएफ;
read_row (स्थिति, prev_state [2], मैट्रिक्स [2]);
prev_state [2] = राज्य;
// बी 3
PORTB = 0b11110111;
_delay_ms (5);
राज्य = पिनएफ;
read_row (स्थिति, prev_state [3], मैट्रिक्स [3]);
prev_state [3] = राज्य;
// बी 6
PORTB = 0b10111111;
_delay_ms (5);
राज्य = पिनएफ;
read_row (स्थिति, prev_state [4], मैट्रिक्स [4]);
prev_state [4] = राज्य;
// बी 5
PORTB = 0b11011111;
_delay_ms (5);
राज्य = पिनएफ;
read_row (स्थिति, prev_state [5], मैट्रिक्स [5]);
prev_state [5] = राज्य;
// बी 4
PORTB = 0b11101111;
_delay_ms (5);
राज्य = पिनएफ;
read_row (राज्य, prev_state [6], मैट्रिक्स [6]);
prev_state [6] = राज्य;
PORTB = 0b11111111;
// डी 7
PORTD = 0b00000000;
_delay_ms (5);
राज्य = पिनएफ;
read_row (स्थिति, prev_state [7], मैट्रिक्स [7]);
prev_state [7] = राज्य;
पोर्ट = 0 बी 10000000;
}
}
void read_row (uint8_t राज्य, uint8_t prev_state, uint8_t चाबियाँ]] [{
uint8_t मास्क, मैं;
मास्क = 1;
के लिए (i = 0; मैं <8; मैं ++) {
if ((राज्य और मुखौटा) >> i) == 0 && ((prev_state और मास्क) >> i) = 1 = {{
usb_keyboard_press (चाबियाँ [i], 0);
}
मास्क = मुखौटा << १;
}
}
void setup_pins_and_usb () {
// 16 मेगाहर्ट्ज घड़ी के लिए सेट
CPU_PRESCALE (0);
// आउटपुट के रूप में PB0-PB6, PD7 कॉन्फ़िगर करें, उच्च स्थिति
DDRB = 0b01111111;
DDRD = 0b10000000;
PORTB = 0b01111111;
पोर्ट = 0 बी 10000000;
// PF0, PF1, PF4-PF7 को इनपुट, पुलअप सक्षम के रूप में कॉन्फ़िगर करें
DDRF = 0x00;
PORTF = 0xFF;
// USB को इनिशियलाइज़ करें, और फिर कॉन्फ़िगरेशन सेट करने के लिए होस्ट की प्रतीक्षा करें।
// यदि Teensy USB पोर्ट से जुड़े पीसी के बिना संचालित होता है,
// यह हमेशा के लिए इंतजार करेगा।
usb_init ();
जबकि (usb_configured ()) / * प्रतीक्षा * /;
// ड्राइवरों को लोड करने के लिए पीसी के ऑपरेटिंग सिस्टम के लिए एक अतिरिक्त सेकंड प्रतीक्षा करें
// और जो कुछ भी करता है वह वास्तव में इनपुट के लिए तैयार है
_delay_ms (1000);
}
जाँच की गई - यह काम करता है। सौभाग्य है।
फर्म फर्मवेयर
आप यहां
बगीचे में बाड़ लगाना जारी रख सकते हैं, लेकिन फर्मवेयर में लोहे की तुलना में कम सूक्ष्मताएं नहीं हैं। और यह मेरे लिए तैयार फर्मवेयर का उपयोग करने के लिए हुआ। नेटवर्क पर उपलब्ध में से दो सबसे ज्यादा ध्यान देने योग्य थे:
क्लेविस । पुराने वायस WY-85 टर्मिनल कीबोर्ड के
एक मोड में उपयोग किया जाता है। सिद्धांत रूप में, यह काफी अनुकूलन योग्य दिखता है, लेकिन बॉक्स से बाहर पर्याप्त विशेषताएं नहीं हैं जो दूसरे फर्मवेयर में हैं।
TMK कीबोर्ड कीबोर्ड मोड्स और होमग्रॉन कीबोर्ड में दर्जनों (यदि दर्जनों नहीं तो) बहुत पुराने फर्मवेयर का उपयोग किया जाता है। बॉक्स में से निम्नलिखित विशेषताएं हैं:
- लेयरिंग लेआउट (आप अतिरिक्त उपयोगी पात्रों के लिए एक परत का उपयोग कर सकते हैं, जैसे कि टाइपोग्राफिक हाइफ़न, आदि);
- कुंजी का उपयोग कर माउस आंदोलनों का अनुकरण;
- सिस्टम कुंजी कोड भेज सकते हैं: पावर डाउन, स्लीप, वेक अप, वॉल्यूम डाउन / अप, म्यूट, नेक्स्ट / प्रीव ट्रैक, प्ले, स्टॉप और अन्य;
- एक साथ कई कीस्ट्रोक्स का स्थानांतरण (6 कुंजी की एक यूएसबी सीमा तक सीमित नहीं);
- सबसे छोटे विस्तार के लिए अनुकूलन;
- कीबोर्ड "ट्रिक्स" के साथ काम करता है, अर्थात्, यह जानता है कि विभिन्न प्रयोजनों के लिए एक ही भौतिक कुंजी का उपयोग कैसे किया जाए, जो किस्ट्रोके के प्रकार पर निर्भर करता है;
- कंसोल डीबगिंग फर्मवेयर।
पहले, चिपचिपी चाबियों के साथ एक समस्या थी, लेकिन जब तक मैंने सब कुछ खत्म कर दिया, तब तक समस्या पहले ही हल हो गई थी। मेरा कोड
यहां पाया जा सकता
है ।
ख़ाका #define KEYMAP (\
K00, K01, K02, K03, K04, K05, K40, K41, K42, K43, K44, K45, \
K10, K11, K12, K13, K14, K15, K50, K51, K52, K53, K53, K54, K55, \
K20, K21, K22, K23, K24, K25, K60, K61, K62, K62, K63, K64, K65, \
T30, T31, T32, T33, T34, T70, T71, T72, T73, T74 \
) {\ _
{KC _ ## K00, KC _ ## K01, KC _ ## K02, KC _ ## K03, KC _ ## K04, KC _ ## K05}, \ _
{KC _ ## K10, KC _ ## K11, KC _ ## K12, KC _ ## K13, KC _ ## K14, KC _ ## K15}, \ _
{KC _ ## K20, KC _ ## K21, KC _ ## K22, KC _ ## K23, KC _ ## K24, KC _ ## K25}, \ _
{KC_0, KC _ ## T30, KC _ ## T31, KC _ ## T32, KC _ ## T33, KC _ ## T34}, \ _
\
{KC _ ## K40, KC _ ## K41, KC _ ## K42, KC _ ## K43, KC _ ## K44, KC _ ## K45}, \ _
{KC _ ## K50, KC _ ## K51, KC _ ## K52, KC _ ## K53, KC _ ## K54, KC _ ## K55}, \ _
{KC _ ## K60, KC _ ## K61, KC _ ## K62, KC _ ## K63, KC _ ## K64, KC _ ## K65}, \ _
{KC _ ## T70, KC _ ## T71, KC _ ## T72, KC _ ## T73, KC _ ## T74, KC_0} \ _
}
स्टेटिक कॉन्स्ट uint8_t PROGMEM कीमैप्स [] [MATRIX_ROWS] [MATRIX_COLS] = {
/ ** परत 0: (लोअरकेस चार)
*
* `क्ववर्त्युयोप =
* एसेफदजक्कल; '
* एक zxcvbnm,। /]
* /
KEYMAP (\
GRV, Q, W, E, R, T, Y, U, I, O, P, EQL, \
SLSH, A, S, D, F, G, H, J, K, L, SCLN, QUOT, \
LBRC, Z, X, C, V, B, N, M, COMM, DOT, BSLS, RBRC, \
FN0, FN1, FN2, FN3, FN4, FN9, FN8, FN7, FN6, FN5),
/ ** परत 1: (प्रतीक और नेविगेशन)
*
* 1 2 3 4 5 6 7 8 9 0 -
* ↑ ↓ ↳ ↑ ← ↑। →
* ↓ ← → ↓
* /
KEYMAP (\
NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS, \
NO, NO, PGUP, UP, PGDN, HOME, LEFT, DOWN, UP, RGHT, SCLN, QUAL, \
NO, NO, LEFT, DOWN, RGHT, END, NO, NO, NO, NO, NO, NO, \
FN0, FN1, FN2, FN3, FN4, FN9, FN8, FN7, FN6, FN5)
};
/ *
* एफएन कार्रवाई परिभाषा
* /
// TODO: तत्व के बदलते सूचकांक को रोकने के लिए [1] = KEYMAP (...) का उपयोग करें?
स्थिर कॉन्स्ट uint16_t PROGMEM fn_actions [] = {
ACTION_LAYER_TAP_KEY (1, KC_SPC), // FN0 = L1 प्रतीक
ACTION_MODS_TAP_KEY (MOD_LSFT, KC_SPC), // FN1 = स्थान के साथ स्थानांतरण
ACTION_MODS_TAP_KEY (MOD_LCTL, KC_ESC), // FN2 = Ctrl टैप टैप से बच
ACTION_MODS_TAP_KEY (MOD_LALT, KC_TAB), // FN3 = Alt with टैप टैब
ACTION_MODS_TAP_KEY (MOD_LGUI, KC_DEL), // FN4 = टैप डेल पर मेटा
ACTION_LAYER_TAP_KEY (1, KC_ENT), // FN5 = L1 प्रतीक
ACTION_MODS_TAP_KEY (MOD_RSFT, KC_ENT), // FN6 = Enter के साथ शिफ्ट करें
ACTION_MODS_TAP_KEY (MOD_RCTL, KC_BSPC), // FN7 = Ctrl के साथ टैप बैकस्पेस
ACTION_MODS_TAP_KEY (MOD_RALT, KC_RALT), // FN8 = Ctrl के साथ टैप बैकस्पेस
ACTION_MODS_TAP_KEY (MOD_RGUI, KC_TAB) // FN9 = टैब के साथ मीटर
};
मैट्रिक्स / * कॉलम पिन कॉन्फ़िगरेशन
* कोल: 0 1 2 3 4 5
* पिन: F0 F1 F4 F5 F6 F7
* /
स्थिर शून्य init_cols (शून्य)
{
DDRF = 0b00000000;
PORTF = 0b11111111;
}
स्थिर मैट्रिक्स_रो_t read_cols (शून्य)
{
वापसी (PINF & (1 << 0); 0: (1 << 0)) |
(PINF & (1 << 1)? 0: (1 << 1)) |
(PINF & & (1 << 4); 0: (1 << 2)) |
(PINF & (1 << 5); 0: (1 << 3)) |
(PINF & (1 << 6); 0: (1 << 4)) |
(PINF & (1 << 7); 0: (1 << 5));
}
/ * पंक्ति पिन विन्यास
* पंक्ति: 0 1 2 3 4 5 6 7
* पिन: बी 0 बी 1 बी 2 बी 3 बी 6 बी 5 बी 4 डी 7
* /
स्थिर शून्य असत्य_रो (शून्य)
{
// हाय-जेड (DDR: 0, पोर्ट: 0) को अचयनित करने के लिए
DDRB = 0b01111111;
DDRD = 0b10000000;
PORTB = 0b01111111;
पोर्ट = 0 बी 10000000;
}
स्थिर शून्य select_row (uint8_t पंक्ति)
{
// आउटपुट कम (DDR: 1, PORT: 0) का चयन करने के लिए
स्विच (पंक्ति) {
केस 0: PORTB & = ~ (1 << 0); तोड़;
केस 1: PORTB & = ~ (1 << 1); तोड़;
केस 2: PORTB & = ~ (1 << 2); तोड़;
केस 3: PORTB & = ~ (1 << 3); तोड़;
केस 4: PORTB & = ~ (1 << 6); तोड़;
केस 5: PORTB & = ~ (1 << 5); तोड़;
केस 6: PORTB & = ~ (1 << 4); तोड़;
केस 7: PORTD & = ~ (1 << 7); तोड़;
}
}
विचार के लिए एक और विराम
एक घर-निर्मित कीबोर्ड के एक
और बहुत ही दिलचस्प उदाहरण ने मेरी आंख को पकड़ लिया, जो कि डिजाइन की सादगी में बाकी से अलग है, अर्थात् प्लेट जिस पर स्विच लगे हुए हैं।
न केवल बोर्ड के नीचे से संपर्क चिपके हुए हैं, बल्कि अब वे सभी तारों के साथ लटकाए गए हैं। आपको नीचे कवर की तरह कुछ चाहिए। बोर्ड के टुकड़े बिखरे हुए हैं, और मुद्रित सर्किट बोर्ड और कॉग को जोड़ने के लिए मैंने जिन पदों पर खरीदा है, उन पर मज़बूती और दृढ़ता से उन्हें एक साथ ठीक करना एक आसान काम नहीं है। यह आदर्श होगा यदि यह एक स्टैंड के रूप में भी काम करता है, पूरे ढांचे को वांछित ढलान देता है।
एक नेटवर्क खोज से पता चला कि plexiglass में कई अद्वितीय गुण हैं, जैसे कि हल्के वजन, लचीलापन जब 140 डिग्री तक गरम किया जाता है, तो लेजर और काटने की मशीन, ड्रिलिंग के साथ कटौती करने की क्षमता, साथ ही साथ बहुत कम लागत।
ऐसा लगता है कि पीसीबी परियोजना गलत इंजीनियरिंग निर्णय था, और मैंने 1.5 मिमी मोटी plexiglass शीट खरीदी।

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

आवास
कई लोग पहले ही यह नोट करना बंद कर चुके हैं कि स्टोर में मौजूद सामानों के मूल्य टैग और कोस्टर किससे बने हैं, और वे आम तौर पर इस बहुत से plexiglass से बने होते हैं। झुकने के दो तरीके हैं, पहला फोल्ड लाइन के साथ एक ब्लोकेर्ट के साथ गर्म होता है, और एक लकड़ी के शासक के साथ झुकना। यह सामग्री, आग, और बाकी सब कम सटीकता में बुलबुले से भरा है। दूसरी विधि गर्म तार के साथ अपने स्वयं के वजन के नीचे झुक रही है। काफी पतली Plexiglas के लिए एक उपयुक्त तरीका काफी है।
झुकने का परीक्षण
मुझे जरूरत थी: एक मीटर के निचे क्रोम वायर, चार स्क्रू, एक बोर्ड। इंटरनेट पर कुछ मैनुअल कहते हैं कि गर्म होने पर निचे क्रोम वायर खिंच जाता है, और स्ट्रेचिंग पैच का इस्तेमाल करना लाजमी है। मेरे रूढ़िवादी अनुमानों के अनुसार, विकिपीडिया के अनुसार, 200'C पर गर्म होने पर और 30cm के तार की लंबाई के साथ, nichrome की मात्रा में वृद्धि एक मिलीमीटर से थोड़ी कम होती है।
झुकने से पहले, सुरक्षात्मक फिल्म को plexiglass से हटाने के लिए नहीं भूलना बहुत महत्वपूर्ण है।

टांका लगाने वाले लोहे के एक सिरेमिक तत्व के साथ तार को गर्म करने का प्रयास विफल रहा, क्योंकि 1 ए पर सार्वभौमिक बिजली की आपूर्ति 1.5 वी पर चालू हुई थी। 30 सेमी लंबे तार के एक खंड का प्रतिरोध लगभग 1 ओम है, और 1 ए के वर्तमान में, 1 डब्ल्यू की शक्ति प्राप्त की जाती है, जो कि गणना के अनुसार, 500 सेकंड में 150'C तक तार को गर्म कर सकता है, और केवल अगर यह ठंडा नहीं होता है, और यह होगा।
कुछ अधिक शक्तिशाली की आवश्यकता थी, और मैंने पुराने एटी बिजली की आपूर्ति ली और जमीन और 5 वी को तार के छोर से जोड़ा। प्रभाव आने में लंबा नहीं था, तार बहुत जल्दी एक तापमान पर गर्म हो जाता है जब उस पर पानी की एक बूंद तुरंत वाष्पित हो जाती है।

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


डिजाइन मजबूत है, यह बहुत थोड़ा झुकता है, लैपटॉप उस पर एक दस्ताने की तरह बैठता है।

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

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


और यह संरचना से जुड़ने के लिए सुविधाजनक है।

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

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


Plexiglass मामले के पहले संस्करण में, मैंने छेदों को आवश्यक से थोड़ा बड़ा बनाया, लगभग 0.3 मिमी, और स्विच थोड़ा ध्यान से क्षैतिज रूप से चले। संस्करण दो ने मुझे अपने अंगूठे के नीचे कुंजियों के स्थान को थोड़ा समायोजित करने का अवसर दिया, उत्कीर्णन का उपयोग नहीं करने के लिए (उत्कीर्णन के स्थान पर सामग्री एक तिहाई जितना पतला हो जाता है), और वास्तव में छिद्रों के आकार को कम करना।
संस्करण दो के साथ निम्नलिखित समस्या थी। नीचे (दूसरे संस्करण) स्विच पर क्लिक नहीं करते हैं (प्रत्येक स्विच के मध्य में ऊपर और नीचे की तरफ ऐसी छोटी चीजें)। पहले तो मैंने सोचा कि मैंने छेद बहुत कम कर दिए हैं, लेकिन यह निकला (!!!) कि ऐक्रेलिक शीट 1.5 मिमी की मोटाई 1.8 मिमी तक पहुंच सकती है, और स्विच 1.5-1.68 मिमी के लिए डिज़ाइन किए गए हैं। मुझे इस तरह के सेटअप की उम्मीद नहीं थी, लेकिन मैं भाग्यशाली था कि मैंने एक ही बार में चार "पड़ाव" का आदेश दिया, और उनमें से दो सामान्य मोटाई के थे, और स्विच पूरी तरह से उन पर क्लिक करते थे।


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

मैंने सब कुछ करने की कोशिश करने का फैसला किया, हालांकि मात्रा में सीमित है। ब्लैक "होम" लाइन पर गया, लाल - ऊपर, नीला - नीचे। रंग कुंजी और चरम स्तंभ स्पीकर नहीं मिले।

नियंत्रक माउंट
मेरे पास SP3 बोर्ड रैक थे, और मैंने Plexiglas में छेद ड्रिल करने की कोशिश की, लेकिन किसी तरह वे 5 मिमी भी अच्छी तरह से फिट नहीं हुए, और सटीक ड्रिलिंग के लिए मेरी सीमा 3.5 मिमी थी, इसलिए मैंने उनके फास्टनरों को ड्रिल किया। अक्ष के साथ, और इस तरह के एक व्याख्यात्मक तरीके से नियंत्रक को जोड़ा, मुड़ जोड़ी के तारों को चारों ओर से गुजरते हुए।



यह ठीक रहता है।
हां, बेशक मुझे फिर से लगभग सब कुछ फिर से मिला देना था, लेकिन इस मामले में कोई भी अनुभव पहले से ही थोड़ा आसान और तेज है। मैंने इनपुट के असाइनमेंट को बदल दिया है और छोरों और आईडीसी कनेक्टर्स (पीएफ 0, पीएफ 1, पीएफ 4-पीएफ 7 को आउटपुट के लिए आसान बनाने के लिए, बाएं आधे के इनपुट के लिए पीबी0-पीबी 3, दाएं आधे के इनपुट के लिए PB4-PB6, PD7) को बदल दिया है।


मोड़
टेस्ट में झुकना सिद्धांत रूप में इतना बुरा नहीं था, लेकिन मैं बेंड लाइन को समान रूप से बनाना चाहता था, और मैंने दरवाजे के लॉक से एक स्प्रिंग को कुंडी के साथ जोड़ा।



कीबोर्ड लेबल
इस तथ्य के बावजूद कि मैंने एक विशिष्ट लेआउट के साथ अभी तक यह तय नहीं किया है कि क्या QWERTY,
Colemak ,
Workman-P या कुछ और का उपयोग करना है, लेकिन मैंने पहले ही कुंजी के लिए फ़ॉन्ट चुन लिया है, यह
Typodermic से न्यूरोपोल
नोवा है। भविष्यवाद, उत्कृष्ट डिजाइन और एक स्टैंसिल बनाने की क्षमता के कारण चयनित। इसके अलावा, लेखक
कृपया मेरे प्रयोजनों के लिए इस वाणिज्यिक फ़ॉन्ट का उपयोग करने के लिए
सहमत हुए । स्टैंसिल को उसी स्थान पर plexiglass के रूप में काटा जाता है, और कुछ इस तरह दिखता है:

ख़ाका
वर्तमान लेआउट:
` qwertyuiop =
\ asdfghjkl ; '
[ zxcvbnm , . / ]
रूसी पत्र हमेशा की तरह एक ही कुंजी पर होते हैं। स्थान मानक है, केवल अक्षर X, Y के बाईं ओर नीचे है।
कई संशोधक (रंग) में संशोधक कुंजियाँ और नियमित दोनों शामिल हैं। संयोजन में दबाए जाने पर संशोधक काम करते हैं, और जब एक बार दबाया जाता है - सामान्य।
एकल:
Spc Spc Esc Tab Del Tab AGr Bsp Ent Ent
संयोजन:
Lr1 Sft Ctl Alt Met Met AGr Ctl Sft Lr1
दूसरी परत लाल कुंजी के संयोजन में काम करती है। मेरी राय में, शूटर बहुत अधिक है। विम के प्रशंसकों के लिए दो विकल्प, दाईं ओर (hjkl), और WASD प्रशंसकों के लिए - बाईं ओर (वास्तव में dxc प्रशंसकों)।
1 2 3 4 5 6 7 8 9 0 -
↰ ↑ ↳ ⤒ ← ↓ ↑ →
← ↓ → ⤓
परिणाम
श्रम लागत
जल्द ही विषय को पढ़ा जा रहा है, लेकिन जल्द ही इस विषय पर काम किया जा रहा है।
अगर मैंने मूल रूप से डिज़ाइन को सही ढंग से डिज़ाइन किया था, तो सिद्धांत रूप में इसे लगभग 10 घंटे लगेंगे। और इसलिए, कुछ विवरणों की प्रतीक्षा करने के लिए दो महीने, और यह सब इकट्ठा करने और परिष्कृत करने के लिए एक और तीन महीने।
वित्त
भाग | कीमत |
---|
पैरों के साथ Teensy 2.0 माइक्रोकंट्रोलर | 780 |
चेरी एमएक्स MX1A-E1JW स्विच (नीला) | 1110 |
कैप स्विच करें | 900 |
Plexiglas | 150 |
Plexiglass काटने | 350 |
कुल: 3290 रगड़।
मैंने सोल्डर, वायर, केबल, कनेक्टर्स और डायोड जैसे ट्रिफ़ल्स को शामिल नहीं किया। बाद में मुझे महंगी डिलीवरी के बावजूद बेहद सस्ता मिला, लेकिन अगर आप ऑर्डर की गई कुल राशि पर फैल गए, तो पता चला कि 6 रूबल के खुदरा मूल्य पर प्रति टुकड़ा लगभग 25 सेंट है।
मुझे एक मुफ्त कलाई आराम मिला; आप इसे लगभग $ 20 में खरीद सकते हैं।
मैंने उपकरणों पर काफी खर्च किया, लेकिन यह एक से अधिक बार काम में आएगा। कुछ सस्ते वाले (गर्मी प्रतिरोधी प्लास्टिक लीवर के साथ चिमटी जो तुरंत 200'C पर पिघलते हैं, एक आवर्धक कांच जिसके माध्यम से आप कुछ भी नहीं देख सकते हैं, वायर कटर जो वास्तव में काटते नहीं हैं) सस्ते थे, लेकिन वे बहुत लंबे समय तक नहीं चले।
छापों
जबकि इस कीबोर्ड पर टाइपिंग इतनी नहीं है। निश्चित रूप से मैं पाऊंगा कि लेआउट में क्या सुधार करना है। सामान्य तौर पर - सुविधाजनक, यहां तक कि बहुत।
मैं "xxxx कुंजी के बारे में क्या?" जैसी टिप्पणियों का पूर्वाभास करता हूं। मेरे tmk_keyboard संशोधन में, केवल दो परतें शामिल हैं। आप कम से कम 30 और जोड़ सकते हैं, और वहां सभी संभव कुंजियों को धक्का दे सकते हैं।
"आप कीबोर्ड को कैसे दबाते हैं जैसे कमेंट्स के लिए xxx + yyy + zzz?" मैं जवाब दे सकता हूं कि मैंने विशेष रूप से अपने सॉफ़्टवेयर को चुना है ताकि मेरी उंगलियों को न छेड़ें (लिनक्स, भयानक, विम, क्रोमियम + विमियम, ज़थुरा)। मेरे द्वारा उपयोग किए जाने वाले सबसे कठिन संयोजन Ctrl + Meta + [1-9] है, जो वर्तमान के लिए कई वर्चुअल डेस्कटॉप का संयोजन करता है। अब यह शीर्ष पंक्ति पर नारंगी, हरा, बकाइन और संख्या कुंजियों को दबाकर काम करता है, यह बहुत सुविधाजनक नहीं है, लेकिन मैं निश्चित रूप से सोचूंगा कि यह करना कितना आसान है।
सुधार मैं संस्करण 2 में बनाना चाहता हूं
DIP पैकेज में एक अद्भुत NXP PCF8574AP I / O पोर्ट विस्तारक मिला। आप सर्किट बोर्ड को पतली चार तार वाली केबल से बदल सकते हैं। मुझे अभी तक समझ नहीं आया कि क्या यह I
2 C से संपर्क करने लायक है, अफवाहों के अनुसार, प्रोटोकॉल बहुत धीमा है, और फर्मवेयर में बहुत समय इस पर खर्च होता है। वैकल्पिक रूप से, शिफ्ट रजिस्टर 74HC164 और 74HC165 का उपयोग करें।
Teensy को कीबोर्ड के एक आधे हिस्से के लिए पर्याप्त इनपुट और आउटपुट के साथ नंगे AVR के साथ बदलने की तीव्र इच्छा है, और दूसरी छमाही को PCFs को सौंपना है। माइक्रोचिप, PIC18F25K50 से माइक्रोचिप के आधार पर बनाने के लिए एक और विकल्प है, यह और भी सस्ता है, और, अन्य चीजों के अलावा, इसे यूएसबी के साथ काम करने के लिए बाहरी क्वार्ट्ज की आवश्यकता नहीं है।
एक मुद्रित सर्किट बोर्ड बनाएं ताकि कोई हिंग्ड इंस्टॉलेशन न हो, अधिमानतः पतला और मोड़ने योग्य। आदर्श रूप से, यह पहले से ही सभी घटकों को मिलाप करना चाहिए, जैसे कि नियंत्रक, डायोड, संधारित्र, प्रोग्रामिंग बटन।
हॉल सेंसर पर एक ट्रैकपॉइंट जोड़ें, अधिमानतः HJNM कुंजियों के बीच, और माउस के नीचे तीन बटन (संभवतः कीबोर्ड कुंजियों का उपयोग करें)। जब तक मुझे एहसास नहीं हुआ कि उन्हें ढूंढना हाथों के लिए कहाँ सुविधाजनक होगा।
पारदर्शी या लाल (इस पोस्ट के बाद) चेरी एमएक्स स्विच का प्रयास करें।
Plexiglass के बजाय 1.5 मिमी प्लाईवुड का मामला बनाएं। यह इतना सुंदर नहीं दिखता है, लेकिन प्लाईवुड प्रक्रिया करना आसान है, कम नाजुक है। उचित प्रसंस्करण के साथ, यह नमी के लिए काफी टिकाऊ और प्रतिरोधी है। झुकना कठिन है, लेकिन इतनी मोटाई के साथ यह इतना कठिन नहीं होना चाहिए। बाकी सभी चीज़ों के लिए, आप स्लॉट्स और पिन बनाकर कई शीट्स से एक डिज़ाइन बना सकते हैं ताकि लेगो सिद्धांत के अनुसार इसे असेंबल-असेंबल किया जा सके। ऐसा विश्वास है कि प्लाईवुड की मोटाई plexiglass के विपरीत, शीट क्षेत्र पर + 20% तक नहीं चलती है।
समतल सतह पर लगे कीबोर्ड आर्म-मैनिपुलेटर के दोनों हिस्सों के लिए एक सस्ती, स्थिति में समायोज्य और माउंट के साथ।
पुनश्च
और हां, ज़ाहिर है, मैं कैसे भूल सकता था!
