په Arduino کې د لومړي روبوټ رامینځته کولو تجربه (روبوټ "شکار")

سلام.

پدې مقاله کې زه غواړم د Arduino په کارولو سره زما د لومړي روبوټ راټولولو پروسه تشریح کړم. مواد به زما په څیر نورو پیل کونکو لپاره ګټور وي څوک چې غواړي یو ډول "ځان چلونکی کارټ" جوړ کړي. مقاله زما د اضافې سره د کار کولو مرحلو توضیحات دي چې په مختلف نزاکتونو کې دي. د وروستي کوډ لپاره لینک (ډیری احتمال خورا مثالی نه دی) د مقالې په پای کې ورکړل شوی.

په 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 کې د لومړي روبوټ رامینځته کولو تجربه (روبوټ "شکار")

موټروان او چلوونکی

لومړی، د انجنونو نصبولو په اړه. ماونټ د فابریکې جوړ شوی، مګر د لوی زغم سره جوړ شوی. په بل عبارت، انجنونه کولی شي څو ملی متره چپ او ښي خوا ته وګرځي. زموږ د کار لپاره دا خورا مهم نه دی، مګر په ځینو ځایونو کې ممکن دا اغیزه ولري (روبوټ به د غاړې حرکت پیل کړي). یوازې په هغه حالت کې ، ما انجنونه په کلکه سره موازي تنظیم کړل او د ګلو سره یې تنظیم کړل.

په Arduino کې د لومړي روبوټ رامینځته کولو تجربه (روبوټ "شکار")

د موټرو کنټرول لپاره، لکه څنګه چې ما پورته لیکلي، د L298N ډرایور کارول کیږي. د اسنادو له مخې، دا د هر موټرو لپاره درې پنونه لري: یو د سرعت بدلولو لپاره او یو جوړه پنونه د حرکت لوري لپاره. دلته یو مهم ټکی دی. دا معلومه شوه چې که د اکمالاتو ولتاژ 5 V وي، نو د سرعت کنټرول په ساده ډول کار نه کوي! دا دی، یا دا په بشپړ ډول نه بدلیږي، یا دا اعظمي ته وګرځي. دا هغه ځانګړتیا ده چې ما د څو ماښامونو "وژنې" لامل شوی. په پای کې، ما په یو فورم کې یو ځای یادونه وموندله.

په عموم کې ، ما د روبوټ بدلولو په وخت کې د ټیټ گردش سرعت ته اړتیا درلوده - نو دا د ځای سکین کولو وخت درلود. مګر، ځکه چې د دې مفکورې څخه هیڅ شی نه دی راغلی، ما باید دا په بل ډول ترسره کړي: یو کوچنی وار - ودرول - ودرول - ودرول، او داسې نور. بیا دومره په زړه پورې نه، مګر د کار وړ.

زه به دلته دا هم اضافه کړم چې د هرې تعقیب وروسته روبوټ د نوي وار لپاره تصادفي سمت غوره کوي (د ساعت په لور یا د ساعت په لور).

الټراسونک سینسر

په Arduino کې د لومړي روبوټ رامینځته کولو تجربه (روبوټ "شکار")

د هارډویر بله برخه چیرې چې موږ باید د جوړجاړي حل په لټه کې شو. د الټراسونک سینسر په اصلي خنډونو کې بې ثباته شمیرې تولیدوي. په حقیقت کې، دا تمه وه. په عین حال کې، دا په سیالیو کې چیرته کار کوي چیرې چې نرم، حتی او عمودي سطحونه شتون لري، مګر که د یو چا پښې د هغې په وړاندې "فلش" وي، اضافي پروسس کولو ته اړتیا لري.

د داسې پروسس کولو په توګه ما ترتیب کړی منځنی فلټر د دریو حسابونو لپاره. د اصلي ماشومانو د ازموینو پراساس (د ازموینو پرمهال هیڅ ماشومانو ته زیان نه دی رسیدلی!) ، دا د معلوماتو نورمال کولو لپاره کافي و. دلته فزیک ساده دی: موږ سیګنالونه منعکس کوو اړین شیان (د اړتیا وړ فاصله ورکول) او د ډیرو لیرې څخه منعکس شوي، د بیلګې په توګه، دیوالونه. وروستی د 45، 46 فارم په اندازه کولو کې تصادفي اخراج دي. 230، 46، 46، 45، 45، 310, 46... دا هغه دي چې منځني فلټر پرې کوي.

