Arduino تي پهريون روبوٽ ٺاهڻ جو تجربو (روبوٽ ”شڪار“)

سلام

هن آرٽيڪل ۾ آئون Arduino استعمال ڪندي منهنجي پهرين روبوٽ کي گڏ ڪرڻ جي عمل کي بيان ڪرڻ چاهيان ٿو. مواد مون وانگر ٻين نئين سکندڙن لاءِ ڪارآمد هوندو جيڪي ڪنهن قسم جي ”خود هلائيندڙ ڪارٽ“ ٺاهڻ چاهين ٿا. مضمون مختلف nuances تي منهنجي اضافا سان ڪم ڪرڻ جي مرحلن جو هڪ بيان آهي. حتمي ڪوڊ جي لنڪ (گهڻو ڪري ممڪن ناهي ته سڀ کان وڌيڪ مثالي) مضمون جي آخر ۾ ڏنو ويو آهي.

Arduino تي پهريون روبوٽ ٺاهڻ جو تجربو (روبوٽ ”شڪار“)

جڏهن به ممڪن هجي، مون پنهنجي پٽ (8 سالن جي عمر) ۾ حصو وٺڻ ۾ شامل ڪيو. ڇا واقعي ان سان ڪم ڪيو ۽ ڇا نه ڪيو - مون هن مضمون جو حصو وقف ڪيو آهي، شايد اهو ڪنهن لاء ڪارائتو هوندو.

روبوٽ جي عام وضاحت

پهرين، روبوٽ پاڻ بابت ڪجھ لفظ (اهو خيال آهي). مون واقعي شروع ۾ ڪجهه معياري گڏ ڪرڻ نه چاهيو. ساڳئي وقت، اجزاء جو سيٽ ڪافي معياري هو - چيسس، انجڻ، الٽراسونڪ سينسر، لائين سينسر، LEDs، ٽائيٽر. شروعات ۾، هن "سوپ سيٽ" مان هڪ روبوٽ ايجاد ڪيو ويو جيڪو پنهنجي علائقي جي حفاظت ڪندو آهي. هو مجرم ڏانهن ڊوڙندو آهي جيڪو دائري جي لڪير کي پار ڪري چڪو آهي، ۽ پوء مرڪز ڏانهن موٽندو آهي. بهرحال، هي نسخو هڪ ٺهيل لڪير جي ضرورت آهي، اضافي رياضي هر وقت دائري ۾ رهڻ لاء.

تنهن ڪري، ڪجهه سوچڻ کان پوء، مون خيال کي ڪجهه تبديل ڪيو ۽ هڪ "شڪار" روبوٽ ٺاهڻ جو فيصلو ڪيو. شروعات ۾، اھو پنھنجي محور جي چوڌاري ڦرندو آھي، ھڪڙي ويجھي ھدف (شخص) کي چونڊيو. جيڪڏهن ”شڪار“ معلوم ٿئي ٿو، ته ”شڪار“ چمڪندڙ بتيون ۽ سائرن کي آن ڪري ان طرف ڊوڙڻ شروع ڪري ٿو. جڏھن ماڻھو ھلندو/ ڀڄندو آھي، روبوٽ ھڪ نئون ھدف چونڊيندو آھي ۽ ان جو تعاقب ڪندو آھي، وغيره. اهڙي روبوٽ کي محدود دائري جي ضرورت ناهي، ۽ اهو کليل علائقن ۾ ڪم ڪري سگهي ٿو.

جئين توهان ڏسي سگهو ٿا، اهو تمام گهڻو آهي پڪڙڻ جي راند وانگر. جيتوڻيڪ آخر ۾ روبوٽ ايترو تيز نه نڪتو، پر اهو ايمانداري سان پنهنجي آس پاس جي ماڻهن سان رابطو ڪري ٿو. ٻار خاص طور تي ان کي پسند ڪن ٿا (ڪڏهن ڪڏهن، بهرحال، اهو لڳي ٿو ته اهي ان کي لتائڻ وارا آهن، انهن جي دل هڪ ڌڪ ڇڏيندي آهي ...). منهنجو خيال آهي ته هي ٽيڪنيڪل ڊيزائن کي مشهور ڪرڻ لاءِ سٺو حل آهي.

