- مطلوبہ مواد:
- روبوٹ سے بچنے میں رکاوٹ کا تصور:
- سرکٹ ڈایاگرام اور وضاحت:
- آپ کو پی آئی سی مائکرو قابو والی پروگرامنگ:
- ایکشن میں رکاوٹوں سے بچنے والا روبوٹ:
رکاوٹوں سے بچنے والا روبوٹ ایک اور مشہور روبوٹ ہے جو ایمبیڈڈ پروجیکٹس کو تیار کرتا ہے۔ نئے رکاوٹوں سے بچنے والے روبوٹ کے ل. ، یہ صرف ایک عام پہی wheا والا روبوٹ ہے جو بغیر کسی رکاوٹوں کا نشانہ بنائے اپنا راستہ بنا سکتا ہے۔ منصوبے میں رکاوٹ سے بچنے والے روبوٹ کی تعمیر کے بہت سارے راستے ہیں ہم ایک الٹراسونک سینسر (سامنے) اور دو آئی آر سینسر (بائیں / دائیں) استعمال کریں گے تاکہ ہمارے روبوٹ کی تینوں سمتوں میں آنکھیں ہوں۔ اس طرح آپ تینوں اطراف میں چیزوں کا پتہ لگانے اور اس کے مطابق ہتھیاروں سے اسے زیادہ بہتر اور تیز تر بناسکتے ہیں۔ روبوٹ سے گریز کرنے والی اس رکاوٹ کے لئے ہم یہاں PIC مائکروکنٹرولر PIC16F877A کے خلاف مقدمہ دائر کر رہے ہیں ۔
روبوٹ سے گریز کرنے میں رکاوٹ کا آپریشن ایک حقیقی وقت کی مصنوع سے دیکھا جاسکتا ہے جسے ہوم صفائی والے روبوٹ کہتے ہیں۔ اگرچہ ان میں استعمال ہونے والی ٹکنالوجی اور سینسر بہت پیچیدہ ہیں ، لیکن تصور ایک جیسا ہی ہے۔ آئیے دیکھتے ہیں کہ ہم اپنے عام سینسرز اور پی آئی سی مائکروکنٹرولرز کا استعمال کرتے ہوئے کتنا پورا کرسکتے ہیں۔
روبوٹس سے پرہیز کرنے والے ہمارے دیگر رکاوٹوں کو بھی چیک کریں:
- راسبیری پائی پر مبنی رکاوٹ روبوٹ سے بچنا
- ارڈینو کا استعمال کرتے ہوئے DIY اسمارٹ ویکیوم صفائی کرنے والا روبوٹ
مطلوبہ مواد:
- PIC16F877A
- IR سینسر (2 نمبر)
- الٹراسونک سینسر (1 نمبر)
- ڈی سی گئر موٹر (2 نمبر)
- L293D موٹر ڈرائیور
- چیائسز (آپ گتے کا استعمال کرتے ہوئے خود بھی تعمیر کرسکتے ہیں)
- پاور بینک (بجلی کا کوئی بھی وسیلہ)
روبوٹ سے بچنے میں رکاوٹ کا تصور:
روبوٹ میں رکاوٹ سے بچنے کا تصور بہت آسان ہے۔ ہم روبوٹ کے آس پاس اشیاء کی موجودگی کا پتہ لگانے کے ل sen سینسر کا استعمال کرتے ہیں اور ان اعداد و شمار کو روبوٹ سے ان اشیاء پر ٹکرانے کے لئے استعمال نہیں کرتے ہیں۔ کسی آبجیکٹ کا پتہ لگانے کے لئے ہم کسی بھی استعمال کے سینسر جیسے آئی آر سینسر اور الٹراسونک سینسر کا استعمال کرسکتے ہیں ۔
اپنے روبوٹ میں ہم نے امریکی سینسر کو بالترتیب بائیں اور دائیں کیلئے فرنٹ سینسر اور دو IR سینسر کے طور پر استعمال کیا ہے۔ جب روبوٹ کے سامنے کوئی شے موجود نہ ہو تب روبوٹ آگے بڑھے گا۔ لہذا روبوٹ اس وقت تک آگے بڑھے گا جب تک کہ الٹراسونک (امریکی) سینسر کسی بھی شے کا پتہ نہیں لگاتا ہے ۔
جب امریکی سینسر کے ذریعہ کسی شے کا پتہ چل جاتا ہے ، تو وقت آگیا ہے کہ روبوٹ کی سمت کو تبدیل کیا جائے۔ ہم یا تو بائیں یا دائیں مڑ سکتے ہیں ، رخ موڑ کا فیصلہ کرنے کے لئے ہم IR سینسر کی مدد سے یہ جانچنے کے ل. کہ آیا روبوٹ کے بائیں یا دائیں طرف کوئی شے موجود ہے۔
اگر روبوٹ کے سامنے اور دائیں جانب کسی اعتراض کا پتہ چل گیا تو روبوٹ واپس آکر بائیں طرف مڑ جائے گا۔ ہم روبوٹ کو ایک مقررہ فاصلے تک پیچھے چھوڑنے کے ل. بناتے ہیں تاکہ موڑ بناتے وقت اس سے ٹکرا نہ جائے۔
اگر روبوٹ کے سامنے اور بائیں جانب کسی اعتراض کا پتہ چل گیا تو روبوٹ واپس آکر دائیں طرف مڑ جائے گا۔
اگر روبوٹ کمرے کے کسی کونے تک پہنچ جاتا ہے تو اسے چاروں میں موجود چیزوں کا احساس ہوگا۔ اس معاملے میں ہمیں روبوٹ کو پیچھے چھوڑنا ہے جب تک کہ کوئی بھی فریق آزاد نہ ہوجائے۔
ایک اور ممکنہ صورت یہ ہے کہ سامنے کوئی شے ہو گی لیکن ہوسکتا ہے کہ کوئی شے نہ تو بائیں جانب نہ دائیں جانب ہو ، اس صورت میں ہمیں تصادفی طور پر کسی بھی سمت کا رخ کرنا پڑے گا۔
امید ہے کہ اس سے رکاوٹ سے بچنے والا کس طرح کام کرتا ہے اس کا ایک موٹا اندازہ ہوتا ، اب آئیے سرکٹ ڈایاگرام کے ساتھ آگے بڑھتے ہیں تاکہ اس بیوٹی کو بنایا جاسکے اور عملی طور پر اس سے لطف اٹھائیں۔
سرکٹ ڈایاگرام اور وضاحت:
اس PIC پر مبنی رکاوٹ سے روبوٹ سے پرہیز کرنے کا مکمل سرکٹ ڈایاگرام مندرجہ بالا تصویر میں دکھایا گیا ہے۔ جیسا کہ آپ دیکھ سکتے ہیں کہ ہم نے روبوٹ کے دائیں اور بائیں طرف اشیاء کا پتہ لگانے کے لئے دو آئی آر سینسر اور روبوٹ سے پہلے موجود آبجیکٹ کے فاصلے کی پیمائش کے لئے ایک الٹراسونک سینسر استعمال کیا ہے۔ ہم نے اس پروجیکٹ میں موجود دو موٹروں کو چلانے کے لئے L293D موٹر ڈرائیور ماڈیول بھی استعمال کیا ہے۔ یہ پہی forے کے لئے عام طور پر ڈی سی گئر موٹرز ہیں اور اس وجہ سے اسے آسانی سے حاصل کیا جاسکتا ہے۔ مندرجہ ذیل جدول آپ کو رابطوں میں مدد فراہم کرے گا۔
سیریل نمبر |
سے جڑا ہوا |
سے جڑا ہوا |
1 |
IR سینسر چھوڑ پن |
RD2 (پن 21) |
2 |
IR سینسر ٹھیک پن |
RD3 (پن 22) |
4 |
موٹر 1 چینل ایک پن |
آر سی 4 (پن 23) |
5 |
موٹر 1 چینل بی پن |
RC5 (پن 25) |
6 |
موٹر 2 چینل ایک پن |
آر سی 6 (پن 26) |
7 |
موٹر 2 چینل بی پن |
آر سی 7 (پن 27) |
8 |
یو ایس ٹرگر پن |
RB1 (پن 34) |
9 |
امریکی ایکو پن |
RB2 (پن 35) |
L293D جیسے موٹر ڈرائیور ماڈیول لازمی ہے کیونکہ ڈی سی گئر موٹر چلانے کے لئے مطلوبہ موجودہ کی مقدار کو PIC مائکروکانٹرولر کے I / O پن کے ذریعہ نہیں نکالا جاسکتا ہے۔ سینسرز اور ماڈیول + 5V سپلائی کے ذریعہ تقویت یافتہ ہیں جو 7805 کے ذریعہ ریگولیٹ ہورہی ہیں۔ موٹر ڈرائیور ماڈیول + 12V کا استعمال کرتے ہوئے بھی چل سکتا ہے ، لیکن اس پروجیکٹ کے ل 5 میں ابھی دستیاب +5V پر پھنس گیا ہوں۔
مکمل روبوٹ میرے معاملے میں پاور بینک کے ذریعہ چل رہا ہے۔ آپ کسی بھی عام پاور بینک اور ریگولیٹر سیکشن کو پاس کرکے یا مذکورہ بالا سرکٹ استعمال کرسکتے ہیں اور روبوٹ کے لئے کسی بھی 9V یا 12V بیٹری کا استعمال کرسکتے ہیں جیسا کہ اوپر سرکٹ ڈایاگرام میں دکھایا گیا ہے۔ ایک بار جب آپ کے رابطے ہوجائیں تو یہ نیچے کچھ ایسا ہی نظر آئے گا
آپ کو پی آئی سی مائکرو قابو والی پروگرامنگ:
کسی رکاوٹ سے بچنے والے کے لئے کام کرنے کے لئے آپ کو پی آئی سی کا پروگرام بنانا واقعی آسان ہے۔ ہمیں صرف ان تین سینسر کی قیمت پڑھنی ہے اور اسی کے مطابق موٹرز کو چلانا ہوگا۔ اس پروجیکٹ میں ہم ایک الٹراسونک سینسر استعمال کررہے ہیں۔ ہم نے پہلے ہی یہ جان لیا ہے کہ پی آئی سی مائکروقابو کنٹرولر کے ساتھ الٹراسونک کو کس طرح انٹرفیس کرنا ہے ، اگر آپ یہاں نئے ہیں تو براہ کرم اس ٹیوٹوریل پر واپس آجائیں تاکہ یہ سمجھے کہ کوئی امریکی سینسر پی آئی سی کے ساتھ کیسے کام کرتا ہے ، کیوں کہ میں تکرار سے بچنے کے لئے اس کے بارے میں تفصیلات کو یہاں چھوڑ کر جاؤں گا۔
مکمل پروگرام ہے یا اس روبوٹ کو اس صفحے کے آخر میں دیا جاتا ہے، میں نے مزید کہا کہ ذیل میں اس پروگرام کے اہم حصوں کی وضاحت کی ہے.
جیسا کہ ہم جانتے ہیں کہ تمام پروگرام ان پٹ اور آؤٹ پٹ پن کے اعلامیہ کے ساتھ شروع ہوتے ہیں ۔ یہاں موٹر ڈرائیور ماڈیول کی چار پنوں اور ٹرگر پنوں میں آؤٹ پٹ پن ہیں ، جبکہ ایکو پن اور دو آئی آر آؤٹ پن ان پٹ ہوں گے۔ ہمیں الٹراسونک سینسر کے ساتھ استعمال کرنے کیلئے ٹائمر 1 ماڈیول کی ابتدا کرنی چاہئے۔
TRISD = 0x00؛ // PORTD کو ایل سی ڈی TRISB1 = 0 میں مداخلت کرنے کے لئے آؤٹ پٹ قرار دیا گیا۔ // امریکی سینسر کا ٹرگر پن آؤٹ پٹ پن کے طور پر بھیجا جاتا ہے TRISB2 = 1؛ // یو ایس سینسر کا ایکو پن ان پٹ ٹرین کے طور پر ترتیب دیا گیا ہے TRISB3 = 0؛ // RB3 ایل ای ڈی TRISD2 = 1 کے لئے آؤٹ پٹ پن ہے؛ TRISD3 = 1؛ // دونوں IR سینسر پنوں کو ان پٹ TRISC4 = 0 کے طور پر اعلان کیا گیا ہے۔ TRISC5 = 0؛ // موٹر 1 پنوں کو آؤٹ پٹ کے طور پر اعلان کیا TRISC6 = 0؛ TRISC7 = 0؛ // موٹر 2 پنوں کو آؤٹ پٹ T1CON = 0x20 کے طور پر اعلان کیا گیا؛
اس پروگرام میں ہمیں سینسر اور آبجیکٹ کے مابین کافی فاصلہ تلاش کرنا پڑتا ہے ، لہذا ہم نے کیلکولیٹ ڈسٹینس () کے نام سے ایک فنکشن تیار کیا ہے جس کے اندر ہم امریکی سینسر انٹرفیسنگ ٹیوٹوریل میں زیر بحث طریقہ کے ذریعہ فاصلے کی پیمائش کریں گے۔ کوڈ نیچے دکھایا گیا ہے
باطل حساب کتاب_فاصل () // US of TMR1H = 0 کے فاصلے کا حساب کتاب کرنے کے لئے فنکشن؛ TMR1L = 0؛ // ٹائمر بٹس کو صاف کریں ٹرگر = 1؛ __ڈیلا_س (10)؛ ٹرگر = 0؛ جبکہ (ایکو == 0)؛ TMR1ON = 1؛ جبکہ (ایکو == 1)؛ TMR1ON = 0؛ ٹائم_ٹیکن = (TMR1L - (TMR1H << 8))؛ فاصلہ = (0.0272 * وقت_بھاکر) / 2؛ }
اگلا قدم الٹراسونک سینسر اور آئی آر سینسر کی قدروں کا موازنہ کرنا اور اس کے مطابق روبوٹ کو منتقل کرنا ہے ۔ یہاں اس پروگرام میں میں نے اہم فاصلے کے طور پر سینٹی میٹر کی قیمت کا استعمال کیا ہے جس کے نیچے روبوٹ کو سمت میں تبدیلیاں لینا شروع کردیں۔ آپ اپنی پسند کی اقدار کو استعمال کرسکتے ہیں۔ اگر اعتراض نہیں ہے تو روبوٹ صرف آگے بڑھتا ہے
اگر (فاصلہ> 5) C RC4 = 0؛ آر سی 5 = 1؛ // موٹر 1 فارورڈ RC6 = 1؛ آر سی 7 = 0؛ // موٹر 2 آگے}
اگر کسی شے کا پتہ چل جاتا ہے تو ، پھر فاصلہ سینٹی میٹر سے نیچے جائے گا۔ اس معاملے میں ہم بائیں اور دائیں الٹراسونک سینسر کی اقدار پر غور کرتے ہیں۔ اس قدر کی بنیاد پر ہم فیصلہ کرتے ہیں کہ یا تو بائیں مڑیں یا دائیں مڑیں۔ ایم ایس کی تاخیر استعمال کی جاتی ہے تاکہ تبدیلی کی سمت نظر آئے۔
اگر (RD2 == 0 && RD3 == 1 && فاصلہ <= 5) // بائیں سینسر کو مسدود کردیا گیا ہے {back_off ()؛ آر سی 4 = 1؛ آر سی 5 = 1؛ // موٹر 1 اسٹاپ آر سی 6 = 1؛ آر سی 7 = 0؛ // موٹر 2 فارورڈ __ ڈیلی_ ایم ایس (500)؛ ulate حساب_فاصل ()؛ اگر (RD2 == 1 && RD3 == 0 && فاصلہ <= 5) // دائیں سینسر مسدود ہے {back_off ()؛ آر سی 4 = 0؛ آر سی 5 = 1؛ // موٹر 1 فارورڈ RC6 = 1؛ آر سی 7 = 1؛ // موٹر 2 اسٹاپ __delay_ms (500)؛ }
بعض اوقات الٹراسونک سینسر کسی شے کا پتہ لگاتا ، لیکن آئی آر سینسروں کے ذریعہ کسی چیز کا پتہ نہیں چل سکا ۔ اس صورت میں روبوٹ بطور ڈیفالٹ موڑ دیتا ہے۔ آپ اپنی ترجیحات کی بنیاد پر اسے دائیں طرف یا بے ترتیب سمت بھی بنا سکتے ہیں۔ اگر دونوں طرف سے اشیاء موجود ہیں تو ہم اسے پیچھے چھوڑ دیتے ہیں۔ ایسا کرنے کا کوڈ نیچے دکھایا گیا ہے۔
حساب کتاب_فاصل ()؛ اگر (RD2 == 0 && RD3 == 0 && فاصلہ <= 5) // دونوں سینسر کھلے ہوئے ہیں {back_off ()؛ آر سی 4 = 0؛ آر سی 5 = 1؛ // موٹر 1 فارورڈ RC6 = 1؛ آر سی 7 = 1؛ // موٹر 2 اسٹاپ __delay_ms (500)؛ ulate حساب_فاصل ()؛ اگر (RD2 == 1 &&RD3 == 1 && فاصلہ <= 5) // دونوں سینسر مسدود ہیں {back_off ()؛ آر سی 4 = 1؛ آر سی 5 = 0؛ // موٹر 1 ریورس RC6 = 1؛ آر سی 7 = 1؛ // موٹر 2 اسٹاپ __Dlay_ms (1000)؛ }
ایکشن میں رکاوٹوں سے بچنے والا روبوٹ:
پروجیکٹ کا کام دیکھنا بہت دلچسپ اور تفریح ہے۔ ایک بار جب آپ اپنے سرکٹ اور کوڈ سے کام کر لیتے ہیں تو صرف اپنے بوٹ پر پاور کریں اور اسے زمین پر چھوڑ دیں۔ اسے رکاوٹوں کی نشاندہی کرنے اور ذہانت سے ان سے بچنے کے قابل ہونا چاہئے۔ لیکن ، یہاں تفریحی حصہ آتا ہے۔ آپ کوڈ میں ترمیم کرسکتے ہیں اور اس سے زیادہ چیزیں بنا سکتے ہیں جیسے اسے سیڑھی سے بچنا ، قیمتی موڑوں کو ذخیرہ کرکے ہوشیار بنانا اور کیا نہیں؟
یہ روبوٹ آپ کو پروگرامنگ کی بنیادی معلومات کو سمجھنے اور یہ سیکھنے میں مدد دے گا کہ اصل کوڑا آپ کے کوڈ کا کیا جواب دے گا۔ اس روبوٹ کو پروگرام کرنا اور یہ دیکھنا ہمیشہ مزے کی بات ہے کہ یہ حقیقی دنیا میں کوڈ کے لئے کس طرح برتاؤ کرتا ہے۔
یہاں ہم نے وہی پی آئی سی پرف بورڈ استعمال کیا ہے جو ہم نے پی آئی سی مائکروقابو کنٹرولر کا استعمال کرتے ہوئے ایل ای ڈی پلکنے کے لئے بنایا ہے اور اس بورڈ کو پی آئی سی ٹیوٹوریل سیریز کے دوسرے پروجیکٹس میں استعمال کیا ہے۔
آپ کا روبوٹ اوپر والی تصویر میں دکھائے جانے والے جیسا نظر آنا چاہئے۔ اس منصوبے کا مکمل کام ذیل ویڈیو میں دکھایا گیا ہے ۔
امید ہے کہ آپ اس منصوبے کو سمجھ گئے ہوں گے اور ایک بنانے میں خوشی محسوس کریں گے۔ اگر آپ کو کوئی شبہ ہے یا آپ پھنس گئے ہیں تو آپ اپنے سوالات پوسٹ کرنے کے لئے کمنٹ سیکشن کا استعمال کرسکتے ہیں اور میں ان کے جوابات دینے کی پوری کوشش کروں گا۔