د ټولو پروسس کولو وروسته، موږ نږدې څیز ته فاصله ترلاسه کوو. که دا د یو ټاکلي حد ارزښت څخه کم وي، نو موږ الارم وګرځوو او مستقیم د "مداخله کونکي" په لور حرکت کوو.

فلشر او سایرن

شاید د پورته ټولو ساده عناصرو څخه. دوی په پورته عکسونو کې لیدل کیدی شي. دلته د هارډویر په اړه د لیکلو لپاره هیڅ شتون نلري، نو اوس راځئ چې لاړ شو کوډ.

د کنټرول پروګرام

زه په تفصیل سره د کوډ تشریح کولو نقطه نه ګورم، څوک ورته اړتیا لري - لینک د مقالې په پای کې دی، هرڅه هلته د لوستلو وړ دي. مګر دا به ښه وي چې عمومي جوړښت تشریح کړئ.

لومړی شی چې موږ یې پوهیدل دا وو چې روبوټ یو ریښتیني وخت وسیله ده. ډیر دقیق، د یادولو لپاره، ځکه چې دواړه مخکې او اوس زه لاهم په برقیاتو کې کار کوم. نو، موږ سمدلاسه د ننګونې په اړه هیر کړو ځنډ ()، کوم چې دوی د مثال په سکیچونو کې کارول خوښوي ، او کوم چې په ساده ډول د یوې ټاکلې مودې لپاره برنامه "فریز" کوي. پرځای یې، لکه څنګه چې تجربه لرونکي خلک مشوره ورکوي، موږ د هر بلاک لپاره ټایمر معرفي کوو. اړین وقفه تیره شوه - عمل ترسره شو (د LED روښانتیا زیاته کړه، انجن چالان شو، او داسې نور).

ټایمرونه یو له بل سره وصل کیدی شي. د مثال په توګه، ټویټر د فلشر سره همغږي کار کوي. دا پروګرام یو څه ساده کوي.

په طبیعي ډول، موږ هر څه په جلا جلا دندو ویشو (د څراغونو څراغونه، غږ، مخ اړول، مخ پر وړاندې تلل، او داسې نور). که تاسو دا کار ونه کړئ، نو تاسو به نشئ کولی پوه شئ چې څه شی له کوم ځای څخه راځي.

د ښوونې او روزنې لنډیز

ما په ماښام کې زما په وړیا وخت کې پورته بیان شوي هرڅه وکړل. په آرامۍ توګه، ما په روبوټ کې شاوخوا درې اونۍ تیرې کړې. کیدای شي دا خبره دلته پای ته رسیدلې وای، خو ما هم ژمنه کړې وه چې د ماشوم سره د کار کولو په اړه به درته ووایم. په دې عمر کې څه کولی شي؟

د لارښوونو سره سم کار وکړئ

موږ لومړی هر تفصیل په جلا توګه چیک کړ - LEDs، ټویټر، موټرو، سینسرونه، او داسې نور. ډیری چمتو شوي مثالونه شتون لري - ځینې په پرمختیایي چاپیریال کې، نور په انټرنیټ کې موندل کیدی شي. دا یقینا ما خوشحاله کوي. موږ کوډ اخلو، برخه وصل کړئ، ډاډ ترلاسه کړئ چې دا کار کوي، بیا موږ د خپل کار سره سم بدلولو پیل کوو. ماشوم د ډیاګرام او زما تر نظارت لاندې اړیکې رامینځته کوي. دا ښه دی. تاسو اړتیا لرئ چې د لارښوونو سره سم په کلکه کار وکړئ.

د کار ترتیب ("له ځانګړي څخه عمومي")

