ڈی آئی وائی آردوینو اور بلوٹوتھ کنٹرول شدہ روبوٹک بازو بنانے کا طریقہ

حالیہ صدی میں ، روبوٹکس تحقیق کا سب سے ابھرتا ہوا میدان ہے۔ روبوٹ نے تقریبا almost ہر وہ کام سنبھال لیا ہے جو انسان کرتے تھے۔ ہم اپنے معاشرے میں خود مختار روبوٹ مختلف کام انجام دیتے ہوئے دیکھ سکتے ہیں۔ کچھ ریموٹ کنٹرول روبوٹ بھی موجود ہیں جو مختلف کارروائیوں کو انجام دینے میں ہماری مدد کرتے ہیں۔ انجینئرنگ کے میدان میں نینو سرکٹس بنانے سے لے کر میڈیکل کے میدان میں پیچیدہ سرجری کرانے تک ، روبوٹ انسانوں سے زیادہ قابل اعتماد ہیں۔



روبوٹک بازو

اس پروجیکٹ میں ، ہم ایک روبوٹک بازو بنانے جا رہے ہیں جس پر کنٹرول کیا جائے گا ایک ارڈینو مائکروقانونی۔ اینڈروئیڈ ریموٹ کنٹرول ایپ کی مدد سے اسے بلوٹوتھ کے ذریعے کنٹرول کیا جائے گا۔



ارڈینو کا استعمال کرتے ہوئے روبوٹک بازو کو کیسے کنٹرول کیا جائے؟

اب جیسا کہ ہم اپنے پروجیکٹ کا خلاصہ جانتے ہیں۔ آئیے سرکٹری کے بارے میں کچھ اور معلومات اکٹھا کریں اور بلوٹوت کنٹرولڈ روبوٹک بازو بنانا شروع کریں اور بلوٹوتھ کے ذریعے اس پر قابو پالیں۔



مرحلہ 1: اجزا جمع کرنا

کسی بھی منصوبے کو شروع کرنے کا بہترین نقطہ نظر یہ ہے کہ اجزا کی مکمل فہرست بنائی جائے۔ کسی پروجیکٹ کو شروع کرنے کا یہ نہ صرف ذہین طریقہ ہے بلکہ یہ ہمیں پروجیکٹ کے وسط میں ہونے والی بہت سی تکلیفوں سے بھی بچاتا ہے۔ اس منصوبے کے اجزاء کی ایک فہرست ذیل میں دی گئی ہے۔



  • HC-05 وائرلیس بلوٹوت سیریل ٹرانسیور
  • 6V اڈاپٹر
  • جمپر تاروں
  • بریڈ بورڈ

مرحلہ 2: اجزاء کا مطالعہ

چونکہ ہمارے پاس ان تمام اجزاء کی مکمل فہرست ہے جن کو ہم استعمال کرنے جارہے ہیں ، آئیے ایک قدم آگے بڑھیں اور تمام اجزاء کا ایک مختصر مطالعہ کریں۔

اردوینو نینو ایک مائکرو قابو پانے والا بورڈ ہے جو مختلف سرکٹس میں مختلف آپریشن کرتا ہے۔ اس کی ضرورت ہے a سی کوڈ یہ بورڈ کو بتاتا ہے کہ کون سے کام انجام دینے ہیں اور کیسے۔ اس میں 13 ڈیجیٹل I / O پن ہیں جس کا مطلب ہے کہ ہم 13 مختلف ڈیوائسز چلا سکتے ہیں۔ آرڈوینو نینو بالکل اسی طرح کی فعالیت رکھتی ہے جیسے کہ ارڈوینو یونو لیکن کافی چھوٹی سائز میں۔ ارڈینو نینو بورڈ میں مائکروقابو کرنے والا ہے اے ٹی میگا 328 پ۔ اگر آپ 13 سے زیادہ ڈیوائسز کو کنٹرول کرنا چاہتے ہیں تو ، ارڈینو میگا استعمال کریں۔

اردوینو نینو