روبوٽ جي جوڙجڪ

تنهن ڪري، اسان ان خيال تي فيصلو ڪيو آهي، اچو ته اڳتي وڌون ترتيب. عناصر جي فهرست ٺھيل آھي جنھن مان روبوٽ ڪرڻ جي قابل آھي. هتي هر شيء بلڪل واضح آهي، تنهنڪري اچو ته فوري طور تي نمبر تي نظر رکون:

Arduino تي پهريون روبوٽ ٺاهڻ جو تجربو (روبوٽ ”شڪار“)

روبوٽ جي "دماغ" هڪ arduino uno بورڊ آهن (1)؛ چين مان آرڊر ڪيل هڪ سيٽ ۾ هو. اسان جي مقصدن لاء، اهو ڪافي آهي (اسان استعمال ٿيل پنن جي تعداد تي ڌيان ڏين ٿا). ساڳئي کٽ مان اسان هڪ تيار ڪيل چيسس (2) ورتو، جنهن تي ٻه ڊرائيو سائيڪل (3) ۽ هڪ پوئتي (آزاديء سان گھمڻ) (4) ڳنڍيل آهن. کٽ ۾ هڪ تيار ٿيل بيٽري جو ڪمپارٽمينٽ پڻ شامل آهي (5). روبوٽ جي سامهون هڪ الٽراسونڪ سينسر (HC-SR04) (6) آهي، پوئتي ۾ هڪ موٽر ڊرائيور (L298N) (7) آهي، مرڪز ۾ هڪ LED فليشر (8) آهي، ۽ ٿورو ئي پاسي ۾ هڪ ٽوئيٽر آهي (9).

ترتيب واري مرحلي ۾ اسان ڏسون ٿا:

- انهي ڪري ته سڀ ڪجهه ٺهڪي اچي
- متوازن ٿيڻ
- عقلي طور تي رکڻ

اسان جا چيني ساٿي اڳ ۾ ئي جزوي طور تي اسان لاءِ ڪري چڪا آهن. تنهن ڪري، ڳري بيٽري جو دٻو مرڪز ۾ رکيل آهي، ۽ ڊرائيو سائيڪل ان جي هيٺان لڳ ڀڳ واقع آهن. ٻيا سڀئي بورڊ هلڪا وزن وارا آهن ۽ پردي تي رکي سگهجن ٿا.

نياڻيون:

  1. کٽ جي چيسس ۾ ڪيترائي ڪارخانا سوراخ آهن، پر مون اڃا تائين اهو نه سمجهيو آهي ته انهن ۾ ڪهڙي منطق آهي. انجڻ ۽ بيٽري پيڪ بغير ڪنهن پريشاني جي محفوظ ڪيا ويا، پوءِ ”ايڊجسٽمينٽ“ شروع ٿي نئين سوراخ کي ڊرلنگ سان هن يا انهي بورڊ کي محفوظ ڪرڻ لاءِ.
  2. اسٽوريج وارن علائقن مان پيتل ريڪ ۽ ٻيا فاسٽنرز وڏي مدد ڪندا هئا (ڪڏهن ڪڏهن اسان کي انهن کي ٻاهر ڪڍڻو پوندو هو).
  3. مون هر بورڊ مان بس بار کي ڪلپس ذريعي گذريو (ٻيهر، مون انهن کي اسٽوريج ۾ مليو). تمام آسان، سڀ تارون چڱيءَ طرح بيٺيون آھن ۽ ڊنل نه آھن.

انفرادي بلاڪ

هاڻي مان گذري ويندس بلاڪ ۽ مان توهان کي ذاتي طور تي هر هڪ بابت ٻڌائيندس.

بيٽري جو خانو

