English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية 
PS2 माउस BASIC Stamp और कंप्यूटर
Colin Fahey

1. परिचय

यह लेख का वर्णन किया जा सकता है कि किस तरह एक PS/2 माउस द्वारा BASIC Stamp कंप्यूटर की नकल है . 

यह अन्वेषण अनौपचारिक है . 
ps2_mouse_interior.jpg
भीतरी एक पुरानी शैली ( चलती गेंद ) कंप्यूटर माउस : "Microsoft Intellimouse"  ( ऑप्टिकल सेंसर की जगह मैं लंबे तारों के साथ है .  )
एक माउस में दो axes : "X" और "Y" .  जब माउस "क्षैतिज" चली है , "X" पहिया के भीतर माउस rotates .  जब माउस के "रूप" में स्थानांतरित होता है ( एक सतह पर ) , "Y" पहिया के भीतर माउस rotates .  मनमानी के लिए माउस गति , चाल के अनुसार "X" और "Y" पहियों को "क्षैतिज" और "ऊर्ध्वाधर" घटक माउस प्रस्ताव है . 
ps2_mouse_interruptor_wheels.jpg
ऑप्टिकल interruptor पहियों के भीतर माउस
सूचना के पहियों के भीतर छिद्र में माउस .  जब पहिया rotates , अवरक्त लाल (IR) द्वारा उत्सर्जित प्रकाश उत्सर्जक डायोड IR लाइट (LED) लगातार बाधित है , की दर से आनुपातिक की दर से पहिया रोटेशन .  इस प्रकार , माउस जानता कि कितने "बढ़ता" ( "ticks" भी कहा जाता है ) की धुरी माउस ने किसी विशेष समय अवधि में चले गए . 

निर्धारित करने की दिशा शामिल आंदोलन के प्रयोग के प्रकाश 2 सेंसर , बहुत निकट स्थित एक साथ , एक धुरी के साथ समानांतर करने के लिए आंदोलन के पहिया है .  ( दोनों एक ही सेंसर में हैं 3 घटक पिन नीचे दिखाई गई है .  ) 
mouse_sensor01.jpg
प्रकाश संवेदक माउस IR ( IR डिटेक्टरों की दो में एक पैकेज )
इस केन्द्र का पैकेज है पिन सकारात्मक कलेक्टर वोल्टेज ; 
वामपंथियों और सही हैं पिनों के अधिकार छोड़ दिया और सेंसर निर्गम emitters . 

आइए हम नाम के दो सेंसर में पैकेज "A" और "B" .  मान लीजिए के शुरू में एक पहिया है कि इस तरह के रोटेशन कोण IR प्रकाश पहुंचने के दोनों सेंसरों से अवरुद्ध है . 

जैसा कि पहिया rotates , IR प्रकाश से emitter जाएगा करने में सक्षम एक छेद में से होकर पहुंच पहिया और दो में से एक सेंसर , जैसे कि सेंसर "A" .  यदि पहिया जारी है एक ही दिशा में बदलती है , अंततः के दूसरे सेंसर , "B" , प्राप्त करने में सक्षम होंगे IR प्रकाश .  यदि पहिया जारी है एक ही दिशा में बदलती है , अंततः IR के प्रकाश की जाएगी अवरुद्ध तक पहुँचने से सेंसर "A" .  यदि पहिया जारी है एक ही दिशा में बदलती है , अंततः IR के प्रकाश की जाएगी अवरुद्ध तक पहुँचने से सेंसर "B" . 

इस प्रकार , यह दृश्य है : 
(A,B):   ..., (0,0), (1,0), (1,1), (0,1), ...
यदि पहिया rotates में विपरीत दिशा में , 4 अवधि के ऊपर दिखाए गए दृश्य होगा उलट , शुरू से वर्तमान स्थिति है .
इन संकेतों के साथ दो सेंसर हम रोटेशन की दर निर्धारित कर सकते हैं , और दिशा .
ps2_mouse_circuit_board.jpg
इस सर्किट बोर्ड के Microsoft Intellimouse
समझने के बारे में और अधिक जानकारी के लिए माउस circuitry कैसे एकीकृत सेंसरों और संचार के प्रकाश के साथ व्यक्तिगत कंप्यूटर (PC) ( PS/2 संकेतों के द्वारा ) , मैं सर्किट बोर्ड का अध्ययन किया है . 

