यदि आप बस अपने मेक मेकी का उपयोग किए बिना एक कीबोर्ड बनाना चाहते हैं, तो आप रास्पबेरी पाई के GPIO कार्यक्षमता का उपयोग कर सकते हैं। लेकिन पहले की तरह टिप्पणी की, रास्पबेरी पाई में एक कीबोर्ड बनाने के लिए पर्याप्त पिन उपलब्ध नहीं है जो वास्तव में उपयोगी है।
हालाँकि, यदि आप 2 IC जोड़ने के लिए तैयार हैं, तो आप अपने आप को इतनी अधिक कुंजियों के साथ कीबोर्ड बना सकते हैं कि आपको हर कुंजी के लिए एक फ़ंक्शन के साथ आने में समस्या होगी!
मेरा सुझाव रास्पबेरी पाई पर 2 I2C आईसी के I2C बस से कनेक्ट करने के लिए है, और उन लोगों को अपने स्वयं के स्कैन मैट्रिक्स बनाने के लिए उपयोग करना है।
यदि आप एक PCF8574 का उपयोग करते हैं, तो आपके पास 8 I / O पिन उपलब्ध हैं, यदि आपको एक PCF8575 मिलता है, तो आपके पास 16 I / O पिन भी उपलब्ध हैं। तब संयोजन करके आप एक स्कैन मैट्रिक्स प्राप्त कर सकते हैं:
- 64 कुंजी: (2x PCF8574)
- 128 कुंजी: (1x PCF8574 और 1x PCF8575)
- 256 कुंजी: (2x PCF8575)
आपको हमेशा उनमें से एक को आउटपुट के रूप में और एक को इनपुट के रूप में उपयोग करना होगा। आउटपुट पर आप बिट 0 से बिट एन (7 या 15) तक थोड़ा 'चलने' देते हैं, ये मैट्रिक्स के कॉलम हैं। दूसरे पर आप लगातार इनपुट के मूल्य को पढ़ते हैं और ये मैट्रिक्स की पंक्तियाँ हैं। क्या आउटपुट बिट सक्रिय है और क्या इनपुट बिट '1' का संयोजन कुंजी है जिसे दबाया गया है।
वास्तव में मैट्रिक्स बनाना सबसे काम है, और जब आप इस पर हों, तो मैट्रिक्स में आपके द्वारा डाले गए हर स्विच के बाद एक डायोड जोड़ना न भूलें, यह डायोड (एक सामान्य 1N4148 ठीक काम करेगा) को एनोड के साथ रखा जाना चाहिए। पंक्ति रेखा पर स्विच और कैथोड पर जाएं। इस डायोड पर 0.6V का वोल्टेज ड्रॉप एक समस्या नहीं होनी चाहिए, शेष (3.3V-0.6V) 2.7V अभी भी एक तार्किक '1' होना चाहिए।
डायोड के इस ट्रक लोड का कारण यह है कि यह भूतों और चाबियों के मास्किंग जैसी चीजों को रोक देगा। घोस्टिंग वह प्रभाव है कि यदि आप एक ही समय में तीन कुंजी दबाते हैं, तो यह संभव है कि इसे पूरी तरह से अलग कुंजी के रूप में व्याख्या की जाए क्योंकि अधिक पंक्तियों में तार्किक '1' होगा। मास्किंग वह प्रभाव है, यदि आपके पास कई कुंजी दबाए जाते हैं और एक कुंजी जारी करते हैं (कुछ स्थितियों में) का पता नहीं लगाया जाएगा क्योंकि उस कुंजी के लिए पंक्ति अभी भी एक तार्किक '1' है।
चित्र भूत, बटन ए, बी, डी का एक उदाहरण दिखाता है और इसके अलावा पंक्ति 1 (बटन ए के लिए) भी पंक्ति 2 (बटन सी के लिए) उच्च है, फिलहाल कॉलम 1 सक्रिय है, जो सही नहीं है।
पूरे हार्डवेयर साहसिक कार्य के बाद, आपको वास्तव में लिनक्स के तहत कीबोर्ड का उपयोग करने के लिए एक कर्नेल चालक को लिखना या अनुकूलित करना होगा। एक अच्छा प्रारंभिक बिंदु यह लिंक हो सकता है: TCA6416 I2C IO विस्तारक पर कुंजियों के लिए ड्राइवर , यह एक समान विचार है, लेकिन केवल 16 कुंजी कीपैड का उपयोग करता है।
आशा है कि यह आपकी थोड़ी मदद करेगा।