HC-05 وائرلیس بلوٹوت سیریل ٹرانسیور : ہمیں اس پروجیکٹ میں وائرلیس مواصلات کی ضرورت ہے ، لہذا ہم بلوٹوتھ ٹیکنالوجی استعمال کریں گے اور اس ماڈیول کے لئے HC-05 استعمال کیا جائے گا۔ اس ماڈیول میں متعدد پروگرام قابل بڈ ریٹ ہیں لیکن پہلے سے طے شدہ بوڈ کی شرح 9600 بی پی ایس ہے۔ اسے یا تو ماسٹر یا غلام کے طور پر تشکیل دیا جاسکتا ہے ، جبکہ دوسرا ماڈیول HC-06 صرف غلام حالت میں ہی کام کرسکتا ہے۔ اس ماڈیول میں چار پن ہیں۔ وی سی سی (5V) کے لئے ایک اور بقیہ تین GND ، TX ، اور RX کیلئے۔ اس ماڈیول کا ڈیفالٹ پاس ورڈ ہے 1234 یا 0000 . اگر ہم دو مائکروکانٹرولرز کے مابین بات چیت کرنا چاہتے ہیں یا کسی فون یا لیپ ٹاپ HC-05 جیسے بلوٹوتھ فعالیت کے ساتھ کسی بھی ڈیوائس کے ساتھ بات چیت کرنا چاہتے ہیں تو ہمیں اس میں مدد ملتی ہے۔ بہت سے اینڈرائڈ ایپلی کیشنز پہلے سے ہی دستیاب ہیں جو اس عمل کو بہت آسان بنا دیتی ہیں۔

HC-05 بلوٹوتھ ماڈیول

ایک عام روبوٹک بازو یہ کئی حصوں پر مشتمل ہوتا ہے اور عام طور پر اس میں 6 جوڑ ہوتے ہیں۔ اس میں کم از کم 4 اسٹیپر موٹرز شامل ہیں جو کمپیوٹر کے ذریعہ کنٹرول ہوتی ہیں۔ اسٹیپر موٹرز دیگر ڈی سی موٹروں سے مختلف ہیں۔ وہ عین مطابق اضافے میں بالکل آگے بڑھتے ہیں۔ یہ روبوٹک ہتھیار مختلف کاروائیاں انجام دینے کے لئے استعمال ہوتے ہیں۔ ہم انہیں ریموٹ کنٹرول کے ذریعہ دستی طور پر چل سکتے ہیں یا ہم انہیں خود مختاری سے کام کرنے کا پروگرام بنا سکتے ہیں۔

روبوٹک بازو

مرحلہ 3: اجزاء کو جمع کرنا

اب جیسا کہ ہم استعمال شدہ تمام اہم اجزاء کے کام کے بارے میں جانتے ہیں۔ آئیے ان کو جمع کرنا شروع کریں اور ریموٹ کنٹرول روبوٹک بازو بنانے کے لئے ایک سرکٹ بنائیں۔

  1. . بریڈ بورڈ پر آرڈینو نینو بورڈ لگائیں۔ اریڈوینو اڈاپٹر کے مثبت اور منفی تار کے ذریعہ تقویت پذیر ہوگی۔
  2. بریڈ بورڈ پر بھی بلوٹوتھ ماڈیول رکھیں۔ ایردوینو کے ذریعے بلوٹوتھ ماڈیول کو طاقتور بنائیں۔ اریڈینو نین بورڈ کے Rx پن سے بلوٹوتھ ماڈیول کے Tx پن کو جوڑیں اور بلوٹوت ماڈیول کے Rx پن کو اردونو نینو بورڈ کے Tx پن سے مربوط کریں۔
  3. جیسا کہ ہم جانتے ہیں کہ 4 اسٹپر موٹرز ہیں۔ ہر ایک کا تکنیکی نام ہوتا ہے۔ انھیں بلایا جاتا ہے کہنی ، کندھا ، بنیاد، اور گریپر . تمام موٹروں کا وی سی سی اور گراؤنڈ عام ہوگا اور 6V اڈیپٹر کے مثبت اور منفی سے منسلک ہوگا۔ چاروں موٹرز کا سگنل پن ارڈینو نینو کے پن 5 ، پن6 ، پن9 ، اور پن 11 سے منسلک ہوگا۔
  4. یہ یقینی بنائیں کہ آپ نے جو رابطے کیے ہیں وہ مندرجہ ذیل سرکٹ آریگرام کے مطابق ہیں۔

    سرکٹ ڈایاگرام