यह माइक्रोचिप के निम्नलिखित नाम पर छपी है : SPCP05A . 

इंटरनेट पर एक खोज के लिए शब्द "SPCP05A" संकेत है कि चिप द्वारा निर्मित एक कंपनी का नाम "Sunplus Technology Co."  .  सूचना के बारे में "SPCP05A" माइक्रोचिप से प्राप्त किया जा सकता है कि कंपनी है . 

ये हैं तकनीकी विनिर्देशों के "SPCP05A" माइक्रोचिप : 
sunplus_ps2_3dmouse_datasheet.pdf
( तकनीकी विनिर्देशों के "SPCP05A" माइक्रोचिप )
1125022 bytes
MD5: 359a9210275e021cc19a5e2391499dc5
निम्नलिखित छवि के संकेतों से पता चलता है पिनों के "SPCP05A (PS/2 3D mouse)" माइक्रोचिप .
spcp05a_chip_signals_bmp01.jpg
सिग्नल के पिनों के "SPCP05A (PS/2 3D mouse)" माइक्रोचिप
यह वास्तव में एक छोटे से कंप्यूटर "SPCP05A" है !  यह एक अनुदेश समुच्चय है , और RAM , और ROM , टाइमर और आंतरिक , आदि  वास्तव में , वर्णन के "SPCP05A" माइक्रोचिप में Sunplus Co.  scarcely द्वारा प्रदान की गई जानकारी के विशिष्ट आशय के उपयोग की माइक्रोचिप "कंप्यूटर" के लिए "माउस" सर्किट .  यह एक बहुमुखी microcontroller चिप है . 

मैं सर्किट का अध्ययन किया जोधपुर पर सर्किट बोर्ड के Microsoft Intellimouse अनुमानित योजना बनाने के लिए निम्नलिखित हैं :
ps2_mouse_my_schematic.jpg
अनुमानित योजना के Microsoft Intellimouse  ( मुझे कुछ capacitors गायब है , लेकिन इस योजना में लगभग पूर्ण है .  )
Bui Van Chu , ऑस्ट्रेलिया में , मेरे लेख पढ़ा ने मुझे भेजा और एक अधिक पूर्ण योजना है , जो निम्नलिखित छवि में लगता है .
ms_ps2_mouse_schematic.jpg
PS/2 माउस की योजना है , मेरे द्वारा भेजे Bui Van Chu ऑस्ट्रेलिया से
सर्किट का बहुत सरल है . 

माउस बटन ( बाएँ , मध्यम , सही ) सीधे निवेश पर माइक्रोचिप . 

इस तीन जोड़ी प्रकाश सेंसर , ( ( "X" , "Y" , "Z" ) , ( क्षैतिज के लिए आंदोलन के आंदोलन खड़ी है , और मध्य माउस पहिया ) ) संकेतों को सीधे भेजने के अन्य साधनों की चिप पर है . 

इस PS/2 संकेतों DATA और CLK ( घड़ी के अनुसार ) से संबंधित हैं I/O भी संकेतों पर चिप . 

मैं समझ के योजनाबद्ध जैसे ही मैं यह बैठक समाप्त ( जोधपुर द्वारा निम्नलिखित पर सर्किट बोर्ड ) . 

एक बात मैंने शुरू में नहीं था जिस तरह से समझने के IR LEDs को माइक्रोचिप से जुड़े थे ( 16 पिन : "PB1" ) , टर्मिनल के बजाय अपने नकारात्मक ( कैथोड ) की जा रही बस को सीधे जमीन से जुड़ा है .  यह महत्वपूर्ण है !

2. मेरा पहला प्रयास माउस को नियंत्रित करने के लिए आंदोलन

निम्नलिखित टिप्पणी उल्लेख प्रस्ताव के साथ एक ही धुरी ( जैसे "X" , या क्षैतिज , धुरी ) . 

पहली बात का प्रयास किया गया था मैं किसी वस्तु के बीच चलती है और IR LED संवेदक जोड़ी -- सिमुलेट करने के प्रभाव का पहिया के भीतर माउस बदलती है .  यह काम किया है .  मैं कारण हो सकता है माउस कर्सर को स्थानांतरित करने के लिए स्क्रीन के आसपास के द्वारा बस चलती एक बाधा के माध्यम से प्रकाश की किरण IR बार बार , एक ही दिशा में . 