اهو واضح آهي ته روبوٽ کي توانائي جو هڪ سٺو ذريعو هجڻ گهرجي. اختيار مختلف ٿي سگهن ٿا، مون 4 AA بيٽرين سان اختيار چونڊيو. مجموعي طور تي اھي لڳ ڀڳ 5 V ڏين ٿا، ۽ ھي وولٹیج سڌو سنئون arduino بورڊ جي 5V پن تي لاڳو ٿي سگھي ٿو (اسٽيبلائزر کي پاس ڪندي).

يقينا، مون کي ڪجهه احتياط ڪيو هو، پر اهو حل ڪافي قابل عمل آهي.

جيئن ته طاقت هر جڳهه جي ضرورت آهي، سهولت لاء مون روبوٽ جي مرڪز ۾ ٻه رابطا ٺاهيا آهن: هڪ "ورهائي ٿو" زمين (ساڄي پاسي)، ۽ ٻيو - 5 V (کاٻي پاسي).

Arduino تي پهريون روبوٽ ٺاهڻ جو تجربو (روبوٽ ”شڪار“)

موٽر ۽ ڊرائيور

پهرين، انجڻين کي نصب ڪرڻ بابت. جبل ڪارخانو ٺهيل آهي، پر وڏي رواداري سان ٺهيل آهي. ٻين لفظن ۾، انجڻ کي کاٻي ۽ ساڄي ملي ميٽرن جو هڪ ٻه wobble ڪري سگهو ٿا. اسان جي ڪم لاءِ هي نازڪ نه آهي، پر ڪجهه هنڌن تي اهو اثر ٿي سگهي ٿو (روبوٽ پاسي ڏانهن هلڻ شروع ڪندو). بس صورت ۾، مون انجڻ کي سختي سان متوازي مقرر ڪيو ۽ انهن کي گلو سان مقرر ڪيو.

Arduino تي پهريون روبوٽ ٺاهڻ جو تجربو (روبوٽ ”شڪار“)

موٽر کي ڪنٽرول ڪرڻ لاء، جيئن مون مٿي لکيو، L298N ڊرائيور استعمال ڪيو ويندو آهي. دستاويزن جي مطابق، ان ۾ هر موٽر لاء ٽي پن آهن: هڪ رفتار کي تبديل ڪرڻ لاء ۽ هڪ پنن جو هڪ جوڙو گردش جي هدايت لاء. هتي هڪ اهم نقطو آهي. اهو ظاهر ٿئي ٿو ته جيڪڏهن سپلائي وولٹیج 5 V آهي، پوء رفتار ڪنٽرول صرف ڪم نه ڪندو آهي! اهو آهي، يا ته اهو هرگز نه ڦرندو آهي، يا اهو وڌ ۾ وڌ ڦرندو آهي. اها خاصيت آهي جنهن مون کي شام جو هڪ ٻه ”مارڻ“ ڏنو. آخر ۾، مون کي ڪنهن فورم تي هڪ ذڪر مليو.

عام طور تي ڳالهائڻ، مون کي گهٽ گھمڻ جي رفتار جي ضرورت هئي جڏهن روبوٽ کي ڦيرايو - انهي ڪري ته ان کي جاء اسڪين ڪرڻ جو وقت هو. پر، جيئن ته هن خيال مان ڪجھ به نه آيو، مون کي اهو مختلف طرح سان ڪرڻو پيو: هڪ ننڍڙو موڙ - اسٽاپ - موڙ - اسٽاپ، وغيره. ٻيهر، ايترو خوبصورت نه، پر قابل عمل.

مان هتي اهو به شامل ڪندس ته هر هڪ تعاقب کان پوءِ روبوٽ هڪ نئين موڙ لاءِ بي ترتيبي طرف (گھڙيءَ جي طرف يا مخالف طرف) چونڊيندو آهي.

الٽراسونڪ سينسر

Arduino تي پهريون روبوٽ ٺاهڻ جو تجربو (روبوٽ ”شڪار“)

