فهرست مطالب:
- تدارکات
- مرحله 1: چگونه پیچ و خم حل می شود
- مرحله 2: ملاحظاتی هنگام برنامه نویسی ربات
- مرحله 3: برنامه اصلی
- مرحله 4: بلوک های من (زیر روال ها)
- مرحله 5: شروع به ساخت ربات: پایگاه
- مرحله 6: بالای پایه ، 1
- مرحله 7: بالای پایه ، 2
- مرحله 8: بالای پایه ، 3
- مرحله 9: سنسورهای مادون قرمز و اولتراسونیک
- مرحله 10: کابل ها
- مرحله 11: آخرین مرحله در ساخت ربات: دکوراسیون
- مرحله 12: پیچ و خم بسازید
- مرحله 13: پیچ و خم
تصویری: AI در LEGO EV3 Maze-Driving Robot: 13 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
این یک ربات ساده و مستقل با کمی هوش مصنوعی است. این دستگاه برای کاوش در پیچ و خم طراحی شده است و هنگامی که در ورودی قرار می گیرد ، از طریق خروجی حرکت می کند و از بن بست ها جلوگیری می کند. این بسیار پیچیده تر از پروژه قبلی من است ، که به سادگی از پیچ و خم عبور کرد. در اینجا ، روبات باید مسیری را که طی کرده است به خاطر بسپارد ، بن بست ها را برداشته ، مسیر جدید را ذخیره کرده و سپس مسیر جدید را دنبال کند.
ربات قبلی من در اینجا شرح داده شده است:
این ربات با استفاده از LEGO Mindstorms EV3 ساخته شده است. نرم افزار EV3 بر روی رایانه اجرا می شود و برنامه ای را ایجاد می کند که سپس بر روی میکروکنترلری به نام EV3 Brick بارگیری می شود. روش برنامه نویسی مبتنی بر نماد و سطح بالا است. بسیار آسان و همه کاره است.
تدارکات
قطعات
- مجموعه LEGO Mindstorms EV3
- سنسور اولتراسونیک LEGO Mindstorms EV3. در مجموعه EV3 گنجانده نشده است.
- مقوا راه راه برای پیچ و خم. دو کارتن باید کافی باشد.
- یک تکه کوچک از مقوا نازک که به تثبیت گوشه ها و دیوارها کمک می کند.
- چسب و نوار برای اتصال قطعات مقوایی به یکدیگر.
- یک پاکت کارت تبریک قرمز برای شناسایی خروجی پیچ و خم.
ابزارها
- چاقوی کاربردی برای برش مقوا.
- خط کش فولادی برای کمک به روند برش.
نرم افزار
برنامه اینجاست:
مرحله 1: چگونه پیچ و خم حل می شود
روش رانندگی ماز
روشهای مختلفی برای حرکت در پیچ و خم وجود دارد. اگر علاقمند به مطالعه آنها هستید ، در مقاله زیر ویکی پدیا به خوبی توضیح داده شده است:
روش پیروی از دیوار سمت چپ را انتخاب کردم. ایده این است که ربات با تصمیم گیری زیر هنگام عبور از پیچ و خم ، دیوار را در سمت چپ خود نگه می دارد:
- اگر امکان گردش به چپ وجود دارد ، این کار را انجام دهید.
- در غیر این صورت ، در صورت امکان مستقیم بروید.
- اگر نمی تواند به چپ یا راست برود ، در صورت امکان به راست بپیچید.
- اگر هیچ یک از موارد بالا امکان پذیر نیست ، این باید یک بن بست باشد. بچرخ.
یک احتیاط این است که اگر پیچ و خم یک حلقه در پیچ داشته باشد ، این روش ممکن است شکست بخورد. بسته به محل قرارگیری حلقه ، ربات می تواند به دور و اطراف حلقه ادامه دهد. یک راه حل احتمالی برای این مشکل این است که اگر ربات متوجه شود که در حال چرخش است به قانون پیروی از دیوار سمت راست تغییر می دهد. من این اصلاح را در پروژه خود وارد نکردم.
حل مساله برای یافتن مسیر مستقیم
هنگام رانندگی در پیچ و خم ، روبات باید مسیری را که طی می کند حفظ کند و بن بست ها را از بین ببرد. این امر با ذخیره هر پیچ و تقاطع در یک آرایه ، بررسی ترکیبات خاص پیچ ها و تقاطع ها در حین حرکت و جایگزینی ترکیباتی که شامل بن بست می شوند ، این کار را انجام می دهد. فهرست نهایی پیچ ها و تقاطع ها مسیر مستقیم از طریق پیچ و خم است.
پیچ های احتمالی عبارتند از: چپ ، راست ، عقب (در بن بست) و راست (که یک تقاطع است).
جایگزینی ترکیبات به شرح زیر است:
- "چپ ، عقب ، چپ" به "راست" تبدیل می شود.
- "چپ ، عقب ، راست" به "بازگشت" تبدیل می شود.
- "چپ ، عقب ، راست" به "راست" تبدیل می شود.
- "راست ، عقب ، چپ" به "بازگشت" تبدیل می شود.
- "راست ، عقب ، چپ" به "راست" تبدیل می شود.
- "مستقیم ، عقب ، مستقیم" به "بازگشت" تبدیل می شود.
چگونه روبات ماز من را کنترل می کند
- هنگامی که ربات شروع به رانندگی می کند ، فضایی در سمت راست می بیند و Straight را در لیست آرایه ذخیره می کند.
- سپس به چپ می چرخد و Left را به لیست اضافه می کند. این لیست در حال حاضر شامل: راست ، چپ است.
- با یک بن بست ، می چرخد و به لیست اضافه می کند. این لیست در حال حاضر شامل: راست ، چپ ، عقب است.
- با عبور از خطی که از ورودی استفاده می کرد ، Straight را به لیست اضافه می کند. این لیست در حال حاضر شامل: راست ، چپ ، عقب ، راست است. ترکیبی را تشخیص می دهد و چپ ، عقب ، راست به راست را تغییر می دهد. این لیست اکنون شامل Straight، Right است.
- با یک بن بست ، می چرخد و به لیست اضافه می کند. این لیست اکنون شامل: راست ، راست ، عقب.
- پس از گردش به چپ ، لیست شامل Straight ، Right ، Back ، Left است. ترکیبی را تشخیص می دهد و راست ، عقب ، چپ به عقب را تغییر می دهد. این لیست اکنون شامل Straight، Back است.
- پس از چرخش چپ بعدی ، لیست شامل Straight ، Back ، Left است. این ترکیب را به Right تغییر می دهد. این لیست در حال حاضر فقط شامل Right است.
- از فضایی عبور می کند و Straight را به لیست اضافه می کند. این لیست در حال حاضر شامل Right ، Straight است.
- پس از گردش به راست ، لیست شامل Right ، Straight ، Right است که مسیر مستقیم است.
مرحله 2: ملاحظاتی هنگام برنامه نویسی ربات
ملاحظات مربوط به هر کنترل کننده میکرو
هنگامی که ربات تصمیم می گیرد بچرخد ، یا باید دور وسیعی بچرخاند ، یا قبل از چرخش مسافت کوتاهی به جلو برود و پس از چرخش مجدداً مسافت کوتاهی را بدون بررسی سنسور جلو برود. دلیل اولین فاصله کوتاه این است که ربات نباید بعد از چرخش به دیوار برخورد کند ، و دلیل فاصله کوتاه دوم این است که پس از چرخش ربات ، سنسور فضای طولانی را که تازه از آنجا آمده بود می بیند. ، و ربات فکر می کند باید دوباره بچرخد ، که کار درستی نیست.
هنگامی که ربات تقاطعی را در سمت راست احساس می کند اما به راست نمی چرخد ، متوجه شده ام که خوب است ربات بدون بررسی سنسورهای آن حدود 10 اینچ (25 سانتی متر) به جلو حرکت کند.
ملاحظات ویژه LEGO MINDSTORMS EV3
اگرچه LEGO Mindstorms EV3 بسیار متنوع است ، اما به بیش از هر نوع سنسور متصل به یک آجر اجازه نمی دهد. دو یا چند آجر ممکن است زنجیر دیزی داشته باشند ، اما من نمی خواستم آجر دیگری بخرم و بنابراین از سنسورهای زیر (به جای سه سنسور اولتراسونیک) استفاده کردم: سنسور مادون قرمز ، سنسور رنگ و سنسور اولتراسونیک. این خوب کار کرد.
اما سنسور رنگ دارای محدوده بسیار کوتاهی ، حدود 2 اینچ (5 سانتیمتر) است ، که به ملاحظات خاصی منجر می شود که در زیر توضیح داده شده است:
- هنگامی که سنسور رنگ دیواری را در جلو تشخیص می دهد و روبات تصمیم می گیرد به راست بپیچد یا بچرخد ، باید ابتدا پشتیبان گیری کند تا فضای کافی برای چرخش بدون برخورد با دیوار به خود اختصاص دهد.
- یک مسئله پیچیده در برخی از تقاطع های "مستقیم" رخ می دهد. به دلیل برد کم سنسور رنگ ، ربات نمی تواند تشخیص دهد که آیا یک تقاطع "مستقیم" را احساس می کند یا به سمت راست بپیچد. من سعی کردم این مشکل را با تنظیم برنامه ای برای ذخیره "Straight" در لیست هر بار که ربات حس می کند و سپس بیش از یک "Straight" پشت سر هم در لیست حذف کنم. این وضعیت را برطرف می کند که در آن یک پیچ راست در پیچ و خم "مستقیم" را دنبال می کند اما وضعیتی که در آن یک "راست" قبل از آن وجود ندارد. من همچنین سعی کردم برنامه را برای حذف "مستقیم" در صورتی که درست قبل از "راست" باشد حذف کنم ، اما اگر یک راست به دنبال "راست" باشد این کار نمی کند. من نتوانستم راه حلی را پیدا کنم که برای همه موارد مناسب باشد ، اما فکر می کنم این امکان وجود داشته باشد که ربات به مسافت طی شده (با خواندن سنسورهای چرخش موتور) نگاه کند و تصمیم بگیرد که آیا "مستقیم" است یا راست دور زدن. من فکر نمی کردم این عارضه برای نشان دادن مفهوم AI در این پروژه ارزش انجام دادن را داشته باشد.
- مزیت سنسور رنگ این است که بین رنگ قهوه ای دیوار و قرمز حائلی که در خروجی استفاده کردم تمایز قائل می شود و راهی آسان برای تصمیم گیری روبات هنگام خاتمه پیچ و خم فراهم می کند.
مرحله 3: برنامه اصلی
LEGO Mindstorms EV3 دارای روش برنامه نویسی بسیار راحت مبتنی بر آیکون است. بلوک ها در پایین صفحه نمایش روی رایانه نشان داده می شوند و می توانند برای ایجاد یک برنامه ، در پنجره برنامه نویسی کشیده و رها شوند. EV3 Brick ممکن است از طریق کابل USB ، Wi-Fi یا بلوتوث به رایانه متصل شود و سپس برنامه از رایانه به Brick بارگیری شود.
این برنامه شامل یک برنامه اصلی و چندین "بلوک های من" است که زیر روال هستند. فایل بارگذاری شده شامل کل برنامه است که در اینجا آمده است:
مراحل برنامه اصلی به شرح زیر است:
- متغیر شمارش نوبت و آرایه را تعریف و مقداردهی کنید.
- 5 ثانیه صبر کنید و بگویید "برو".
- یک حلقه شروع کنید.
- رانندگی از طریق پیچ و خم. وقتی به خروجی رسید ، حلقه خارج می شود.
- نمایش بر روی صفحه نمایش آجر ، تقاطع های موجود در پیچ و خم تا کنون.
- بررسی کنید که آیا مسیر باید کوتاه شود یا خیر.
- تقاطع ها را در مسیر کوتاه نشان دهید.
- به مرحله 4 بازگردید.
- بعد از حلقه ، مسیر مستقیم را طی کنید.
اسکرین شات این برنامه اصلی را نشان می دهد.
مرحله 4: بلوک های من (زیر روال ها)
Navigate My Block ، که نحوه رانندگی ربات را از طریق پیچ و خم کنترل می کند ، نشان داده شده است. چاپ بسیار کوچک است و ممکن است خوانا نباشد. اما این یک مثال خوب از این است که دستورات if (که در سیستم LEGO EV3 سوئیچ نامیده می شوند) چند منظوره و قدرتمند هستند.
- پیکان شماره 1 به سوئیچ اشاره می کند که بررسی می کند آیا سنسور مادون قرمز یک شیء را بیش از یک فاصله خاص از ما می بیند یا خیر. اگر چنین است ، سری بالای بلوک ها اجرا می شوند. در غیر این صورت ، کنترل به مجموعه بزرگ و پایین بلوک ها ، جایی که پیکان شماره 2 در آن قرار دارد ، منتقل می شود.
- پیکان شماره 2 به سوئیچ اشاره می کند که بررسی می کند سنسور رنگ چه رنگی را می بیند. 3 مورد وجود دارد: بدون رنگ در بالا ، قرمز در وسط و قهوه ای در پایین.
- دو پیکان شماره 3 به سوئیچ ها اشاره می کند که بررسی می کند سنسور اولتراسونیک جسمی را بیش از یک فاصله خاص از ما می بیند یا خیر. اگر چنین است ، سری بالای بلوک ها اجرا می شوند. در غیر این صورت ، کنترل به سری پایین بلوک ها منتقل می شود.
بلوک های من برای کوتاه کردن مسیر و رانندگی در مسیر مستقیم پیچیده تر هستند و کاملاً ناخوانا هستند ، بنابراین در این سند گنجانده نشده اند.
مرحله 5: شروع به ساخت ربات: پایگاه
همانطور که قبلاً ذکر شد ، LEGO Mindstorms EV3 اجازه نمی دهد بیش از یک نوع حسگر متصل به یک آجر باشد. من از سنسورهای زیر (به جای سه سنسور اولتراسونیک) استفاده کردم: سنسور مادون قرمز ، سنسور رنگ و سنسور اولتراسونیک.
دو عکس زیر نحوه ساخت ربات را نشان می دهد. عکس اول از هر جفت قطعات مورد نیاز را نشان می دهد و عکس دوم همان قسمت هایی را که به هم متصل شده اند نشان می دهد.
اولین قدم ساخت پایه ربات با استفاده از قطعات نشان داده شده است. پایه ربات وارونه نشان داده شده است. قسمت کوچک L شکل در پشت روبات تکیه گاه پشت است. با حرکت ربات ، لغزش می کند. این خوب کار می کند کیت EV3 دارای قطعه ای از نوع توپ نورد نیست.
مرحله 6: بالای پایه ، 1
مرحله ThIs و 2 مرحله بعدی مربوط به قسمت بالای پایه ربات ، سنسور رنگ و کابل هایی است که همه کابل های 10 اینچی (26 سانتی متری) هستند.
مرحله 7: بالای پایه ، 2
مرحله 8: بالای پایه ، 3
مرحله 9: سنسورهای مادون قرمز و اولتراسونیک
در مرحله بعد ، سنسور مادون قرمز (در سمت چپ ربات) و سنسور اولتراسونیک (در سمت راست) قرار دارند. همچنین ، 4 پین برای چسباندن آجر در بالا.
سنسورهای مادون قرمز و اولتراسونیک به جای عمودی معمولی به صورت عمودی قرار گرفته اند. این باعث می شود گوشه ها یا انتهای دیوارها بهتر شناسایی شوند.
مرحله 10: کابل ها
کابل ها به شرح زیر به آجر متصل می شوند:
- بندر B: موتور بزرگ سمت چپ
- پورت C: موتور بزرگ راست
- پورت 2: سنسور اولتراسونیک
- پورت 3: حسگر رنگ
- پورت 4: سنسور مادون قرمز
مرحله 11: آخرین مرحله در ساخت ربات: دکوراسیون
بال و باله فقط برای تزئین است.
مرحله 12: پیچ و خم بسازید
دو کارتن مقوایی راه راه باید برای پیچ و خم کافی باشد. دیوارهای پیچ و خم را به ارتفاع 5 اینچ (12.5 سانتی متر) ساختم ، اما اگر کمبود مقوا راه راه دارید ، 4 اینچ (10 سانتی متر) باید به همان خوبی کار کند.
ابتدا ، دیوارهای کارتن ها را به فاصله 10 اینچ (25 سانتی متر) از پایین برش دادم. سپس دیوارها را از پایین به فاصله 5 اینچ برش دادم. این دیوارهای 5 اینچی را فراهم می کند. همچنین ، من ته کارتن ها را برش دادم و حدود 1 اینچ (2.5 سانتیمتر) را برای پایداری به دیوارها وصل کردم.
قطعات مختلف را می توان برش داد و چسباند یا در هر کجا که لازم است برای ایجاد پیچ و خم چسباند. باید بین دیوارهای جانبی در هر مسیری با بن بست یک فاصله 11 یا 12 اینچی (30 سانتی متری) وجود داشته باشد. طول نباید کمتر از 10 اینچ (25 سانتی متر) باشد. این فاصله ها برای چرخاندن روبات مورد نیاز است.
برخی از گوشه های پیچ و خم ممکن است نیاز به تقویت داشته باشند ، همچنین برخی از دیوارهای مستقیم در صورتی که دارای یک گوشه مقوایی صاف باشند از خم شدن خودداری می کنند. همانطور که در تصویر نشان داده شده است ، در آن قسمتها قطعات کوچک مقوا نازک باید به پایین چسبانده شوند.
همانطور که در تصویر نشان داده شده ، یک خروجی قرمز شامل نیمی از پاکت کارت تبریک قرمز و پایه ای از 2 تکه مقوا نازک است.
مرحله 13: پیچ و خم
یک احتیاط این است که پیچ و خم نباید بزرگ باشد. اگر چرخش ربات کمی با دور مناسب باشد ، اختلافات پس از چند دور بیشتر می شود و ربات می تواند به دیوارها برخورد کند. من مجبور شدم چندین بار با تنظیمات چرخش پیچ ها کمانچه بزنم تا بتوانم از طریق پیچ و خم کوچکی که ایجاد کرده ام رانندگی موفقی داشته باشم.
یک راه حل برای حل این مشکل این است که یک روال مستقیم برای صاف کردن مسیر داشته باشید که بتواند ربات را با دیوار چپ فاصله مشخصی داشته باشد. من این را وارد نکردم این برنامه به اندازه کافی پیچیده است و برای نشان دادن مفهوم AI در این پروژه کافی است.
یادآوری نتیجه گیری
این یک پروژه سرگرم کننده و یک تجربه یادگیری عالی بود. امیدوارم شما هم براتون جالب باشه
توصیه شده:
شیب LEGO Maze With Micro: بیت: 9 مرحله
کج کردن LEGO Maze With Micro: bit: این هیچ رازی نیست که LEGO فوق العاده است و هیچ چیز ما را بیشتر از افزودن برخی وسایل الکترونیکی سرگرم کننده به کیت های LEGO ما دوست نداریم تا آنها را بسیار جذاب تر کنیم. پیچ و خم LEGO ما دارای دو دستگیره در دو طرف است که به شما امکان می دهد نیمه بالایی را کج کرده و یک توپ را مانور دهید
Ev3 Lego Gripper/Robot Finder: 7 Step
Ev3 Lego Gripper/Robot Finder: سلام! GrabBot یک ربات چند منظوره است که دوست دارد دور خودش بچرخد … وقتی به یک شی کوچک برخورد می کند ، آن را برداشته و به حالت اولیه باز می گرداند
Robot Maze Crab Robot PROTOTYPE 1 STATUS INCOLETE: 11 مرحله
Robot Maze Crab Robot PROTOTYPE 1 STATUS INCOLETE: سلب مسئولیت !!: سلام ، عذرخواهی می کنم برای تصاویر ضعیف ، بعداً دستورالعمل ها و نمودارهای بیشتری (و جزئیات خاص تر) اضافه می کنم. یک ویدیوی تایم لپس). همچنین این دستورالعمل ناقص است ، همانطور که من
Laser Cut Nerf Ball Shooting Lego EV3 Tank: 4 مرحله
Laser Cut Nerf Ball Shooting Lego EV3 Tank: برای پروژه نهایی دوره 1A من در مهندسی مکاترونیک در دانشگاه واترلو ، ما یک مخزن برش لیزری با کیت Lego EV3 ایجاد کردیم (لازم بود) که به توپ های Nerf شلیک می کند. این دستورالعمل به هیچ وجه یک گزارش کامل طراحی نیست. اگر شما
کنسول بازی جیبی آردوینو + A -Maze - Maze Game: 6 مرحله (همراه با تصاویر)
کنسول بازی جیبی آردوینو + A -Maze - Maze Game: به اولین برنامه آموزشی من خوش آمدید! پروژه ای که امروز می خواهم با شما به اشتراک بگذارم بازی maze Arduino است که به عنوان یک کنسول جیبی به اندازه Arduboy و کنسول های مشابه مبتنی بر Arduino تبدیل شد. به لطف expo می توان با بازی های آینده من (یا شما) چشمک زد