इसके बाद , मुझे निकाल दिया है पिन 3 हिस्सा सेंसर बोर्ड से माउस सर्किट , और तारों को संलग्न सर्किट के सेंसर बोर्ड के स्थान पर है .  मैं स्वयं को तार से जुड़े एक सकारात्मक वोल्टेज सिमुलेट को सेंसर गतिविधि है .  मैं संकेतों से जुड़े दोनों को शक्ति के अनुसार निम्नलिखित पैटर्न ( "0" है कि इस तरह के "बंद" का प्रतिनिधित्व करता है , और "1" "पर" प्रतिनिधित्व करता है ) :
(0,0), (1,0), (1,1), (0,1), ...
यह काम किया है .  कदम हो सकता है मैं माउस कर्सर द्वारा इस स्क्रीन पर थकाऊ disconnecting के तारों को जोड़ने और ऊपर दिखाए गए स्वरूप में है .  नाममात्र की तर्ज से वर्तमान स्थिति में ले जाया जाएगा अनुक्रम कर्सर के विपरीत दिशा में है . 

क्योंकि इतनी अच्छी बातें जा रहे थे , मैं कनेक्ट करने का निर्णय लिया के तारों को रिले ( द्वारा नियंत्रित RS-232 ) .  इससे ठीक करने के लिए अनिवार्य रूप से की अनुमति मेरे साथ जो कुछ मैंने खुले तार : कनेक्ट संवेदक विद्युत संकेतों को टर्मिनल में अनुक्रम उपयुक्त है .  अंतर केवल यह होगा कि मानव ( मुझे ) को ऐसा करने के लिए नहीं जोड़ने और थकाऊ disconnecting . 

...  लेकिन यह काम नहीं किया है ! 

बाद में काफी प्रतिरोधों के समायोजन और capacitors , etc , मैं ने एक अजीब खोज : यदि मैं कुछ छूने टर्मिनल में सर्किट , यह काम बिल्कुल !  इसका समाधान करने के लिए इस रहस्य के अगले भाग में दिखाई देता है . 

3. इस अवरक्त लाल प्रकाश (IR) होना चाहिए modulated

frustrating प्रयोगों के बाद कुछ मैं ने एक नया विचार : IR प्रकाश हो सकता है स्पंदन में एक उच्च आवृत्ति , और हो सकता है चिप इस आवृत्ति को प्राप्त करने की उम्मीद है .  लगातार प्रकाश ( या मेरे सिमुलेट उत्पादन लगातार सेंसर ) हो सकता है अस्वीकार कर दिया है .  मैं कुछ उलझन थी कि इस तथ्य के प्रकाश परिवेश में एक दीप halogen मंजिल स्वीकार्य था , लेकिन मैं जानता था कि तापदीप्त लैंप भी detectable मॉडुलन हैं . 

मैं एक IR LED स्पंदन की कोशिश की पर और उच्च आवृत्ति रोकने के सेंसरों के अनुसार उम्मीद की परिपाटी है .  यह काम किया है ! 

वह यह था !  इस माउस में IR LEDs सर्किट बोर्ड होना चाहिए घड़ियां पर उच्च गति , और उम्मीद है कि यह माइक्रोचिप चाहिए घड़ियां के अलावा अपेक्षाकृत कम दर के प्रकाश के द्वारा बाधा पहिया आवर्ती ( छिद्र ) . 

स्पंदन के द्वारा IR LEDs है , और इस उम्मीद में स्पंदन unblocked सेंसर संकेत उत्पादन , चिप किसी भी अस्वीकार कर सकते हैं परिवेश IR संकेतों से माउस आपरेशन के साथ दखल है .  उदाहरण के लिए , आवारा प्रकाश से अन्य ( निरंतर ) IR स्रोतों के साथ माउस interefere नहीं होगा . 

मैं एक ऑडियो जुड़े प्रवर्धक को सेंसर निर्गम , और फिर मैं दें संवेदक परिवेश प्रकाश में ले कलाकारों द्वारा मेरे दीपक halogen मंजिल है .  मैंने सुना एक अलग आवाज (60 Hz) .  जब मैं dimmed के दीप , हल्का टोन बढ़ी है , और अंततः जब प्रकाश बंद कर दिया गया है .  सो , यह आसानी से पकड़ता सेंसर की 60 Hz मॉडुलन में तापदीप्त बल्बों की मेरी मंजिल halogen दीप ! 