هارڊويئر جو هڪ ٻيو ٽڪرو جتي اسان کي هڪ سمجهوتو حل ڳولڻو هو. الٽراسونڪ سينسر حقيقي رڪاوٽن تي غير مستحڪم نمبر پيدا ڪري ٿو. حقيقت ۾، اها توقع هئي. مثالي طور، اهو ڪنهن هنڌ ڪم ڪري ٿو مقابلن ۾ جتي هموار، هموار ۽ عمودي سطحون آهن، پر جيڪڏهن ڪنهن جي پيرن جي سامهون "فليش" آهي، اضافي پروسيسنگ متعارف ڪرائڻ جي ضرورت آهي.

جيئن ته پروسيسنگ مون کي مقرر ڪيو وچين فلٽر ٽن شمارن لاءِ. حقيقي ٻارن جي تجربن جي بنياد تي (ڪنهن به ٻارن کي ٽيسٽ دوران نقصان نه پهچايو ويو!)، اهو ڊيٽا کي عام ڪرڻ لاء ڪافي آهي. فزڪس هتي سادو آهي: اسان وٽ سگنل آهن جن مان ظاهر ٿئي ٿو ضروري شيون (گهربل فاصلو ڏيو) ۽ وڌيڪ پري وارن کان عڪس، مثال طور، ديوار. بعد ۾ فارم 45، 46، جي ماپ ۾ بي ترتيب اخراج آهن. 230، 46، 46، 45، 45، 310, 46... هي اهي آهن جيڪي وچين فلٽر کي ڪٽي ڇڏيندا آهن.

سڀني پروسيسنگ کان پوء، اسان کي ويجهي اعتراض تائين فاصلو حاصل ڪيو. جيڪڏهن اهو هڪ خاص حد جي قيمت کان گهٽ آهي، ته پوء اسان الارم کي ڦيرايو ۽ سڌو "انٽروڊر" ڏانهن ڊرائيو.

فليش ۽ سائرن

شايد مٿين سڀني مان آسان عناصر. اهي مٿي ڏنل تصويرن ۾ ڏسي سگهجن ٿا. هتي هارڊويئر بابت لکڻ لاءِ ڪجهه به ناهي، تنهنڪري هاڻي اچو ته اڳتي وڌون ڪوڊ.

ڪنٽرول پروگرام

مون کي تفصيل سان ڪوڊ بيان ڪرڻ ۾ نقطو نظر نه ٿو اچي، جنهن کي ان جي ضرورت آهي - لنڪ آرٽيڪل جي آخر ۾ آهي، اتي هر شيء بلڪل پڙهڻ لائق آهي. پر عام ساخت جي وضاحت ڪرڻ سٺو لڳندو.

پهرين شيء جيڪا اسان کي سمجھڻ هئي ته هڪ روبوٽ هڪ حقيقي وقت جي ڊوائيس آهي. وڌيڪ واضح طور تي، ياد رکڻ لاء، ڇاڪاڻ ته ٻنهي کان اڳ ۽ هاڻي مان اڃا تائين اليڪٽرانڪس ۾ ڪم ڪريان ٿو. تنهن ڪري، اسان فوري طور تي چئلينج جي باري ۾ وساريو دير ()، جنهن کي اهي استعمال ڪرڻ پسند ڪن ٿا مثال اسڪيچ ۾، ۽ جيڪو صرف پروگرام کي مخصوص وقت لاءِ ”منجمد“ ڪري ٿو. ان جي بدران، تجربيڪار ماڻهن جي صلاح، اسان هر بلاڪ لاء ٽائمر متعارف ڪرايو. گهربل وقفو گذري چڪو آهي - عمل ڪيو ويو آهي (ايل اي ڊي جي روشني کي وڌايو، انجڻ تي ڦيرايو، وغيره).

ٽائمر پاڻ ۾ ڳنڍجي سگھن ٿا. مثال طور، ٽوئيٽر فليشر سان هم وقت ڪم ڪري ٿو. هي پروگرام ٿورو آسان بڻائي ٿو.

قدرتي طور تي، اسان هر شيء کي الڳ الڳ ڪمن ۾ ٽوڙيندا آهيون (چمڪندڙ بتيون، آواز، رخ، اڳتي وڌڻ، وغيره). جيڪڏهن توهان ائين نه ڪيو ته پوءِ توهان اهو معلوم نه ڪري سگهندا ته ڇا اچي رهيو آهي ڪٿان ۽ ڪٿان.

