- ہارڈ ویئر کی ضرورت ہے:
- پروگرامنگ کی ضرورت:
- راسبیری پائی پر پروسیسنگ ترتیب دینا:
- سرکٹ ڈایاگرام:
- راسبیری پیئ بال ٹریکنگ پروگرام:
- راسبیری پیئ بال ٹریکنگ روبوٹ کا کام:
روبوٹکس ، مصنوعی ذہانت اور مشین لرننگ کا میدان تیزی سے ترقی کر رہا ہے کہ مستقبل قریب میں بنی نوع انسان کے طرز زندگی کو تبدیل کرنے کا یقین ہے۔ روبوٹس کو سینسرز اور مشین لرننگ پروسیسنگ کے ذریعے حقیقی دنیا کو سمجھنے اور ان کے ساتھ تعامل کرنے کا خیال ہے امیج کی پہچان ایک ایسا مقبول طریقہ ہے جس میں روبوٹ کو کیمیا کے ذریعے حقیقی دنیا کو دیکھ کر اسی طرح اشیاء کو سمجھنے کے بارے میں سوچا جاتا ہے جیسے ہم کرتے ہیں۔ اس پروجیکٹ میں ، راسبیری پائی کی طاقت کو روبوٹ بنانے کے لئے استعمال کریں جو گیند کو ٹریک کرسکے اور اس کی پیروی کریں جس طرح فٹ بال کھیلتا ہے روبوٹ کی طرح ہے۔
اوپن سی وی ایک بہت مشہور اور اوپن سورس ٹول ہے جو امیج پروسیسنگ کے لئے استعمال ہوتا ہے ، لیکن اس ٹیوٹوریل میں چیزوں کو آسان رکھنے کے لئے ہم پروسیسنگ آئی ڈی ای کا استعمال کررہے ہیں۔ چونکہ اے آر ایم کے لئے پروسیسنگ نے GPIO لائبریری کو پروسیسنگ کے لئے بھی جاری کیا ہے لہذا ہمیں راسبیری پائ کے ساتھ کام کرنے کے لئے مزید ازگر ازال اور پروسیسنگ کے مابین منتقل نہیں ہونا پڑے گا۔ ٹھیک ہے ٹھیک؟ تو آئیے شروع کریں۔
ہارڈ ویئر کی ضرورت ہے:
- راسباری پائی
- ربن کیبل کے ساتھ کیمرے ماڈیول
- روبوٹ چیسیس
- پہیے والے گیئر موٹریں
- L293D موٹر ڈرائیور
- پاور بینک یا کوئی دوسرا پورٹیبل پاور سورس
پروگرامنگ کی ضرورت:
- راسبیری پائی کیلئے مانیٹر یا دیگر ڈسپلے کریں
- کلیدی بورڈ یا پائ کے لئے ماؤس
- پروسیسنگ بازو سافٹ ویئر
نوٹ: پروگرامنگ کے دوران تاروں کے ذریعہ پائ سے ڈسپلے جوڑنا لازمی ہے کیونکہ تب ہی کیمرہ کی ویڈیو دیکھی جاسکتی ہے
راسبیری پائی پر پروسیسنگ ترتیب دینا:
جیسا کہ پہلے بتایا گیا ہے کہ ہم اپنے راسبیری پِی کو پروگرام کرنے کے ل the پروسیسنگ کے ماحول کو استعمال کریں گے اور ازگر کا استعمال کرنے کا پہلے سے طے شدہ طریقہ نہیں۔ تو ، مندرجہ ذیل مراحل پر عمل کریں:
مرحلہ 1: - اپنی رسبری پائی کو اپنے مانیٹر ، کی بورڈ اور ماؤس سے جوڑیں اور اسے آن کریں۔
مرحلہ 2: - یقینی بنائیں کہ آپ پائی ایک فعال انٹرنیٹ کنکشن سے جڑے ہوئے ہیں کیونکہ ہم کچھ چیزیں ڈاؤن لوڈ کرنے ہی والے ہیں۔
مرحلہ 3: - راسبیری پائ کے لئے پروسیسنگ آئی ڈی ای ڈاؤن لوڈ کرنے کے لئے ، پروسیسنگ اے آر ایم پر کلک کریں۔ ڈاؤن لوڈ زپ فائل کی شکل میں ہوگا۔
مرحلہ 4: - ایک بار ڈاؤن لوڈ کرنے کے بعد ، اپنی زپ فولڈر میں فائلوں کو اپنی ترجیحی ڈائرکٹری میں نکالیں۔ میں نے اسے ابھی اپنے ڈیسک ٹاپ پر نکالا ہے۔
مرحلہ 5: - اب ، نکالا ہوا فولڈر کھولیں اور پروسیسنگ نامی فائل پر کلک کریں۔ اسے ایک ونڈو کو کھولنا چاہئے جیسا کہ ذیل میں دکھایا گیا ہے۔
مرحلہ 6: - یہ وہ ماحول ہے جہاں ہم اپنے کوڈ ٹائپ کریں گے۔ ایسے افراد کے لئے جو اردوینو سے واقف ہیں ، حیران نہ ہوں ہاں ، IDE آرڈوینو کی طرح نظر آتا ہے اور اسی طرح یہ پروگرام بھی دیکھتا ہے۔
مرحلہ 7: - ہمیں کام کرنے کے لئے اپنے بال مندرجہ ذیل پروگرام کے لئے دو لائبریریوں کی ضرورت ہے ، پھر انسٹال کرنے کے لئے صرف خاکہ -> درآمد لائبریری -> لائبریری شامل کریں پر کلک کریں ۔ مندرجہ ذیل ڈائیلاگ باکس کھل جائے گا۔
مرحلہ 8: - راسبیری پائی کو تلاش کرنے کے لئے بائیں بازو کے متن والے باکس کا استعمال کریں اور داخل کو دبائیں ، آپ کو تلاش کے نتیجے میں کچھ اس طرح نظر آنا چاہئے۔
مرحلہ 9: - "GL ویڈیو" اور "ہارڈ ویئر I / O" نامی لائبریریوں کی تلاش کریں اور انسٹال کرنے کے لئے انسٹال پر کلک کریں۔ اس بات کو یقینی بنائیں کہ آپ دونوں لائبریریوں کو انسٹال کریں۔
مرحلہ 10: - آپ کے انٹرنیٹ کی بنیاد پر انسٹالیشن میں کچھ منٹ لگیں گے۔ ایک بار کام کرنے کے بعد ہم سافٹ ویئر کی تیاری کے ل ready تیار ہیں۔
سرکٹ ڈایاگرام:
اس راسبیری پیئ بال ٹریکنگ پروجیکٹ کا سرکٹ ڈایاگرام نیچے دکھایا گیا ہے۔
جیسا کہ آپ دیکھ سکتے ہیں سرکٹ میں پی آئی کیمرا ، موٹر ڈرائیور ماڈیول اور رسبری پائی سے منسلک موٹرز کا ایک جوڑا شامل ہے۔ مکمل سرکٹ ایک موبائل پاور بینک کے ذریعہ تقویت یافتہ ہے (اوپر سرکٹ میں AAA بیٹری کی نمائندگی کرتا ہے)۔
چونکہ راسبیری پائ پر پنوں کی تفصیلات کا ذکر نہیں کیا گیا ہے ، لہذا ہمیں مندرجہ ذیل تصویر کا استعمال کرتے ہوئے پنوں کی تصدیق کرنے کی ضرورت ہے
موٹروں کو چلانے کے ل we ، ہمیں چار پن (A، B، A، B) کی ضرورت ہے۔ یہ چار پن بالترتیب GPIO14،4،17 اور 18 سے منسلک ہیں۔ نارنجی اور سفید تار مل کر ایک موٹر کے لئے کنکشن بناتے ہیں۔ تو ہمارے پاس دو موٹروں کے ل such اس طرح کے دو جوڑے ہیں۔
موٹر میں L293D موٹر ڈرائیور ماڈیول سے جڑا ہوا ہے جیسا کہ تصویر میں دکھایا گیا ہے اور ڈرائیور ماڈیول پاور بینک کے ذریعہ چلتا ہے ۔ اس بات کو یقینی بنائیں کہ پاور بینک کا گراؤنڈ راسبیری پائی کے گراؤنڈ سے جڑا ہوا ہے ، تب ہی آپ کا رابطہ چل سکے گا۔
یہی کام ہم اپنے ہارڈ ویئر کنکشن کے ساتھ کر رہے ہیں ، آئیے اپنے پروسیسنگ ماحول میں واپس جائیں اور اپنے روبوٹ کو گیند کو ٹریک کرنے کا طریقہ سکھانے کے لئے پروگرامنگ شروع کریں۔
راسبیری پیئ بال ٹریکنگ پروگرام:
اس پروجیکٹ کا مکمل پروسیسنگ پروگرام اس صفحے کے آخر میں دیا گیا ہے ، جسے آپ براہ راست استعمال کرتے ہیں۔ مزید نیچے ، میں نے کوڈ کے کام کی وضاحت کی ہے تاکہ آپ اسے اسی طرح کے دوسرے منصوبوں کے لئے استعمال کرسکیں۔
پروگرام کا تصور بہت سادہ ہے. اگرچہ اس منصوبے کا ارادہ کسی گیند کو ٹریک کرنا ہے ، لیکن ہم واقعی اس پر عمل نہیں کریں گے۔ ہم صرف اس کے رنگ کا استعمال کرتے ہوئے گیند کی شناخت کرنے جارہے ہیں۔ جیسا کہ ہم سب جانتے ہیں کہ ویڈیوز تصاویر کے مسلسل فریموں کے سوا کچھ نہیں ہوتے ہیں۔ لہذا ہم ہر تصویر لیتے ہیں اور اسے پکسلز میں تقسیم کرتے ہیں۔ پھر ہم ہر پکسل رنگ کا موازنہ گیند کے رنگ سے کرتے ہیں۔ اگر کوئی میچ مل جاتا ہے تو ہم کہہ سکتے ہیں کہ ہمیں گیند مل گئی ہے۔ اس معلومات سے ہم اسکرین پر گیند (پکسل رنگ) کی پوزیشن کی بھی شناخت کرسکتے ہیں۔ اگر پوزیشن بہت دور رہ جاتی ہے تو ہم روبوٹ کو دائیں طرف منتقل کرتے ہیں ، اگر پوزیشن زیادہ دائیں ہے تو ہم روبوٹ کو بائیں طرف منتقل کرتے ہیں تاکہ پکسل کی پوزیشن ہمیشہ اسکرین کے مرکز میں ہی رہے۔ واضح تصویر حاصل کرنے کے لئے آپ ڈینیئل شففمین کا کمپیوٹر وژن ویڈیو دیکھ سکتے ہیں۔
ہمیشہ کی طرح ہم ان دو لائبریریوں کو درآمد کرکے شروع کرتے ہیں جو ہم ڈاؤن لوڈ کرتے ہیں۔ یہ مندرجہ ذیل دو لائنوں کے ذریعہ کیا جاسکتا ہے۔ ہارڈ ویئر I / O لائبریری کا استعمال PI کے GPIO پنوں کو براہ راست پروسیسنگ ماحول سے حاصل کرنے کے لئے کیا جاتا ہے ، گلویڈیو لائبریری کو راسبیری پائی کیمرہ ماڈیول تک رسائی حاصل کرنے کے لئے استعمال کیا جاتا ہے۔
درآمد پروسیسنگ.io. *؛ امپورٹ gohai.glvideo. *؛
سیٹ اپ فنکشن کے اندر ہم موٹر کو قابو کرنے کے لئے آؤٹ پٹ پن کو ابتدا کرتے ہیں اور پی آئی کیمرا سے ویڈیو بھی حاصل کرتے ہیں اور سائز 320 * 240 کی ونڈو میں اس کا سائز بناتے ہیں۔
باطل سیٹ اپ () {سائز (320 ، 240 ، P2D)؛ ویڈیو = نیا GLCapture (یہ)؛ video.start ()؛ ٹریک کلر = رنگ (255 ، 0 ، 0)؛ GPIO.pinMode (4، GPIO.OUTPUT)؛ GPIO.pinMode (14 ، GPIO.OUTPUT)؛ GPIO.pinMode (17 ، GPIO.OUTPUT)؛ GPIO.pinMode (18 ، GPIO.OUTPUT)؛ }
باطل ڈرا لامحدود لوپ اس لوپ کے اندر کوڈ کے طور پر طویل عرصے کے طور پر پروگرام ختم کیا جاتا ہے پر عمل کیا جائے گا کی طرح ہے. اگر کیمرا ذریعہ دستیاب ہے تو ہم اس میں سے سامنے آنے والی ویڈیو کو پڑھتے ہیں
باطل ڈرا () {پس منظر (0)؛ اگر (ویڈیو. دستیاب ()). ویڈیو.ریڈ ()؛ }
پھر ہم ویڈیو فریم کو پکسلز میں تقسیم کرنا شروع کردیتے ہیں ۔ ہر پکسل کی قدر سرخ ، سبز اور نیلے رنگ کی ہوتی ہے۔ یہ اقدار متغیر r1 ، g1 اور b1 میں محفوظ ہیں
(int x = 0؛ x <video.width؛ x ++) {for (int y = 0؛ y <video.height؛ y ++) loc انٹ لوک = x + y * video.width؛ // موجودہ رنگ کا رنگ موجودہ رنگ کیا ہے = video.pixels؛ فلوٹ r1 = سرخ (موجودہ رنگ)؛ فلوٹ جی 1 = سبز (موجودہ رنگ)؛ فلوٹ بی 1 = نیلے (موجودہ رنگ)؛
ابتدائی طور پر گیند کا رنگ معلوم کرنے کے ل To ، ہمیں رنگ پر کلک کرنا ہوگا۔ ایک بار گیند پر کلک کرنے کے بعد ٹریک کلور نامی متغیر میں محفوظ ہوجائے گا ۔
باطل ماؤس پریشر () {// رنگ بچائیں جہاں ماؤس کو ٹریک کلر میں تبدیل کیا جاتا ہے۔ ٹریک کلر = ویڈیو.پکسلز؛ }
ایک بار ہمارے پاس ٹریک کا رنگ اور موجودہ رنگ آجانے کے بعد ہمیں ان کا موازنہ کرنا ہوگا۔ یہ موازنہ ڈسٹ فنکشن کا استعمال کر رہا ہے۔ یہ چیک کرتا ہے کہ موجودہ رنگ ٹریک رنگ کے کتنے قریب ہے۔
فلوٹ d = دور (r1، g1، b1، r2، g2، b2)؛
ضلع کی قدر ایک عین مطابق مماثلت کے لئے صفر ہو جائے گا. لہذا ، اگر دور کی قیمت ایک مخصوص قدر (ورلڈ ریکارڈ) سے کم ہے تو ہم فرض کریں گے کہ ہمیں ٹریک کا رنگ مل گیا ہے۔ پھر ہمیں اس پکسل کا مقام مل جاتا ہے اور گیند کے مقام کو تلاش کرنے کے لئے اسے متغیر کے قریب X اور قریب ترین Y میں اسٹور کیا جاتا ہے
if (d <WorldRecord) {WorldRecord = d؛ قریب X = x؛ قریب Y = y؛ }
ہم پائے گئے رنگ کے چاروں طرف بیضوی شکل بھی کھینچتے ہیں جس سے یہ ظاہر ہوتا ہے کہ رنگ مل گیا ہے۔ کنسول پر پوزیشن کی قدر بھی چھپی ہوئی ہے ، ڈیبگ کرتے وقت اس میں بہت مدد ملے گی۔
if (WorldRecord <10) {// ٹریک کردہ پکسل فل (ٹریک کلر) پر ایک حلقہ کھینچیں؛ اسٹروک ویٹ (4.0)؛ فالج (0)؛ بیضوی (قریب ترین ، قریب ترین ، 16 ، 16)؛ پرنٹلن (قریب ترین ، قریب ترین)؛
آخر میں ہم قریب ترین X اور قریب ترین Y کی پوزیشن کا موازنہ کرسکتے ہیں اور موٹروں کو اس طرح ایڈجسٹ کرسکتے ہیں کہ رنگ اسکرین کے مرکز میں آجائے۔ نیچے دیے گئے کوڈ کو روبوٹ کو دائیں طرف موڑنے کے لئے استعمال کیا جاتا ہے چونکہ رنگ کی X پوزیشن اسکرین کے بائیں جانب پایا جاتا تھا (<140)
اگر (قریب ترین <140) {GPIO.dGPalWrite (4 ، GPIO.HIGH)؛ GPIO.digitalWrite (14 ، GPIO.HIGH)؛ GPIO.digitalWrite (17 ، GPIO.HIGH)؛ GPIO.digitalWrite (18 ، GPIO.LOW)؛ تاخیر (10)؛ GPIO.digitalWrite (4، GPIO.HIGH)؛ GPIO.digitalWrite (14 ، GPIO.HIGH)؛ GPIO.digitalWrite (17 ، GPIO.HIGH)؛ GPIO.digitalWrite (18 ، GPIO.HIGH)؛ println ("دائیں مڑیں")؛ }
اسی طرح ہم موٹروں کو ضروری سمت پر قابو کرنے کے لئے X اور Y کی پوزیشن کو چیک کرسکتے ہیں۔ ہمیشہ کی طرح آپ مکمل پروگرام کے لئے صفحے کے نیچے کا حوالہ دے سکتے ہیں۔
راسبیری پیئ بال ٹریکنگ روبوٹ کا کام:
ایک بار جب آپ ہارڈ ویئر اور پروگرام کے ساتھ تیار ہوجائیں تو کچھ وقت تفریح کرنے کا وقت آگیا ہے۔ اس سے پہلے کہ ہم اپنے بوٹ کو زمین پر جانچیں ، ہمیں یہ یقینی بنانا چاہئے کہ سب کچھ ٹھیک چل رہا ہے۔ پروسیسنگ کوڈ کی نگرانی اور لانچ کرنے کے لئے اپنے پائ کو جوڑیں۔ آپ کو ایک چھوٹی سی ونڈو پر ویڈیو فیڈ دیکھنا چاہئے۔ اب ، گیند کو فریم کے اندر لائیں اور روبوٹ کو یہ سکھانے کے لئے گیند پر کلک کریں کہ اسے اس خاص رنگ کا پتہ لگانا چاہئے۔ اب گیند کو اسکرین کے آس پاس منتقل کریں اور آپ کو پہیے کو گھومتے ہوئے دیکھنا چاہئے۔
اگر ہر چیز توقع کے مطابق کام کر رہی ہے تو ، بوٹ کو زمین پر چھوڑ دیں اور اس کے ساتھ کھیلنا شروع کردیں۔ اس بات کو یقینی بنائیں کہ بہترین نتائج کے لئے کمرہ یکساں طور پر روشن ہو ۔ منصوبے کا مکمل کام ذیل ویڈیو میں دکھایا گیا ہے ۔ امید ہے کہ آپ کو پروجیکٹ سمجھ گیا ہوگا اور اسی طرح کی کچھ چیزیں بنانے میں خوشی محسوس ہوگی۔ اگر آپ کو کوئی پریشانی ہے تو وہ آزادانہ طور پر نیچے تبصرہ سیکشن پر پوسٹ کریں یا مدد کریں۔