देखते हैं , अब इस योजना के PS/2 पर माउस सर्किट बोर्ड के महत्व के IR LEDs से जोड़ा जा रहा है पिन पर एक माइक्रोचिप ( करने के बजाय मौजूदा प्रत्यक्ष ) स्पष्ट है .  यह माइक्रोचिप पर नियंत्रण रखने की घड़ियां के IR LEDs पिन I/O के माध्यम से , और माइक्रोचिप कर सकते हैं संबंध को अचानक अपनी मंशा के साथ ID LEDs सेंसर निवेश प्राप्त है , और इस प्रकार किसी भी अस्वीकार कर आवारा संकेतों ( न होने के कारण प्रकाश घड़ियां IR ) .  ( हालांकि , सह आवश्यक नहीं है .  बस का पता लगाने का एक न्यूनतम संख्या में घड़ियां गणना की जा सकती है संवेदक को स्वीकार करने के लिए निवेश सीमा से एक है .  ) 

4. IR सेंसरों के साथ bandpass फिल्टर

आप पा सकते हैं IR विशेष सेंसरों , डिब्बाबंद में ट्रांजिस्टर के समान रूप से तीन का नेतृत्व है , "देखते" हैं कि प्रकाश आवृत्तियों को विशिष्ट modulated IR ( eg , 38 kHz ) . 
tuned_sensor01.jpg
प्रकाश संवेदक देखते IR ( अधिकतम संवेदनशीलता को 38 kHz प्रकाश मॉडुलन )
Bandpass में निहित है circuitry उपकरण के साथ फोटो IR - ट्रांजिस्टर . 

इसलिए , IR LED स्पंदित किया जा सकता है आमतौर पर एक आवृत्ति के 38 kHz प्राप्त होगा जिससे कि सेंसर के प्रकाश दें और बिजली जाने के संकेत को सेंसर outputs . 

संप्रेषित करने के लिए जानकारी के प्रकाश से IR LED बाधित किया जा सकता है पर अपेक्षाकृत कम दर ( eg , 1 से 100 गुना प्रति सेकंड ) .  यह कम आवृत्ति है स्पंदन के साथ संयोजन के रूप में निरंतर उच्च आवृत्ति स्पंदन ; यानी , कम आवृत्ति स्पंदन माना जा सकता है modulating के उच्च आवृत्ति स्पंदन है .  इस उच्च आवृत्ति स्पंदन के समान है जो "वाहक तरंग" पर जानकारी संकेत ( अपेक्षाकृत कम आवृत्ति मॉडुलन ) किया जाता है . 

लेकिन , मैं सत्यापित है कि सेंसर IR में Microsoft Intellimouse मॉडुलन फ़िल्टर ऐसी नहीं है .  हालाँकि , सर्किट की आवश्यकता करता है कि IR प्रकाश में कुछ तरीके से किया जा modulated के अलावा , कम आवृत्ति interruptions प्रकाश के द्वारा पहिया छिद्र के साथ . 

निम्नलिखित रेखाचित्र बुलडोजर के अंतर में सेंसर संकेतों के लिए निरंतर IR LED प्रकाश IR LED घड़ियां और प्रकाश के लिए माउस के विभिन्न चरणों की ओर पहिया है .
ps2_mouse_quadrature_sketch.jpg
सेंसर संकेतों के लिए उत्पादन के मामले प्रकाश में निरंतर IR घड़ियां और IR मामले प्रकाश .

5. इनपुट का अनुकरण माउस का उपयोग करते हुए एक कंप्यूटर BASIC Stamp

"BASIC Stamp 2" ने इस कंप्यूटर को लागू करने के लिए पर्याप्त programmability प्रोटोकॉल PS/2 .  इसलिए , "BASIC Stamp 2" सीधे कंप्यूटर से जोड़ा जा सकता है PS/2 बंदरगाह के लिए एक व्यक्तिगत कंप्यूटर (PC) अनुकरण कर सकते हैं और एक या माउस PS/2 कुंजीपटल . 

5.1 यह प्रोटोकॉल PS/2

1998 के माध्यम से 2003 के वर्षों में , अधिकांश निजी कंप्यूटर था PS/2 बंदरगाहों के लिए कुंजीपटल और माउस . 