مرحلہ 4: ارڈینو کے ساتھ آغاز کرنا

اگر آپ پہلے ہی آرڈینوو IDE سے واقف نہیں ہیں تو ، فکر نہ کریں کیوں کہ مائکروکونٹرولر بورڈ کے ساتھ Ardino IDE ترتیب دینے اور استعمال کرنے کے لئے مرحلہ وار طریقہ کار کی وضاحت ذیل میں کی گئی ہے۔

  1. ارڈینو آئ ڈی ای کا تازہ ترین ورژن ڈاؤن لوڈ کریں اردوینو
  2. اپنے ارڈینو نینو بورڈ کو اپنے لیپ ٹاپ سے مربوط کریں اور کنٹرول پینل کھولیں۔ پھر ، پر کلک کریں ہارڈ ویئر اور آواز . اب ، پر کلک کریں ڈیوائسز اور پرنٹرز۔ یہاں ، وہ بندرگاہ ڈھونڈیں جس سے آپ کا مائکروقانونی بورڈ منسلک ہے۔ میرے معاملے میں یہ ہے COM14 لیکن یہ مختلف کمپیوٹرز پر مختلف ہے۔

    پورٹ تلاش کرنا

  3. ٹول مینو پر کلک کریں اور بورڈ کو سیٹ کریں اردوینو نینو ڈراپ ڈاؤن مینو سے

    بورڈ مرتب کرنا

  4. اسی ٹول مینو میں ، بندرگاہ کو اس پورٹ نمبر پر سیٹ کریں جو آپ نے پہلے میں دیکھا تھا ڈیوائسز اور پرنٹرز .

    پورٹ کی ترتیب

  5. اسی ٹول مینو میں ، پروسیسر کو سیٹ کریں اے ٹی میگا 328 پی (پرانا بوٹلوڈر)۔

    پروسیسر

  6. امدادی موٹروں کو چلانے کے لئے کوڈ لکھنے کے ل we ، ہمیں ایک خصوصی لائبریری کی ضرورت ہے جو امدادی موٹرز کے ل functions کئی کام لکھنے میں ہماری مدد کرے گی۔ یہ لائبریری کوڈ کے ساتھ ساتھ ، نیچے دیئے گئے لنک میں منسلک ہے۔ لائبریری کو شامل کرنے کے لئے ، پر کلک کریں خاکہ> لائبریری شامل کریں> زپ شامل کریں۔ کتب خانہ.

    لائبریری شامل کریں

  7. نیچے منسلک کوڈ ڈاؤن لوڈ کریں اور اسے اپنے اردوینو IDE میں پیسٹ کریں۔ پر کلک کریں اپ لوڈ کریں اپنے مائکروکنٹرولر بورڈ میں کوڈ کو جلا دینے کے لئے بٹن۔

    اپ لوڈ کریں

کوڈ ڈاؤن لوڈ کرنے کیلئے ، یہاں کلک کریں.

مرحلہ 5: اپلی کیشن ڈاؤن لوڈ کرنا

جیسا کہ اب ہم نے پوری سرکٹری کو اکٹھا کیا ہے اور مائکروکانٹرولر بورڈ میں کوڈ اپ لوڈ کیا ہے۔ ایک ایسا موبائل ایپ ڈاؤن لوڈ کرنے دیتا ہے جو روبوٹ بازو کے ریموٹ کنٹرول کا کام کرے گا۔ گوگل پلے اسٹور پر ایک مفت ایپ دستیاب ہے۔ ایپ کا نام ہے چھوٹا بازو روبوٹ کنٹرول . بلوٹوتھ کنکشن بنانے کیلئے ، اپنے موبائل پر بلوٹوتھ آن کریں۔ ترتیبات پر جائیں اور اپنے موبائل کو HC-05 ماڈیول کے ساتھ جوڑیں۔ ایسا کرنے کے بعد ، ایپ میں بلوٹوتھ بٹن دبائیں۔ اگر یہ سبز ہوجاتا ہے تو ، اس کا مطلب ہے کہ ایپ اب مربوط ہے اور روبوٹک بازو کو چلانے کے لئے تیار ہے۔ مطلوبہ روبوٹک بازو کو چلانے کے لئے سلائیڈر موجود ہیں۔