تدريسي علم جي نزاڪت

مون مٿي بيان ڪيل هر شي کي شام ۾ منهنجي مفت وقت ۾ ڪيو. آرام سان، مون اٽڪل ٽي هفتا روبوٽ تي گذاريا. اها ڳالهه هتي ختم ٿي سگهي ٿي، پر مون اهو به واعدو ڪيو ته توهان کي ٻار سان ڪم ڪرڻ بابت ٻڌايان. هن عمر ۾ ڇا ڪري سگهجي ٿو؟

هدايتن جي مطابق ڪم ڪريو

اسان سڀ کان پهريان هر تفصيل کي الڳ الڳ جانچيو - LEDs، ٽوئيٽر، موٽر، سينسر، وغيره. تيار ڪيل مثالن جو هڪ وڏو تعداد موجود آهي - ڪجهه صحيح ترقي واري ماحول ۾، ٻيا انٽرنيٽ تي ڳولي سگهجن ٿا. اهو ضرور مون کي خوش ڪري ٿو. اسان ڪوڊ وٺون ٿا، حصو ڳنڍي، پڪ ڪريو ته اهو ڪم ڪري ٿو، پوء اسان ان کي تبديل ڪرڻ شروع ڪريون ٿا اسان جي ڪم جي مطابق. ٻار ڊاگرام جي مطابق ۽ منهنجي نگراني هيٺ ڪنيڪشن ٺاهي ٿو. هي سٺو آهي. توهان کي هدايتن جي مطابق سختي سان ڪم ڪرڻ جي قابل هجڻ جي ضرورت آهي.

ڪم جو حڪم ("خاص کان عام")