इस बंदरगाह PS/2 ने संकेत 4 : (1) CLOCK ; (2) DATA ; (3) +5V ; (4) GROUND . 

इस PS/2 डाटा भेजने के लिए उपकरणों की अनुमति देता है पोर्ट को होस्ट , डाटा भेज सकते हैं और मेजबान के लिए उपकरणों की है .  सभी पार्टियों के बंदरगाह पर PS/2 ( आमतौर सिर्फ एक युक्ति और मेजबान ) के साझा करना होगा और संकेतों का पता लगाने चाहिए यदि वर्तमान में पार्टी के एक और संकेत के प्रयोग से . 

कैसे कर सकते हैं संकेतों की जाएगी ?  एक संकेत ( जैसे CLOCK या DATA ) आमतौर पर "चल" उच्च है , जिसका अर्थ है कि यह एक सकारात्मक संकेत है जुड़े resistor के साथ एक उच्च वोल्टेज के माध्यम से प्रतिरोध ( eg , 4 kilo-Ohms ) .  इस प्रकार के संकेत के रूप में एक तार्किक व्याख्या की है "उच्च" द्वारा सभी दलों सुन .  कोई भी पार्टी की रेखा से कम कर सकते हैं खींचने ( via TTL तर्क ) जब पार्टी का इरादा डाटा भेजने के लिए .  जब समाप्त होने के एक दल भेजने का एक पैकेट , यह जाने का संकेत देता है अनिश्चित है , इसलिए वे फिर से उच्च फ्लोट . 

डाटा भेजने के लिए एक उपकरण से ( जैसे , या माउस कुंजीपटल ) को पर्सनल कंप्यूटर (PC) , आपको भेज डेटा में 11 बिट के पैकेट , निम्नलिखित के बिट : (1) शुरू बिट ("0") ; (2) डेटा 8 बिट ( LSB पहली ) ; (3) समता बिट ( "विषम" समता ) ; (4) बंद बिट ( "1" ) .  ध्यान दें कि यह है कि जब "विषम समता" की कुल संख्या "1" बिट में डेटा बिट और समता बिट संख्या करीब एक संयुक्त है . 

निम्नलिखित चित्र बुलडोजर के प्रसारण के एक पैकेट डेटा : 
ps2_clock_data_dev2pc01_adj.jpg
PS/2 प्रोटोकॉल : होस्ट करने के लिए उपकरण के पैकेट (PC)
इस सेट किया जाना चाहिए DATA लाइन को उचित मूल्य की CLOCK लाइन लाने से पहले कम है .  DATA का मूल्य निर्धारित करना चाहिए जब तक बने रहने की रेखा है CLOCK वापस लौट अधिक है .  जब CLOCK रेखा के उच्च होने की पुष्टि की है , DATA मूल्य परिवर्तित करने के लिए किया जा सकता है कि अगले कुछ मान . 

इस विशिष्ट घड़ी की गति अपेक्षाकृत धीमी है , के बारे में 10 kHz को 17 kHz .  यह 100 microseconds कम करने के लिए 70 microseconds अवधि के लिए हर घड़ी है . 

इस परिदृश्य में मेजबान (PC) डाटा भेजने के लिए एक उपकरण के समान है डाटा भेजने के लिए इस उपकरण का मेजबान है , लेकिन सभी मामलों में नियंत्रण उपकरण के संकेत CLOCK आंकड़ा संचरण के दौरान ही है .  इसके अलावा , एक डाटा बिट से भेजा मेजबान ( युक्ति पर कम सेटिंग CLOCK ) किया जाना चाहिए जब latched युक्ति बनाने के संकेत देता है CLOCK के संक्रमण को एक अधिक है . 

एक इंटरनेट खोज करेंगे विवरण से पता चलता है कई PS/2 संकेतों के बारे में और विवरण प्रोटोकॉल . 

5.2 PS/2 माउस के पैकेट डेटा

जब कम्प्यूटर बूट करना , ऑपरेटिंग सिस्टम के साथ शुरू और अंत में संचार माउस को निर्धारित करने के लिए माउस के प्रकार के हैं .  मूलभूत रूप से हो सकता है माउस की तरह व्यवहार एक सामान्य PS/2 माउस .  हालांकि , अगर माउस ऑपरेटिंग सिस्टम यह निर्धारित करता है कि वास्तव में एक "3D PS/2" माउस ( जैसे , एक माउस के साथ एक पहिया है ) , तो यह बता सकता माउस को बदलने के लिए माउस 3D PS/2 प्रोटोकॉल . 

