क्या आप सीखना चाहते है कि खुद का रोबॉट कैसे बनायें? यहाँ विभिन्न प्रकार के रोबोट ऐसे है जिन्हें आप स्वयं बना सकते हैं। अधिकतर लोग उनके रोबोट से सामान्य कार्य करने की अपेक्षा ही करते है जैसे एक से दूसरे स्थान तक जाना। आप अपने रोबोट को पूर्णतया एनालॉग चीजों से या कोई स्टार्टर किट खरीद कर शुरुआत कर सकते हैं। स्वयं का रोबोट बनाना खुद को इलेक्ट्रॉनिक्स और कंप्यूटर प्रोग्राम सिखाने का एक बेहतरीन तरीका हैं।
चरण
-
अपने उपकरणों को इकट्ठा करें: एक सामान्य रोबोट बनाने के लिए, आपको कुछ सामान्य उपकरणों की आवश्यकता होगी। इनमे से अधिकतर को आप अपने नजदीकी इलेक्ट्रॉनिक्स की दुकान से खरीद सकते हैं, अथवा खरीदने के लिए आप ऑनलाइन रिटेलर की सहायता ले सकते हैं। कुछ सामान्य किट से भी आप अपने जरूरत के सामान पा सकते हैं। रोबोट बनाने के लिए आपको उनकी सोल्डरिंग की आवश्यकता नहीं होती हैं:
- आरड्यूईनो यूनो (Arduino Uno) या अन्य माइक्रोकंट्रोलर (microcontroller)
- 2 लगातार घूमने वाले सर्वोस (servos)
- 2 टायर जो सर्वोस (servos) में फिट हो सके
- 1 कास्ट रोलर (caster roller)
- 1 छोटा बिना सोल्डर का ब्रेड बोर्ड (solderless breadboard) ऐसे ब्रेडबोर्ड को खोजे जिसमे दोनों तरफ दो-फ़ो नकारात्म और सकारात्मक लाइन लगी हो।
- 1 डिस्टेन्स सेंसर (distance sensor) जिसमे चार पिनों की एक जोड़ने वाली केबल लगी हो।
- 1 छोटा पुश बटन जिसमे 1 10kΩ का रजिस्टर (resistor) भी शामिल हो।
- 1 ब्रेकवे हैडर (breakaway headers) का सेट
- 1 6 x AA बैटरी होल्डर 9V डीसी/DC पॉवर जैक के साथ
- 1 जम्पर तारो का पैकेट या 22-गैज हुक-अप तार
- मजबूत दोनों ओर से चिपकने वाली टेप या मजबूत गोंद
-
बैटरी को पलट दें ताकि आपको उसकी समतल सतह दिखाई दे सके: आप बैटरी का इस्तेमाल रोबोट के धड़ को बनाने के लिए इस्तेमाल करेंगे।
-
बैटरी पैक के अंत में दो सर्वोस (servos) को लगाएँ:यह अंत में लगे होने चाहिए ताकि बैटरी पैक के तार सर्वोस से बाहर की ओर आते हुए नीचे सतह तक पहुँच सके, और घूमने वाली मशीन बैटरी पैक के बाहर की ओर की दिशा में लगी होनी चाहिए। यह महत्वपूर्ण है कि आपके सर्वोस (servous) सही स्थिति में लगे हो ताकि टायर सीधी दिशा में चल सके। सर्वोस (servous) के लिए तार बैटरी के पीछे की ओर से निकलने चाहियें।
-
सर्वोस को टेप या गोंद की सहायता से स्थिर कर दें:निश्चित करे कि वे बैटरी पैक से मजबूती से जुड़े हुए है। सर्वोस (servous) का पिछला हिस्सा बैटरी के साथ पूर्ण रूप से जुड़ा होना चाहिए।
- सर्वोस (servous) अब बैटरी का आधा हिस्सा ढँक रहा होता हैं।
-
ब्रेडबोर्ड को बैटरी पर खाली बची जगह पर लंबाई में लगाएँ: यह बैटरी पैक के सामने की ओर हल्का सा लटकता हुआ होना चाहिए,और बैटरी के दोनों ओर बाहर निकला हुआ होना चाहिए। निश्चित करे कि आगे बढ़ने से पहले इसे सुरक्षित रूप से चिपका दिया गया हैं। “ए” पंक्ति सर्वोस (servous) के नजदीक होना चाहिए।
-
आरड्यूईनो (Arduino) माइक्रोकंट्रोलर को सर्वोस के ऊपर की ओर जोड़ें: यदि आप सर्वोस को सही तरीके से लगाएंगे, वहाँ एक समतल खाली जगह बचेगी। आरड्यूईनो (Arduino) बोर्ड को इस समतल जगह पर इस तरह लगाये कि आरड्यूईनो (Arduino) के यूएसबी (USB) और पॉवर कनेक्टर पीछे की तरफ (ब्रेडबोर्ड से दूर) स्थित हो। आरड्यूईनो (Arduino) का सामने का भाग ब्रेडबोर्ड को हल्का सा ढँक रहा होना चाहिए।
-
सर्वोस (servous) पर टायर सेट करें: टायरों को हलके हाथ से सर्वो (servo) की घूमने वाली मशीन पर लगाएँ। इसे लगाने के लिए आपको कुछ दम लगाना पड़ सकता है क्योंकि बेहतर संकर्षण के लिए उन्हें मजबूती से लगाया जाता हैं।
-
कास्टर को ब्रेडबोर्ड के सबसे नीचे की ओर लगा दें: यदि आप चेसिस को पलट कर देखेंगे, तो आपको ब्रेडबोर्ड बैटरी पैक की किनारों से हल्का बाहर नजर आएगा। इस बाहर की ओर निकले हुए भाग पर कास्टर को राइजर (risers) की सहायता से लगा दें। कास्टर अगले पहिये की तरह कार्य करता हैं, जो रोबोट को किसी भी दिशा में आसानी से घूमने के काबिल बनाता हैं। [१] X रिसर्च सोर्स
- यदि आप एक किट खरीदते है, तो कास्टर के साथ शायद आपको कुछ राइजर (risers) भी उसमे दीये जाएंगे जिनका इस्तेमाल कर आप कास्टर का जमीन तक पहुँचना सुनिश्चित कर सकते हैं।
-
3-पिन हैडर को अलग अलग कर दें: इनका इस्तेमाल आप ब्रेडबोर्ड और सर्वोस (servous) को आपस में जोड़ने के लिए करते हैं। पिनों को हैडर से होते हुए नीचे की ओर दबा दें ताकि पिन दोनों ओर बराबर आकार में बाहर निकल सके।
-
दो हेडर को 1-3 और 6-8 पिन में ब्रेडबोर्ड के इ (E) पंक्ति में लगाएँ: सुनिश्चित करे कि वे सही से लगाई जा चुकी हैं।
-
बायीं ओर की काले रंग की केबल (पिन 1 और 6) के द्वारा सर्वो (servo) केबल को हेडर से जोड़ दें: इससे आपका सर्वो (servo) ब्रेडबोर्ड से जुड़ जायेगा। निश्चित करे कि बायां सर्वो (servo) बायें हेडर से और दायां सर्वो (servo) दायें हेडर से जुड़ा हुआ हैं।
-
लाल रंग के जम्पर (jumper) तार को C2 पिन से और C7 को लाल (धनात्मक) रेल पिन से जोड़ दें: ध्यान रहे कि आप लाल रेल का इस्तेमाल ब्रेडबोर्ड के पीछे की तरफ (बाकी चेसिस के नजदीक) करे।
-
काले रंग के जम्पर (jumper) तारो को पिन B1 और B6 को नीली रेल पिन से जोड़े: ध्यान रहे कि आप नीले रेल को ब्रेडबोर्ड के पीछे की ओर ही इस्तेमाल करे। उन्हें लाल रेल पिन में नहीं जोड़ दें।
-
सफ़ेद जम्पर (jumper) तार को आरड्यूईनो (Arduino) A3 और A8 के पिन 12 और 13 से जोड़े:यह आरड्यूईनो (Arduino) को सर्वोस (servous) पर नियंत्रण बनाने देगा जिसके फलस्वरूप टायर चल पाएंगे।
-
सेंसर को ब्रेडबोर्ड के सामने की ओर जोड़े: इसे ब्रेडबोर्ड के बाह्य पॉवर रेल में नहीं जोड़ा जाता हैं, इसके बजाय इसे पहली पंक्ति में लिखे हुए अक्षर (J) से जोड़ा जाता हैं। निश्चित करे कि आप इसे बिलकुल मध्य में लगाएंगे, और जांच ले कि दोनो तरफ बराबर संख्या में पिन हैं।
-
काले रंग के काले जम्पर (jumper) तार को पिन I14 से लेकर पहली उपलब्ध नीली रंग की रेल पिन से जोड़ दें: इससे सेंसर सक्रिय हो जायेगा।
-
लाल रंग के जम्पर (jumper) तार को पिन I17 से पहली उपलब्ध लाल रेल पिन से जोड़ दे जो कि सेंसर के दायीं ओर हैं: यह सेंसर को बिजली उपलब्ध करेगा।
-
सफ़ेद जम्पर तार को पिन I15 से आरड्यूईनो (Arduino) की पिन 9 से और I16 को पिन 8 से जिद दें: यह सेंसर की जानकारियों को माइक्रोकंट्रोलर से जोड़ेगा।
-
रोबोट को एक तरफ मोड़ दें ताकि आप वहाँ बैटरी पैक देख सके: वहाँ थोड़ा प्रकाश करे ताकि आप बैटरी पैक को देख सकें।
-
लाल तार को दूसरी स्प्रिंग बायीं और नीचे की तरफ जोड़ दें: ध्यान रहे कि बैटरी पैक सही से प्रकाशमय है।
-
एक काले रंग के तार को सबसे नीचे-दायीं की स्प्रिंग से जोड़ दें: ये दोनो केबल आरड्यूईनो (Arduino) को सही वोल्टेज उपलब्ध करवाता हैं।
-
लाल और काले तार को ब्रेडबोर्ड के पीछे की ओर के सबसे दूर वाली लाल और नीले रंग की पिन से जोड़े: काले रंग की केबल पिन 30 के नील रंग की पिन में लगा दें। लाल रंग की पिन को 30 नंबर पिन के नील रंग की रेल पिन में ही लगाई होनी चाहिए।
-
काले रंग की पिन को जीएनडी (GND) पिन से आरड्यूईनो (Arduino) पर पिछली नीली पिन से जोड़े। इसे नीली रेल पर पिन 28 से जोड़े।
-
काले रंग के तार को नीले रेल से पिन 29 के सामने वाले नीले रेल से जोड़े: लाल रंग के रेल (rail) से “नहीं” जोड़े, इससे आप आरड्यूईनो (Arduino) को क्षतिग्रस्त कर बैठेंगे।
-
लाल तार को आरड्यूईनो (Arduino) पर दिए पिन 30 के सामने वाले लाल रेल से 5V से जोड़े: यह आरड्यूईनो (Arduino) को बिजली प्रदान करता हैं।
-
पिन 24-26 पंक्तियों कस बीच के स्थान में पुश बटन स्विच लगाएँ: ये स्विच आपको रोबोट को चालू बंद करने में सहायता करेगा।
-
एक लाल तार को H24 से सेंसर के सामने उपलब्ध लाल रेल से जोड़ें: यह आपके बटन को पॉवर देगा।
-
रजिस्टर (resistor) का इस्तेमाल H26 को नीले रेल से जोड़ने के लिए करें: इसे सीधे उस काले तार से जोड़ दे जो आपने कुछ चरण पहले जोड़ा था।
-
एक सफ़ेद तार को G26 से आरड्यूईनो (Arduino) पर पिन 2 से जोड़े: यह आरड्यूईनो (Arduino) को पुश बटन रजिस्टर करने की अनुमति देगा।
-
आरड्यूईनो (Arduino) आईडीइ (IDE) को डाउनलोड और एक्सट्रेक्ट करें: यह आरड्यूईनो (Arduino) विकास पर्यावरण है, जहाँ आप आदेशो को प्रोग्राम कर उन्हें आरड्यूईनो (Arduino) माइक्रोकंट्रोलर में अपलोड कर सकते हैं। इसे आप यहाँ से मुफ्त में डाउनलोड कर सकते हैं arduino.cc/en/main/software । डाउनलोड होने वाली फाइल पर दोहरा क्लिक कर इसे खोले फोल्डर किसी अन्य व्यवस्थित स्थान पर कॉपी कर दें। अन्यथा आपको इसे बार बार अनजिप करना होगा।
-
बैटरी पैक को आरड्यूईनो (Arduino) से जोड़े: बैटरी के पिछले जैक को आरड्यूईनो (Arduino) के कनेक्टर से जोड़े।
-
आरड्यूईनो (Arduino) को यूएसबी की सहायता से कंप्यूटर से जोड़े: विंडोज आपके डिवाइस को शायद पहचान नहीं पायेगा।
-
. ⊞ Win + R बटनों को दबाये और devmgmt.msc लिखें। इससे आपके कंप्यूटर का डिवाइस मेनेजर खुल जायेगा।
-
अन्य डिवाइस क्षेत्र में ”अनजान डिवाइस” पर दायां क्लिक करे और "अपडेट ड्राइवर सॉफ्टवेयर" पर क्लिक करें। यदि आपको चुनाव दिखाई नहीं देता हैं, तो इसके स्थान पर "प्रॉपर्टीज (Properties)" पर क्लिक करे, और “ड्राइवर” टैब पर क्लिक करे और “अपडेट ड्राईवर” पर क्लिक करें।"
-
"ड्राइवर सॉफ्टवेयर" के लिए कंप्यूटर को ब्राउज करें: इससे आप आरड्यूईनो (Arduino) आईडीइ (IDE) के साथ आने वाले ड्राईवर का इस्तेमाल कर सकते हैं।
-
”ब्राउज” पर क्लिक करे और उस फोल्डर को चुने जहाँ आपने फाइलों को पहले एक्सट्रेक्ट किया था। यहाँ आपको एक ड्राईवर फोल्डर दिखाई देगा।
-
”ड्राइवर” फोल्डर को सलेक्ट करे और "ओके (OK)" पर क्लिक कर आगे बढ़ने की पुष्टि करें, यहाँ आपको अज्ञात सॉफ्टवेयर के बारे में चेतावनी दी जायेगी।
-
आरड्यूईनो (Arduino) आईडीइ (IDE) को शुरू करने के लिए आईडीइ (IDE) फोल्डर में arduino.exe फाइल पर दोहरा क्लिक करें। जहाँ आपको एक खाली प्रोजेक्ट दिखाया जायेगा।
-
इस कोड को पेस्ट कर आप अपने रोबोट को सीधे ही काम करना शुरू कर सकते हैं। नीचे दिया गया कोड आपके आरड्यूईनो (Arduino) को लगातार सीधे चलाने में सक्षम बनाएगा।
#include <Servo.h> // यह सर्वो (servo) प्रोग्रामअम को आपके कंप्यूटर की लाइब्रेरी में सवे कर लेगा। // निम्नलिखित कोड दो प्रकार में सर्वो बनाता हैं Servo leftMotor ; Servo rightMotor ; void setup () { leftMotor . attach ( 12 ); // यदि आप गलती से अपने सर्वो (servo) के लिए पिन नम्बर चालू कर देते हैं, यहाँ से आप इन नम्बरो को बदल सख्तइ हैं। rightMotor . attach ( 13 ); } void loop () { leftMotor . write ( 180 ); // लगातार घूमने पर , 180 सर्वो (servo) से कहता है कि पूरी गति के साथ आगे बढ़ें। rightMotor . write ( 0 ); // यदि ये दोनों 180 पर है तो रोबोट गोलाई में चलेगा क्योंकि सर्वोज (servos) बदल गए हैं। “0” इसे पूरी गति से पीछे की ओर चलने का कहता हैं। }
-
प्रोग्राम बनाये और उसे अपलोड कर दें। ऊपरी बायें कोने में दिख रहे तीर के बटन पर क्लिक करे और प्रोग्राम को जुड़े हुए आरड्यूईनो (Arduino) में अपलोड कर दें।
- आपको रोबोट को जमीं से उठाना हिगा क्योंकि जैसे ही प्रोग्राम उसमे अपलोड होगा रोबोट चलना शुरू हो जायेगा।
-
किल (kill) स्विच की क्रियाविधि को जोड़े। निम्नलिखित कोड "void loop()" को आपके कोड भाग में जोड़कर किल स्विच को इनेबल करें, इस "write()" कोड के ऊपर लिखें।
if ( digitalRead ( 2 ) == HIGH ) // आरड्यूईनो (Arduino) के पिन 2 पर बटन दबाने पर यह रजिस्टर करता है। { while ( 1 ) { leftMotor . write ( 90 ); // "90" सर्वो (servo) के लिए एक तटस्थ स्थिति है, जो उसे मुड़ने से रोकता हैं। rightMotor . write ( 90 ); } }
-
इस कोड को अपलोड करे और जाँचे: किल स्विच के कोड के साथ जोड़कर आप इस कोड का परीक्षण कर सकते हैं। इससे वह लगातार चलता जायेगा जब तक की आप स्विच नहीं दबा देंगे, आपके द्वारा स्विच दबाने पर वह चलना बानद हो जायेगा। पूरा कोड कुछ इस प्रकार दिखाई देता हैं:
#include <Servo.h> // the following creates two servo objects Servo leftMotor ; Servo rightMotor ; void setup () { leftMotor . attach ( 12 ); rightMotor . attach ( 13 ); } void loop () { if ( digitalRead ( 2 ) == HIGH ) { while ( 1 ) { leftMotor . write ( 90 ); rightMotor . write ( 90 ); } } leftMotor . write ( 180 ); rightMotor . write ( 0 ); }
उदाहरण
निम्नलिखित कोड रोबोट के सेंसर का इस्तेमाल कर रास्ते में किसी रुकावट के आपने पर उसको दायें या बाएं घुमाएगा। कोड के प्रत्येक भाग के बारे में ज्यादा जानकारी के लिए टिप्पणियॉ देखें। नीचे दिए गए कोड पूरा प्रोग्राम हैं। [२] X रिसर्च सोर्स
#include
<Servo.h>
Servo
leftMotor
;
Servo
rightMotor
;
const
int
serialPeriod
=
250
;
// this limits output to the console to once every 1/4 second
unsigned
long
timeSerialDelay
=
0
;
const
int
loopPeriod
=
20
;
// this sets how often the sensor takes a reading to 20ms, which is a frequency of 50Hz
unsigned
long
timeLoopDelay
=
0
;
// this assigns the TRIG and ECHO functions to the pins on the Arduino. Make adjustments to the numbers here if you connected differently
const
int
ultrasonic2TrigPin
=
8
;
const
int
ultrasonic2EchoPin
=
9
;
int
ultrasonic2Distance
;
int
ultrasonic2Duration
;
// this defines the two possible states for the robot: driving forward or turning left
#define DRIVE_FORWARD 0
#define TURN_LEFT 1
int
state
=
DRIVE_FORWARD
;
// 0 = drive forward (DEFAULT), 1 = turn left
void
setup
()
{
Serial
.
begin
(
9600
);
// these sensor pin configurations
pinMode
(
ultrasonic2TrigPin
,
OUTPUT
);
pinMode
(
ultrasonic2EchoPin
,
INPUT
);
// this assigns the motors to the Arduino pins
leftMotor
.
attach
(
12
);
rightMotor
.
attach
(
13
);
}
void
loop
()
{
if
(
digitalRead
(
2
)
==
HIGH
)
// this detects the kill switch
{
while
(
1
)
{
leftMotor
.
write
(
90
);
rightMotor
.
write
(
90
);
}
}
debugOutput
();
// this prints debugging messages to the serial console
if
(
millis
()
-
timeLoopDelay
>=
loopPeriod
)
{
readUltrasonicSensors
();
// this instructs the sensor to read and store the measured distances
stateMachine
();
timeLoopDelay
=
millis
();
}
}
void
stateMachine
()
{
if
(
state
==
DRIVE_FORWARD
)
// if no obstacles detected
{
if
(
ultrasonic2Distance
>
6
||
ultrasonic2Distance
<
0
)
// if there's nothing in front of the robot. ultrasonicDistance will be negative for some ultrasonics if there is no obstacle
{
// drive forward
rightMotor
.
write
(
180
);
leftMotor
.
write
(
0
);
}
else
// if there's an object in front of us
{
state
=
TURN_LEFT
;
}
}
else
if
(
state
==
TURN_LEFT
)
// if an obstacle is detected, turn left
{
unsigned
long
timeToTurnLeft
=
500
;
// it takes around .5 seconds to turn 90 degrees. You may need to adjust this if your wheels are a different size than the example
unsigned
long
turnStartTime
=
millis
();
// save the time that we started turning
while
((
millis
()
-
turnStartTime
)
<
timeToTurnLeft
)
// stay in this loop until timeToTurnLeft has elapsed
{
// turn left, remember that when both are set to "180" it will turn.
rightMotor
.
write
(
180
);
leftMotor
.
write
(
180
);
}
state
=
DRIVE_FORWARD
;
}
}
void
readUltrasonicSensors
()
{
// this is for ultrasonic 2. You may need to change these commands if you use a different sensor.
digitalWrite
(
ultrasonic2TrigPin
,
HIGH
);
delayMicroseconds
(
10
);
// keeps the trig pin high for at least 10 microseconds
digitalWrite
(
ultrasonic2TrigPin
,
LOW
);
ultrasonic2Duration
=
pulseIn
(
ultrasonic2EchoPin
,
HIGH
);
ultrasonic2Distance
=
(
ultrasonic2Duration
/
2
)
/
29
;
}
// the following is for debugging errors in the console.
void
debugOutput
()
{
if
((
millis
()
-
timeSerialDelay
)
>
serialPeriod
)
{
Serial
.
print
(
"ultrasonic2Distance: "
);
Serial
.
print
(
ultrasonic2Distance
);
Serial
.
print
(
"cm"
);
Serial
.
println
();
timeSerialDelay
=
millis
();
}
}
वीडियो
रेफरेन्स
विकीहाउ के बारे में
अपने आप से चलने लायक एक सिम्पल रोबोट बनाने के लिए, स्टार्टर किट खरीद लें या फिर इलेक्ट्रॉनिक्स सप्लायर से आपकी जरूरत के सारे कम्पोनेंट्स खरीद लें। आपको एक माइक्रोकंट्रोलर, एक छोटा कंप्यूटर, जो आपके रोबोट के ब्रेन की तरह काम करेगा; व्हील्स को चलाने के लिए लगातार रोटेशन करने वाले सर्वोस (servos), सर्वोस पर फिट होने वाले व्हील्स; एक केस्टर रोलर; अपने सर्किट्स बनाने के लिए एक छोटा सोल्डर-लैस ब्रैडबोर्ड; एक बैटरी होल्डर; एक डिस्टेन्स सेंसर; एक पुश बटन स्विच और जम्पर वायर्स की जरूरत होगी। सर्वोस के घूमने वाले एंड को, बैटरी पैक के लॉन्ग साइड पर रखने का ध्यान रखते हुए, सर्वोस को डबल साइडेड टेप या हॉट ग्लू से बैटरी पैक के छोर पर चिपका दें। टेप या हॉट ग्लू की मदद से, ब्रैडबोर्ड को बैटरी पैक पर सर्वोस के बाद लगा दें। माइक्रोकंट्रोलर को सर्वोस के ऊपर फ्लेट सर्फ़ेस पर रखें और उसे वहाँ पर अच्छी तरह से जोड़ दें। सर्वोस के स्पिंडल्स पर व्हील्स को मजबूती से दबाएँ। केस्टर को ब्रैडबोर्ड के सामने लगा दें। केस्टर बिना किसी रुकावट के घूमता है और रोबोट के सामने के व्हील की तरह काम करता है, जो उसके लिए किसी भी दिशा में मुड़ना और घूमना आसान बना देता है। डिस्टेन्स सेंसर को आपके ब्रैडबोर्ड के सामने लगा दें। सर्वोस, माइक्रोकंट्रोलर, स्विच और बैटरी पैक को अपने ब्रैडबोर्ड पर कनैक्ट करते हुए, अपने रोबोट की वायरिंग करें। अपने माइक्रोकंट्रोलर को USB केबल के जरिए, एक कंप्यूटर से कनैक्ट कर दें। अपने कंप्यूटर से माइक्रोकंट्रोलर पर कुछ बेसिक प्रोग्राम अपलोड करें। ये रोबोट आगे जा सकता है, पीछे जा सकता है, रुक सकता है और सामने मौजूद किसी भी रुकावट से दूर मुड़ सकता है। अपने रोबोट को किसी स्मूद, चिकनी सर्फ़ेस पर चेक करें और पता लगाएँ, कि आप इससे और क्या-क्या करा सकते हैं। Arduino सॉफ्टवेयर इस्तेमाल करने जैसी और सलाह पाने के लिए, पढ़ते जाएँ!