ओपन-सोर्स हार्डवेयर क्या है?
ओपन-सोर्स हार्डवेयर ऐसा हार्डवेयर है जिसकी डिज़ाइन फ़ाइलें खुलकर साझा की जाती हैं: सर्किट चित्र, बोर्ड का नक़्शा और कोड। कोई भी इन्हें पढ़ सकता है, बना सकता है और सुधार सकता है। लोकप्रिय उदाहरण हैं आर्डुइनो जैसे बोर्ड, रास्पबेरी पाई और कई सेंसर मॉड्यूल।
माइक्रोकंट्रोलर बोर्ड एक चिप पर बना छोटा कंप्यूटर है, जिसमें बाहरी दुनिया जोड़ने के लिए पिन होते हैं।
पिन: डिजिटल, एनालॉग और पावर
पिन धातु का वह जोड़ है जिससे बोर्ड तार या मॉड्यूल से जुड़ता है।
- डिजिटल पिन की सिर्फ़ दो अवस्थाएँ हैं: HIGH (ON, लगभग 5 V या 3.3 V) और LOW (OFF, 0 V)। बटन और LED के लिए।
- एनालॉग इनपुट पिन 0 V से सप्लाई के बीच का स्तर नापकर संख्या देते हैं, आम तौर पर 0 से 1023 (10 बिट)। रोशनी के सेंसर और घुंडी के लिए।
- PWM पिन ऐसे डिजिटल पिन हैं जो बहुत तेज़ी से ON-OFF होकर चिकने स्तर जैसा काम करते हैं, जैसे LED धीमी करना।
- पावर पिन: 5V या 3.3V बिजली देते हैं, GND (ग्राउंड) वापसी का रास्ता है। सभी मॉड्यूलों का GND साझा होना चाहिए।
setup में पिन को INPUT या OUTPUT तय किया जाता है। ग़लत दिशा आम ग़लती है।
इनपुट और आउटपुट मॉड्यूल
मॉड्यूल एक काम के लिए बना छोटा तैयार बोर्ड है।
- इनपुट मॉड्यूल जानकारी अंदर लाते हैं: बटन, स्विच, रोशनी का सेंसर, तापमान सेंसर, अल्ट्रासोनिक दूरी सेंसर, घुंडी।
- आउटपुट मॉड्यूल दुनिया पर काम करते हैं: LED, बज़र, डिस्प्ले, रिले, मोटर।
कोड में पढ़ना-लिखना ऐसा दिखता है: digitalRead(2), analogRead(A0), digitalWrite(13, HIGH)। बटन को पुल-अप या पुल-डाउन रोधक चाहिए ताकि पिन HIGH और LOW के बीच न झूले। LED के साथ रोधक (जैसे 220 Ω) चाहिए ताकि ज़्यादा धारा से वह न जले।
बोर्ड और कंप्यूटर के बीच संचार
बोर्ड डेटा बिट के रूप में भेजते हैं। सीरियल संचार में बिट एक के बाद एक तार पर जाते हैं।
- UART सीरियल में दो तार: TX (भेजना) और RX (पाना)। एक का TX दूसरे के RX से जुड़ता है। दोनों की गति समान होनी चाहिए, जिसे बॉड दर कहते हैं (जैसे 9600 बिट प्रति सेकंड)।
- I²C में दो साझा तार (SDA डेटा, SCL घड़ी) पर कई सेंसर जुड़ते हैं; हर एक का अपना पता होता है।
- SPI तेज़ है और चार तार लेता है; मेमोरी कार्ड और डिस्प्ले के लिए अच्छा।
- वायरलेस: जहाँ तार ठीक न हो, वहाँ ब्लूटूथ और वाई-फ़ाई।
सीरियल प्रिंट (Serial.println) से प्रोग्राम की गड़बड़ी देखना भी सबसे आसान है।
प्रोजेक्ट का कार्य-क्रम: setup और loop
इन बोर्डों के ज़्यादातर प्रोग्राम में दो भाग होते हैं।
setup()एक बार चलता है: पिन की दिशा तय करो, सीरियल शुरू करो।loop()बार-बार चलता है: इनपुट पढ़ो → तय करो → आउटपुट लिखो → प्रिंट करो।
अच्छा कार्य-क्रम: इनपुट-आउटपुट की सूची → सर्किट बनाओ → छोटा प्रोग्राम लिखो → एक-एक मॉड्यूल परखो → जोड़ो → पूरा प्रोजेक्ट परखो → जो किया उसे लिख लो।
खुद आज़माओ: बटन और रोशनी का नियम
3D में आख़िरी चरण पर जाओ। सीमा 600 रखो। सेंसर मान 300 से 800 तक खिसकाओ और देखो LED कब जलती है। अब अंदाज़ा लगाओ: सीमा 200 और सेंसर मान 300 हो तो LED ON होगी या OFF? जाँचो।
घर पर असली पुर्ज़ों से: बटन पिन 2 से और LED (220 Ω रोधक के साथ) पिन 13 से जोड़ो। loop() में लिखो if (digitalRead(2) == HIGH) digitalWrite(13, HIGH); else digitalWrite(13, LOW);।
मुख्य सूत्र और परिभाषाएँ
- एनालॉग मान = (इनपुट वोल्ट ÷ सप्लाई वोल्ट) × 1023
- LED का रोधक R = (सप्लाई V − LED V) ÷ धारा
- बिट प्रति सेकंड (बॉड) ÷ 10 ≈ अक्षर प्रति सेकंड
- मुख्य शब्द: पिन, HIGH/LOW, ADC, TX/RX, बॉड, setup/loop
हल किए गए उदाहरण
1. एक बोर्ड 5 V पर एनालॉग पिन से सेंसर पढ़ता है। सेंसर 2.5 V देता है। 10-बिट analogRead क्या दिखाएगा?
मान = (2.5 ÷ 5) × 1023 ≈ 512।
2. एक LED को 20 mA चाहिए और वह 2 V गिराती है। सप्लाई 5 V है। कौन-सा रोधक चाहिए?
R = (5 − 2) ÷ 0.020 = 150 Ω। अगला मानक मान 180 Ω या 220 Ω लो।
3. एक सीरियल लिंक 9600 बॉड पर है और हर अक्षर में 10 बिट हैं (8 डेटा + स्टार्ट + स्टॉप)। लगभग कितने अक्षर प्रति सेकंड?
9600 ÷ 10 = 960 अक्षर प्रति सेकंड।
4. रात के लैंप का नियम लिखो: रोशनी सेंसर 300 से कम पढ़े तो LED जले।
if (analogRead(A0) < 300) digitalWrite(13, HIGH); else digitalWrite(13, LOW);
5. एक प्रोजेक्ट में 2 बटन, 1 सेंसर, 3 LED और 1 बज़र हैं। सेंसर एनालॉग हो तो कितने डिजिटल और एनालॉग पिन चाहिए?
डिजिटल: 2 + 3 + 1 = 6। एनालॉग: 1। कुल 7 पिन, साथ में पावर और ग्राउंड।
आम गलतियाँ
- TX को TX से जोड़ना। एक का TX दूसरे के RX में जाना चाहिए।
- LED के साथ रोधक भूल जाना, जिससे LED जल सकती है।
- बोर्ड और मॉड्यूल के ग्राउंड (GND) जोड़ना भूल जाना।
- बटन के पिन को पुल-अप या पुल-डाउन के बिना छोड़ना, जिससे पाठ्यांक बेतरतीब बदलता है।