जब आप कदम माउस , या जारी प्रेस या माउस बटन , circuitry माउस को होस्ट (PC) डेटा भेजता है , जो राज्य में परिवर्तन का संकेत के बाद से हुई है जो पिछले राज्य संकेत है . 

यह सामान्य PS/2 भेजता है माउस को निम्नलिखित तीन पैकेट को होस्ट : 
    ------------------------
    D7 D6 D5 D4 D3 D2 D1 D0  (The D0 bit (LSB) is sent first)
    ------------------------
(1) YV XV YS XS  1  0  R  L  (overflow, sign, buttons)
(2) X7 X6 X5 X4 X3 X2 X1 X0  (X movement; -128 to +127)
(3) Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0  (Y movement; -128 to +127)

L  = Left  Button State (1 = pressed down)
R  = Right Button State (1 = pressed down)
XS = Direction of X movement (1 = LEFT)
YS = Direction of Y movement (1 = UP)
XV = Overflow of X movement value (1 = X overflow occured)
YV = Overflow of Y movement value (1 = Y overflow occured)
X7,...,X0 : X movement; 8-bit 2's-complement signed byte (-128 to +127)
Y7,...,Y0 : Y movement; 8-bit 2's-complement signed byte (-128 to +127)

Here are examples of data sent to the host (PC):
------------------------------------------------
(The least-significant bit of each data byte is sent first.)
Move Left  1 unit    :  0x18, 0xFF, 0x00
Move Right 1 unit    :  0x08, 0x01, 0x00
Move Down  1 unit    :  0x28, 0x00, 0xFF
Move Up    1 unit    :  0x08, 0x00, 0x01
Press   Left  Button :  0x09, 0x00, 0x00
Release Left  Button :  0x08, 0x00, 0x00
Press   Right Button :  0x0C, 0x00, 0x00
Release Right Button :  0x08, 0x00, 0x00
यह एक बहुत ही सामान्य करने के लिए माउस "3D PS/2" ( eg , माउस के साथ एक पहिया है कि मध्य बटन के रूप में भी कार्य करता है ) .  इस तरह का डाटा माउस भेजता चार पैकेट को होस्ट (PC) . 
    ------------------------
    D7 D6 D5 D4 D3 D2 D1 D0  (The D0 bit (LSB) is sent first)
    ------------------------
(1) YV XV YS XS  1  M  R  L  (overflow, sign, buttons)
(2) X7 X6 X5 X4 X3 X2 X1 X0  (X movement; -128 to +127)
(3) Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0  (Y movement; -128 to +127)
(4) Z7 Z6 Z5 Z4 Z3 Z2 Z1 Z0  (Z movement; -128 to +127)

This is very similar to the generic PS/2 mouse,
with a few additions:

M = Middle Button State (1 = pressed down)
Z7,...,Z0 : Mouse wheel movement; 8-bit 2's-complement signed byte
    (The Z value is forced to a range of -8 to +7)

5.3 मेरी पहली सर्किट के लिए माउस सिमुलेट एक PS/2

निम्नलिखित कार्य योजना थी मेरी पहली तकनीक पाने के लिए मेरे "BASIC Stamp 2" कंप्यूटर डाटा भेजने के लिए माउस को PS/2 मेजबान (PC) .
2002june03_basicstamp_to_ps2mouse_circuit.jpg
योजना के सर्किट की अनुमति देने के लिए कंप्यूटर की BASIC Stamp भेजने के लिए PS/2 के पैकेट को होस्ट (PC) .
ध्यान दें कि इस सर्किट बिजली आइसोलेट्स BASIC Stamp मेरे कंप्यूटर से मेजबान कंप्यूटर (PC) .  यह भी ध्यान दें कि यह परिपथ ही है बिजली की आवश्यकताओं को पूरा करना PS/2 आंकड़ा संचरण ( युक्ति से होस्ट करने के लिए ) .  इस प्रकार , मैं संदेश भेज सकते हैं PS/2 कुंजीपटल का उपयोग करते हुए इस प्लग में यदि मैं एक ही सर्किट को PS/2 कुंजीपटल बंदरगाह पर होस्ट (PC) ! 