هي هڪ ڏکيو نقطو آهي. توهان کي سکڻ جي ضرورت آهي ته هڪ وڏو پروجيڪٽ ("روبوٽ ٺاهيو") ننڍن ڪمن تي مشتمل آهي ("سينسر ڳنڍيو،" "موٽر ڳنڍيو"...)، ۽ اهي، موڙ ۾، اڃا به ننڍا قدمن تي مشتمل آهن ("هڪ ڳوليو" پروگرام، "هڪ بورڊ ڳنڍيو." "، "ڊائون لوڊ فرمائيندڙ"...). هيٺين سطح جي وڌيڪ يا گهٽ سمجھڻ واري ڪم کي انجام ڏيڻ سان، اسان وچولي سطح جي ڪمن کي "بند" ڪريون ٿا، ۽ انهن مان مجموعي نتيجو ٺهيل آهي. مون وضاحت ڪئي، پر مان سمجهان ٿو ته حقيقت جلد نه ايندي. ڪٿي، شايد، جوانيءَ ۾.

چڙهڻ

سوراخ ڪرڻ، ڌاڙا، اسڪرو، نٽ، سولڊرنگ ۽ گلاب جي بو - اسان ان کان سواء ڪٿي هوندا؟ ٻار کي بنيادي مهارت حاصل ڪئي وئي "لوهه سان ڪم ڪرڻ" - هن ڪيترن ئي ڪنيڪشن کي سولر ڪرڻ ۾ مدد ڪئي (مون ٿوري مدد ڪئي، مان ان کي لڪائي نه سگهندو). حفاظت جي وضاحت جي باري ۾ نه وساريو.

ڪمپيوٽر جو ڪم

مون روبوٽ لاء پروگرام لکيو، پر مون اڃا تائين ڪجهه سازگار نتيجا حاصل ڪرڻ ۾ مدد ڪئي.

پهريون: انگريزي. هنن اهو صرف اسڪول ۾ شروع ڪيو هو، تنهنڪري اسان کي اهو معلوم ڪرڻ لاءِ جدوجهد ڪري رهيا هئاسين ته پشالڪا، ميگلڪا، يارڪوسٽ ۽ ٻيا ترجمو ڇا آهن. گهٽ ۾ گهٽ اسان اهو سمجهي ورتو. مون ڄاڻي واڻي انگريزي لفظ استعمال نه ڪيا آهن، ڇاڪاڻ ته اسان اڃا تائين ان سطح تي نه پهتا آهيون.

ٻيو: موثر ڪم. اسان سيکاريو هاٽڪي جو مجموعو ۽ ڪيئن تيزيءَ سان معياري عملن کي انجام ڏيڻ. وقتي طور تي، جڏهن اسان پروگرام لکي رهيا هئاسين، منهنجو پٽ ۽ مون هنڌن کي تبديل ڪيو، ۽ مون چيو ته ڇا ڪرڻ جي ضرورت آهي (متبادل، ڳولا، وغيره). مون کي بار بار ورجائڻو پيو: “ڊبل ڪلڪ ڪريو سليڪٽ”، “Hold Shift”، “Hold Ctrl” وغيره. هتي سکڻ جو عمل تيز نه آهي، پر منهنجو خيال آهي ته صلاحيتن کي آهستي آهستي "ذيلي ڪارٽيڪس" ۾ جمع ڪيو ويندو.

لڪيل متنتوهان اهو چئي سگهو ٿا ته مٿي ڄاڻايل تقريبا واضح آهي. پر، ايمانداري سان، هن زوال ۾ مون کي هڪ اسڪول ۾ 9 هين گريڊ ۾ ڪمپيوٽر سائنس سيکارڻ جو موقعو مليو. اهو خوفناڪ آهي. شاگرد اهڙيون بنيادي شيون نه ٿا ڄاڻن جهڙوڪ Ctrl + Z، Ctrl + C ۽ Ctrl + V، شفٽ کي دٻائڻ دوران متن چونڊڻ يا لفظ تي ڊبل ڪلڪ ڪرڻ وغيره. اهو ان حقيقت جي باوجود آهي ته اهي ڪمپيوٽر سائنس جي پڙهائيءَ جي ٽئين سال ۾ هئا... پنهنجو نتيجو ڪڍو.

ٽيون: ٽائيپ ٽائپنگ. مون ڪوڊ ۾ تبصرو ٻار کي ٽائيپ ڪرڻ جي حوالي ڪيو (هن کي مشق ڪرڻ ڏيو). اسان فوري طور تي پنهنجا هٿ صحيح طور تي رکيا آهن ته جيئن اسان جون آڱريون آهستي آهستي ڪنجي جي جڳهه کي ياد ڪن.

جئين توهان ڏسي سگهو ٿا، اسان اڃا تائين شروع ڪري رهيا آهيون. اسان پنهنجي صلاحيتن ۽ علم کي وڌائڻ جاري رکنداسين؛ اهي زندگي ۾ ڪارآمد ثابت ٿيندا.

رستي ۾، مستقبل بابت ...

وڌيڪ ترقي

روبوٽ ٺاهيو ويو آهي، ڊوڙندو آهي، چمڪندڙ ۽ بيپ. ھاڻ ڇا؟ جيڪو اسان حاصل ڪيو آهي ان کان متاثر ٿي، اسان ان کي وڌيڪ بهتر ڪرڻ جو منصوبو ٺاهيو. اتي هڪ خيال آهي ته هڪ ريموٽ ڪنٽرول ٺاهڻ - هڪ قمري روور وانگر. اهو دلچسپ هوندو، هڪ ريموٽ ڪنٽرول تي ويٺي، هڪ روبوٽ جي حرڪت کي ڪنٽرول ڪرڻ لاء جيڪو مڪمل طور تي مختلف هنڌن تي هلائي رهيو آهي. پر اها هڪ مختلف ڪهاڻي هوندي ...

۽ آخر ۾، حقيقت ۾، هن آرٽيڪل جا هيرو (ويڊيو ڪلڪ ڪندي):

Arduino تي پهريون روبوٽ ٺاهڻ جو تجربو (روبوٽ ”شڪار“)

Спасибо за внимание!

ڪوڊ لنڪ

جو ذريعو: www.habr.com

تبصرو شامل ڪريو