دا یو ستونزمن ټکی دی. تاسو اړتیا لرئ زده کړئ چې یوه لویه پروژه ("روبوټ جوړ کړئ") د کوچنیو کارونو څخه جوړه ده ("سینسر وصل کړئ،" "موټر وصل کړئ"...)، او دا، په بدل کې، حتی کوچني ګامونه لري ("یو موندل" پروګرام، "بورډ سره وصل کړئ." "، "فرم ویئر ډاونلوډ کړئ"...). د ټیټې کچې د ډیرو یا لږ پوهیدو وړ دندو په ترسره کولو سره، موږ د منځنۍ کچې دندې "بند" کوو، او له دوی څخه عمومي پایله رامینځته کیږي. ما تشریح کړه، مګر زه فکر کوم چې حقیقت به ژر نه راځي. په بل ځای کې، شاید، د ځوانۍ په واسطه.

غرونه

برمه کول، تارونه، پیچونه، مغز، سولډرینګ او د روزین بوی - موږ به له دې پرته چیرته وو؟ ماشوم بنسټیز مهارت ترلاسه کړ "د سولډرینګ اوسپنې سره کار کول" - هغه د څو اتصالونو په مینځلو کې بریالی شو (ما لږ مرسته وکړه، زه به یې پټ نه کړم). د خوندیتوب توضیحاتو په اړه مه هېروئ.

د کمپیوټر کار

ما د روبوټ لپاره برنامه لیکلې ، مګر ما لاهم اداره کړې چې ځینې مناسبې پایلې ترلاسه کړم.

لومړی: انګلیسي. دوی دا په ښوونځي کې پیل کړی و، نو موږ هڅه کوله چې معلومه کړو چې پشالکا، میګالکا، یارکوست او نور ژباړې څه دي. لږترلږه موږ پدې پوهیږو. ما په قصدي توګه د انګلیسي اصلي کلمې نه دي کارولي، ځکه چې موږ لا تر اوسه دې کچې ته نه یو رسیدلي.

دوهم: موثر کار. موږ د هاټکي ترکیبونه او د معیاري عملیاتو ګړندي کولو څرنګوالي زده کړل. په دوره توګه، کله چې موږ پروګرام لیکلو، زما زوی او ما ځایونه بدل کړل، او ما ویل چې څه باید وشي (بدلون، لټون، او نور). ما باید په وار وار تکرار کړم: "دوه ځله کلیک انتخاب کړئ"، "شیفټ ونیسئ"، "Ctrl ونیسئ" او داسې نور. دلته د زده کړې پروسه ګړندۍ نه ده، مګر زه فکر کوم چې مهارتونه به په تدریجي ډول "په سبکورټیکس کې" زیرمه شي.

پټ متنتاسو کولی شئ ووایاست چې پورته پورته نږدې څرګند دی. مګر، په صادقانه توګه، په دې مني کې ما په یوه ښوونځي کې په نهم ټولګي کې د کمپیوټر ساینس تدریس کولو فرصت درلود. دا وحشتناکه ده. زده کوونکي په داسې اساسي شیانو نه پوهیږي لکه Ctrl+Z، Ctrl+C او Ctrl+V، د شفټ د نیولو پر مهال د متن غوره کول یا په یوه کلمه دوه ځله کلیک کول او داسې نور. دا د دې حقیقت سره سره چې دوی د کمپیوټر ساینس د مطالعې په دریم کال کې وو ... خپله پایله راوړئ.

دریم: ټچ ټایپ کول. ما په کوډ کې نظرونه ماشوم ته سپارلي ترڅو ټایپ کړي (هغه پریږدي چې تمرین وکړي). موږ سمدلاسه خپل لاسونه په سمه توګه کېښودل ترڅو زموږ ګوتې په تدریجي ډول د کیلي موقعیت په یاد وساتي.

لکه څنګه چې تاسو لیدلی شئ، موږ لاهم یوازې پیل کوو. موږ به خپلو مهارتونو او پوهې ته دوام ورکړو؛ دوی به په ژوند کې ګټور وي.

په هرصورت، د راتلونکي په اړه ...

نور پرمختګ

روبوټ جوړ شوی، چلوي، ټکان کوي ​​او بیپ کوي. اوس څه؟ د هغه څه څخه الهام چې موږ ترلاسه کړي دي، موږ پلان لرو چې دا نور هم پاک کړو. د ریموټ کنټرول جوړولو لپاره یو نظر شتون لري - د قمري روور په څیر. دا به په زړه پورې وي چې په ریموټ کنټرول کې ناست وي، ترڅو د روبوټ حرکت کنټرول کړي چې په بشپړ ډول مختلف ځای کې موټر چلوي. مګر دا به یو بل کیسه وي ...

او په پای کې، په حقیقت کې، د دې مقالې اتلان (ویډیو په کلیک کولو سره):

په Arduino کې د لومړي روبوټ رامینځته کولو تجربه (روبوټ "شکار")

ستاسو د پاملرنې مننه!

کوډ ته لینک

سرچینه: www.habr.com

Add a comment