प्राप्त संकेतों के बाद से आमतौर पर गैर आक्रामक ( यानी , सुन विद्युत संकेतों में हस्तक्षेप नहीं करता है ) , केवल इस बात की अनुमति देने के लिए आवश्यक "BASIC Stamp" प्राप्त करने के लिए कंप्यूटर PS/2 CLOCK और DATA संकेतों से सीधा संबंध है उन संकेतों को अन्य BASIC Stamp I/O पिनों ( करने के लिए कॉन्फ़िगर किया जा आदानों ) .  मैं तो किसी तरह के प्रयास बफरन -- लेकिन मैं निश्चित रूप से एक का उपयोग नहीं कर सकते opto - सीधे अलगाने वाला है , ने एक के बाद से जो भार पर "चल" संकेतों ( "डूबने" उन्हें इस प्रकार है !  ) .  मैं +5V को सत्ता का उपयोग कर सकता है एक बफर , फिर उसके बाद निर्गम बफर का उपयोग करने के लिए ड्राइव opto - isolators है कि अंततः भेजने के संकेतों को BASIC Stamp I/O पिनों ( निवेश के रूप में विन्यस्त है ) . 

निम्नलिखित छवि से पता चलता है BASIC Stamp 2 मेरे कंप्यूटर से जुड़ा एक सर्किट मेल से ऊपर की योजना है . 
2002june03_basicstamp_mousecircuit01_adj.jpg
BASIC Stamp 2 कंप्यूटर से जुड़ा एक PS/2 माउस पोर्ट के द्वारा एक से अलगाने वाला opto सर्किट .
निम्नलिखित BASIC Stamp 2 कार्यक्रम , PBASIC प्रोग्रामिंग भाषा में लिखे थे , मेरा पहला प्रयास सफल PS/2 को नियंत्रित करने के लिए माउस के द्वारा कंप्यूटर BASIC Stamp 2 . 

इस कार्यक्रम से बस के साथ एक छोटा सा कदम माउस कर्सर विकर्ण लाइन है . 
'====================================================================
'{$STAMP  BS2} 'STAMP directive (specifies a BS2)

    DIR0 = %1 'Set pin 0 to OUTPUT
    DIR1 = %1 'Set pin 1 to OUTPUT
    OUT0 = %0 'Set DATA line high (pin low)
    OUT1 = %0 'Set CLOCK line high (pin low)
    tempData    VAR  BYTE
    tempParity  VAR  BYTE

'--------------------------------------------------------------------

MainLoop:

    tempCounter  VAR  WORD

    FOR tempCounter = 0 TO 10
    tempData = $28
    GOSUB TransmitPacket
    tempData = $01
    GOSUB TransmitPacket
    tempData = $ff
    GOSUB TransmitPacket
    tempData = $00
    GOSUB TransmitPacket
    PAUSE 100
    NEXT

    FOR tempCounter = 0 TO 10
    tempData = $18
    GOSUB TransmitPacket
    tempData = $ff
    GOSUB TransmitPacket
    tempData = $01
    GOSUB TransmitPacket
    tempData = $00
    GOSUB TransmitPacket
    PAUSE 100
    NEXT

    GOTO MainLoop

STOP

'--------------------------------------------------------------------

TransmitPacket:

    GOSUB ComputeParity       'First, compute parity

    tempData   = ~tempData    'Invert data bits
    tempParity = ~tempParity  'Invert parity bit

    '==== Start Bit ====
    OUT0 = %1 'Set data line low (output high)
    PULSOUT 1, 25   ' Pulse line 1 for (25*2) = 50 usec

    '==== Data Bits ====
    OUT0 = tempData.BIT0
    PULSOUT 1, 25
    OUT0 = tempData.BIT1
    PULSOUT 1, 25
    OUT0 = tempData.BIT2
    PULSOUT 1, 25
    OUT0 = tempData.BIT3
    PULSOUT 1, 25
    OUT0 = tempData.BIT4
    PULSOUT 1, 25
    OUT0 = tempData.BIT5
    PULSOUT 1, 25
    OUT0 = tempData.BIT6
    PULSOUT 1, 25
    OUT0 = tempData.BIT7
    PULSOUT 1, 25

    '==== Parity Bit ====
    OUT0 = tempParity.BIT0
    PULSOUT 1, 25

    '==== Stop Bit (high) ====
    OUT0 = %0  ' pin low is DATA high
    PULSOUT 1, 25

    PAUSE 1 ' Necessary? Provides 1 msec gap between packets...