ایپ

مرحلہ 6: ضابطہ کو سمجھنا

کوڈ اچھی طرح سے تبصرہ کیا اور سمجھنے میں آسان ہے۔ اب بھی ، اس کے نیچے مختصر طور پر وضاحت کی گئی ہے۔

1. شروع میں ، ایک لائبریری شامل کی گئی تھی تاکہ امدادی موٹروں کو چلانے کے لئے کوڈ لکھیں۔ ایک اور کتب خانہ ریاضی کوڈ میں مختلف ریاضی کی کارروائیوں کو انجام دینے کے لئے شامل ہے۔ چار सर्वो موٹروں کے ل for استعمال کرنے کے لئے چار اشیاء بھی شروع کی گئیں۔

# شامل // آرڈوینو لائبریری # شامل کریں // معیاری سی لائبریری # ڈیفائن پی آئ 3.141 سروو بیس سرویو؛ امدادی کندھے کی خدمت امدادی کہنیسرورو؛ سروو گریپرسرو؛ انٹ کمانڈ؛

2. پھر ایک ڈھانچے کو بیس ، کندھے ، اور کہنی امدادی موٹرز کے ل for اقدار لینے کا اعلان کیا گیا ہے۔

joint جوائنٹ اینگل {// ڈھانچہ انٹ بیس کا اعلان؛ INT کندھے؛ انٹنی کہنی؛ }؛

3. اس کے بعد ، کچھ متغیرات مطلوبہ گرفت ، تاخیر ، اور سروو موٹر کی پوزیشن کو اسٹور کرنے کے لئے شروع کردیئے گئے ہیں۔ اس کی رفتار 15 رکھی گئی ہے ، اور ساخت میں زاویہ کی قدر لینے کے لئے ایک شے بنائی گئی ہے۔

INT مطلوبہ گرفت؛ INT gripperPos؛ INTDDlay؛ int servoSpeed ​​= 15؛ انٹ ریڈی = 0؛ ڈھانچہ مشترکہ سرووس کے // مطلوبہ زاویے

چار باطل سیٹ اپ () ایک فنکشن ہے جو Ardino کی پنوں کو INPUT یا OUTPUT کے بطور سیٹ کرنے کے لئے استعمال ہوتا ہے۔ یہاں اس فنکشن میں ، ہم نے اعلان کیا ہے کہ موٹروں کا پن جوڑا جائے گا جس سے آرڈینوو کی کونسی پن ہو گی۔ یہ بھی یقینی بنایا گیا ہے کہ اردوینو زیادہ دیر تک سیریل ان پٹ نہیں پڑھتا ہے۔ اس فنکشن میں ابتدائی پوزیشن اور بوڈ ریٹ بھی مرتب کیا گیا ہے۔ باؤڈ ریٹ وہ رفتار ہے جس کے ذریعہ مائکروکونٹرولر بورڈ منسلک سرووس اور بلوٹوتھ ماڈیول کے ساتھ بات چیت کرے گا۔

باطل سیٹ اپ () {سیریل.بیگین (9600)؛ baseServo.attach (9)؛ // پن 9 پر بیس سروکو کو امدادی چیز کندھےسرو۔اٹٹاچ (10) سے جوڑتا ہے۔ // پنڈو پر کندھے کے سروکو کو امدادی شبیہہ کیلو سرووا ڈاٹچ (11) پر جوڑ دیتا ہے۔ // پن کو 9 پر امدادی آبجیکٹ gripperServo.attach (6) پر کوہنی امداد منسلک کرتا ہے؛ // پن 9 پر گریپر سرو کو سروو آبجیکٹ سیریل ڈاٹ ٹائم آؤٹ (50) پر جوڑ دیتا ہے۔ // اس بات کو یقینی بناتا ہے کہ ارڈوینو بہت طویل سیریل کے لئے سیریل نہیں پڑھتا ہے۔ پرنٹلن ('شروع')؛ بیسسورو ڈاٹ رائٹ (90)؛ // سرووس کندھے کی خدمات کے اندرونی عہدےسرورو ڈاٹ کام (150)؛ کہنی سرور۔روائٹ (110)؛ تیار = 0؛ }

5 servoPa ParallControl () ایک ایسا فنکشن ہے جو روبوٹک بازو کی موجودہ حیثیت کا پتہ لگانے اور اسے موبائل ایپ کے ذریعے دیئے گئے کمانڈ کے مطابق منتقل کرنے کے لئے استعمال ہوتا ہے۔ اگر موجودہ پوزیشن حقیقت سے کم ہے تو ، بازو اوپر کی طرف بڑھ جائے گا اور اس کے برعکس ہوگا۔ یہ فنکشن موجودہ پوزیشن کی قیمت اور سروو کی رفتار کو لوٹائے گا۔

int servoPa ParallControl (int thePos، servo theServo، int theSpeed) {int startPos = theServo.read ()؛ // موجودہ پوزیشن پڑھیں newPos = startPos؛ // int theSpeed ​​= رفتار؛ // وضاحت کریں جہاں پوزیشن کمانڈ کے حوالے سے ہے // اگر موجودہ پوزیشن کم ہے کہ اصل حرکت اگر (اسٹارٹپوس (دی پوز + 5)) {نیو پوس = نیو پوس - 1؛ theServo.write (newPos)؛ تاخیر (تیز)؛ واپسی 0؛ } دوسری {1 لوٹائیں؛ }

باطل لوپ () ایک فنکشن ہے جو لوپ میں بار بار چلتا ہے۔ یہ فنکشن سیرت سے آنے والے ڈیٹا کو پڑھتا ہے اور اس ڈھانچے میں ہر سروے کا زاویہ اسٹور کرتا ہے۔ ابتدائی طور پر ، تمام سرووس کی حیثیت صفر پر سیٹ کی گئی ہے۔ یہاں ایک فنکشن servoPa ParallControl () کہا جاتا ہے اور اس میں پیرامیٹرز کو منظور کیا جاتا ہے۔ اس فنکشن سے ویلیو واپس آجائے گا اور اس کی حیثیت متغیر میں محفوظ ہوگی۔

باطل لوپ () {اگر (سیریل۔ دستیاب ()) {تیار = 1؛ इच्छितAngle.base = Serial.parseInt ()؛ इच्छितAngle.shoulder = Serial.parseInt ()؛ इच्छितAngle.elbow = Serial.parseInt ()؛ مطلوبہ گرپ = سیریل.پارنسیٹ ()؛ مطلوبہ ڈیلی = سیریل.پارسینٹ ()؛ if (Serial.read () == ' n') {// اگر آخری بائٹ 'd' ہے تو پڑھنا بند کریں اور کمانڈ پر عملدرآمد 'd' کا مطلب ہے 'کیا' سیریل.فلش ()؛ // بفر میں ڈھیر دیگر تمام احکامات کو صاف کریں // بھیجیں کمانڈ Serial.print ('d') کی تکمیل؛ status} int حیثیت 1 = 0؛ int حیثیت 2 = 0؛ int status3 = 0؛ int status4 = 0؛ int done = 0؛ جبکہ (مکمل شدہ == 0 && == 1) {// سرودو کو مطلوبہ پوزیشن پر منتقل کریں status2 = servoPa ParallControl (مطلوبہ انگلی.شولڈر ، کندھے کی خدمت ، مطلوبہ ڈیلی)؛ status3 = servoPa ParallControl (مطلوبہ اینگل ڈیلوبو ، کہنی کی خدمت ، مطلوبہ ڈیلی)؛ status4 = servoPa ParallControl (مطلوبہ گرفت ، gripperServo ، مطلوبہ ڈیلی)؛ اگر (حیثیت 1 == 1 اور حیثیت 2 == 1 اور حیثیت 3 == 1 اور حیثیت 4 == 1) {کیا = 1}} // جب تک ختم}

اب ، یہ روبوٹک بازو بنانے کا پورا طریقہ کار تھا۔ کوڈ کو جلا دینے اور ایپ ڈاؤن لوڈ کرنے کے بعد ، جب ایپ پر سلائیڈر منتقل ہوجائے تو روبوٹ بالکل ٹھیک کام کرے۔ آپ مطلوبہ کام کو انجام دینے کے لئے خود مختاری سے کام کرنے کے لئے بازو کو بھی پروگرام کر سکتے ہیں۔