RETURN

'--------------------------------------------------------------------

ComputeParity:

    tempParity = $01
    tempParity = tempParity + tempData.BIT0
    tempParity = tempParity + tempData.BIT1
    tempParity = tempParity + tempData.BIT2
    tempParity = tempParity + tempData.BIT3
    tempParity = tempParity + tempData.BIT4
    tempParity = tempParity + tempData.BIT5
    tempParity = tempParity + tempData.BIT6
    tempParity = tempParity + tempData.BIT7
    tempParity = tempParity & $01

RETURN

'====================================================================
इस प्रोग्राम की पूर्ण काम करता है .  मैं इसे चलाने के लिए घंटे दें , और यह माउस कर्सर flawlessly ने सही कदम दो स्थानों के बीच स्क्रीन पर .  यह वही है जो मैं तलाश : सटीक माउस नियंत्रण के साथ बातचीत कर सकते हैं कि मैं सॉफ्टवेयर है . 

इंटरनेट पर खोज के बाद पता चला कि मैं किसी और BASIC Stamp कंप्यूटर का उपयोग करने के लिए PS/2 अंतरफलक ( स्टिमुलेट में एक की बोर्ड ) .  इस व्यक्ति का उपयोग किया है PBASIC अनुदेश SHIFTOUT से निबटने के CLOCK और DATA संकेत है , जो वास्तव में महान है .  इससे अपने "TransmitPacket" उपनेमका काफी कम है , शायद 5 लाइनों की कुल कोड ! 

अन्य लोगों ने देखा कि मैं भी प्रयोग किया जाता TTL buffers के साथ निवेश से सीधे जुड़े PS/2 संकेतों ( CLOCK और DATA ) , और सीधे जुड़े outputs पिनों पर microcontroller चिप .  उसी में सर्किट , निर्गम लाइनों से सीधे जाकर microcontroller पिनों के आधार पर ट्रांजिस्टर ने जो अपने कलेक्टरों PS/2 संकेतों को सीधे जुड़ा है .  यह सब प्रत्यक्ष युग्मन विभिन्न सर्किट की तरह लगता है खराब विचार मुझ से , ऐसा न हो कि एक दूसरे के सर्किट भूनें .  मैं नहीं जानता कि क्या मैं तो करते हैं यदि मैं तले PS/2 के बंदरगाह पर मेरे PC .  खरीदें एक नया motherboard , मुझे लगता है !  को उन्नत करने के लिए एक बहाना है .  मुझे नहीं लगता कि एक PS/2 पोर्ट motherboard meltdown की संभावना है , लेकिन मैंने तुरन्त मेरे कंप्यूटर बन्द करना ग़लती से जब मैं छोटी circuited के +5V और GROUND जा रहे संकेतों के लिए माउस PS/2 .  शायद यह एक विशेषता है !  मैं एक नया बटन को जोड़ सकता है माउस सर्किट के कम ही है कि बिजली के लिए माउस को तत्काल बंद PC .  ;-) 

यहाँ की कड़ी के बारे में जानकारी के प्रयोग के SHIFTOUT के लिए प्रोटोकॉल PS/2 :
http://ourworld.compuserve.com/homepages/steve_lawther/keybinfo.htm
देखो के लिए नीचे दिए लिंक :
KEYBTST.ZIP   gives a very basic program for the parallax
-----------
BASIC stamp II, to send key-codes to the PC's keyboard port.
It also gives a write-up of the XT and AT keyboard interfaces
(although IMO some details could be wrong / different to the
keyboards I've looked at).
कैश्ड प्रति स्थानीय फ़ाइल :
keybtst.zip

10655 bytes
MD5: c5667557f96db53fb878bd11bfbe4f74
निम्नलिखित लिंक के बारे में अधिक जानकारी प्रदान करता है PS/2 माउस interfacing :
http://panda.cs.ndsu.nodak.edu/ ~ achapwes/PICmicro/PS2/ps2.htm
colinfahey.com
संपर्क जानकारी
English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية