فهرست مطالب:

RADbot: 7 مرحله
RADbot: 7 مرحله

تصویری: RADbot: 7 مرحله

تصویری: RADbot: 7 مرحله
تصویری: BIT.TRIP RUNNER 2-7 Radbot 2024, نوامبر
Anonim
RADbot
RADbot

پروژه ای از جکسون برکل ، تایلر مک کابینز و جاکوب تالر برای EF 230

در مریخ ، فضانوردان با خطرات مختلفی مواجه می شوند ، از درجه حرارت شدید گرفته تا طوفان های گرد و غبار. با این حال ، یکی از عواملی که اغلب نادیده گرفته می شود ، خطری است که توسط ایزوتوپ های قدرتمند ساکن در سطح سیاره ارائه می شود. RADbot با شناسایی نمونه های سنگی با فعالیت زیاد هنگام سفر ، به کاوش فضانوردان در سطح مریخ کمک می کند و همچنین دارای ویژگی های ایمنی برنامه ریزی شده ای است که از سنسورهای صخره ای ، حسگرهای نور ، سنسورهای سپر و دوربین استفاده می کند و از آسیب ربات جلوگیری می کند. در زمین بی رحم مریخ علاوه بر هشدار دادن به فضانوردان در مورد خطرات احتمالی رادیواکتیو روی سطح ، ویژگی نمونه رادیواکتیو این ربات می تواند به عنوان ابزاری برای شناسایی مناطقی که می توانند ذخایر زیادی اورانیوم و دیگر اکتینیدها را در خود جای دهند ، پیاده سازی شود. فضانوردان می توانند این عناصر را استخراج کرده ، آنها را به میزان کافی غنی کرده و از آنها در راکتورهای هسته ای و ژنراتورهای ترموالکتریک استفاده کنند ، که می تواند به ایجاد یک مستعمره دائمی و خودکفا در کره زمین کمک کند.

بر خلاف مریخ نورد معمولی ، طراحی ما دارای اجزای خارج از قفسه و برچسب قیمت مناسب است. به شرط داشتن بودجه و تمایل ، حتی می توانید با دنبال کردن این راهنما ، یکی از آنها را ایجاد کنید. لطفاً برای یادگیری نحوه ساخت RADbot خود به ادامه مطلب بروید.

مرحله 1: قطعات و مواد لازم را تهیه کنید

قطعات و مواد لازم را تهیه کنید
قطعات و مواد لازم را تهیه کنید
قطعات و مواد لازم را تهیه کنید
قطعات و مواد لازم را تهیه کنید
قطعات و مواد لازم را تهیه کنید
قطعات و مواد لازم را تهیه کنید

آنچه برای شروع نیاز دارید (تصاویر به ترتیب فهرست شده)

1. One Roomba (هر مدل جدیدتر)

2. یک شمارنده گایگر مولر

3. One Raspberry Pi

4. دوربین یک برد با خروجی USB

5. یک کابل میکرو USB به USB

6. یک کابل USB به USB

7. یک نمونه رادیواکتیو از فعالیت کافی (~ 5μSv یا بالاتر)

8. یک کامپیوتر ماتلب نصب شده است

9. چسب (ترجیحاً نوار چسب برای جابجایی آسان)

مرحله 2: پیکربندی دوربین و شمارنده Geiger-Muller

پیکربندی دوربین و شمارنده گایگر مولر
پیکربندی دوربین و شمارنده گایگر مولر

اکنون که تمام مواد مورد نیاز برای ایجاد RADbot را در اختیار دارید ، ما با قرار دادن دوربین شروع می کنیم تا بتواند فعالیت را روی پیشخوان بخواند. شمارنده Geiger-Muller را تا آنجا که ممکن است نزدیک به انتهای Roomba قرار دهید و مطمئن شوید که سنسور آن مسدود نشده است. با چسبی که انتخاب کرده اید پیشخوان را محکم در محل خود محکم کرده و دوربین را روی آن نصب کنید. دوربین را تا آنجا که ممکن است نزدیک صفحه نمایش پیشخوان قرار دهید تا ورودی های خارجی بر برنامه تأثیر نگذارد و هنگامی که احساس راحتی کردید آن را در جای خود محکم کنید. ما به شما توصیه می کنیم امنیت دوربین را برای آخرین بار ذخیره کنید ، زیرا وقتی کد شما تمام شد ، می توانید تصویری را از دوربین روی رایانه خود نمایش دهید و به شما این امکان را می دهد تا دوربین را بر اساس میدان دید آن قرار دهید. هنگامی که هر دو دوربین و پیشخوان محکم در جای خود قرار گرفتند ، دوربین را با کابل USB به USB به یکی از ورودی های USB رزبری پای وصل کرده و Raspberry Pi را با کابل میکرو USB به USB به Roomba وصل کنید.

مرحله 3: به Roomba خود متصل شوید و کد سنسور نور ایجاد کنید

به Roomba خود متصل شوید و کد سنسور نور ایجاد کنید
به Roomba خود متصل شوید و کد سنسور نور ایجاد کنید

ابتدا جعبه ابزار Roomba وب سایت EF 230 را بارگیری کرده و مطمئن شوید که آن را در پوشه های مشخص شده قرار دهید. برای اتصال به Roomba خود ، کافیست برچسب متصل به رزبری پای را ارجاع دهید و "r = roomba (x)" را در پنجره فرمان ، بدون علامت نقل قول ، و جایی که x مخفف شماره Roomba است وارد کنید. Roomba باید آهنگی را پخش کند و دکمه تمیز باید یک حلقه سبز در اطراف آن نشان دهد. کد خود را با عبارت "while" شروع کنید و همانطور که در لیست سنسورها ظاهر می شوند ، به سنسورهای نور مراجعه کنید. لیست سنسورها را با تایپ کردن "r.testSensors" در پنجره فرمان باز کنید.

بر اساس رنگ شیء ما ، که میزان بازتاب نور را تعیین می کند ، شرایط مورد نیاز را برای دستور while به عنوان یک تابع> تعیین کنید. در مورد ما ، سنسور نور جلو را طوری تنظیم می کنیم که کد را در دستور while اجرا کند ، در صورتی که سنسورهای نور چپ یا راست مرکز> 25 باشد. برای دستور اجرایی ، سرعت Roomba را با تایپ کردن "r.setDriveVelocity (x ، y)" که در آن x و y به ترتیب سرعت چرخ های چپ و راست هستند ، کاهش دهد. عبارت "else" را وارد کنید ، به طوری که Roomba برای مقادیر نامشخص کند نشود و فرمان تنظیم سرعت درایو را دوباره وارد کنید ، مگر با سرعت متفاوت. عبارت while را با یک "پایان" به پایان برسانید. این بخش کد باعث می شود Roomba به شی نزدیک شود و هنگامی که به محدوده خاصی برسد سرعت آن را کاهش می دهد تا ضربه را به حداقل برساند.

پیوست اسکرین شاتی از کد ما است ، اما با خیال راحت آن را متناسب با پارامترهای ماموریت خود ویرایش کنید.

مرحله 4: ایجاد کد ضربه گیر

ایجاد کد ضربه گیر
ایجاد کد ضربه گیر

با کم شدن سرعت رومبا ، ضربه ای را که بر روی جسم می گذارد به حداقل می رساند ، هرچند نه آنقدر که سپر فیزیکی را تحریک نکند. برای این بخش از کد ، دوباره با حلقه "while" شروع کنید و عبارت آن را درست تنظیم کنید. برای دستور ، متغیر T را برابر با خروجی سپر ، 0 یا 1 ، برای false و true قرار دهید. برای این کار می توانید از "T = r.getBumpers" استفاده کنید. T به عنوان یک ساختار خروجی می گیرد. یک عبارت "if" وارد کنید ، و عبارت آن را برای زیرساخت T.front برابر 1 قرار دهید ، و دستور را با استفاده از "r.setDriveVelocity (x، y)" یا "r.stop" یا سرعت درایو را در 0 تنظیم کنید. " "وقفه" را وارد کنید تا Roomba بتواند پس از برآوردن شرط در کد بعدی حرکت کند. یک "else" اضافه کنید ، و عبارت آن را تنظیم کنید تا سرعت درایو را بر روی سرعت حرکت معمولی Roomba تنظیم کنید.

پیوست اسکرین شاتی از کد ما است ، اما با خیال راحت آن را متناسب با پارامترهای ماموریت خود ویرایش کنید.

مرحله 5: ایجاد کد برای خواندن صفحه شمارنده ، تفسیر آن و عقب نشینی از منبع

ایجاد کد برای خواندن صفحه شمارنده ، تفسیر آن و عقب نشینی از منبع
ایجاد کد برای خواندن صفحه شمارنده ، تفسیر آن و عقب نشینی از منبع

در قلب پروژه ما شمارنده Geiger-Muller قرار دارد و بخش کد زیر برای تعیین معنای داده های روی صفحه با استفاده از دوربین استفاده می شود. با توجه به تغییر رنگ صفحه پیشخوان ما بر اساس فعالیت منبع ، ما دوربین را طوری تفسیر می کنیم که رنگ صفحه را تفسیر کند. کد خود را با تنظیم یک متغیر برابر دستور "r.getImage" شروع کنید. این متغیر شامل یک آرایه سه بعدی از مقادیر رنگی تصویری است که در رنگهای قرمز ، سبز و آبی گرفته شده است. با استفاده از دستور "میانگین (میانگین (img1 (:، ، x)))" که در آن x یک عدد صحیح از 1 تا 3. است ، متغیرهایی برابر با میانگین این ماتریس های رنگی مربوطه تنظیم کنید. 1 ، 2 و 3 نشان دهنده قرمز ، سبز و آبی به ترتیب مانند تمام دستورات ذکر شده ، از علامت نقل قول استفاده نکنید.

برنامه را به مدت 20 ثانیه با استفاده از "مکث (20)" متوقف کنید تا شمارنده بتواند قرائت دقیق نمونه را بدست آورد و سپس عبارت "اگر" را آغاز کند. ما چندین بار با استفاده از "r.beep" بوق Roomba خود را قبل از نمایش منویی با متن "رادیوایزوتوپ پیدا شد! احتیاط!" این را می توان با فرمان "waitfor (helpdlg ({'texthere'})") انجام داد. پس از کلیک بر روی ok ، Roomba به دنبال بقیه کد در دستور "if" ادامه می دهد. از Roomba با نمونه استفاده کنید ترکیبی از دستورات "r.moveDistance" و "r.turnAngle". مطمئن شوید که عبارت if خود را با "پایان" به پایان برسانید.

پیوست اسکرین شاتی از کد ما است ، اما با خیال راحت آن را متناسب با پارامترهای ماموریت خود ویرایش کنید.

مرحله 6: یک کد سنسور Cliff ایجاد کنید

یک کد سنسور Cliff ایجاد کنید
یک کد سنسور Cliff ایجاد کنید

برای ایجاد کد برای استفاده از سنسورهای صخره ای Roomba ، با حلقه "while" شروع کنید و عبارت آن را درست تنظیم کنید. یک متغیر برابر با "r.getCliffSensors" تنظیم کنید ، و این باعث ایجاد یک ساختار می شود. دستور "if" را شروع کنید و متغیرهای "X.leftFront" و "X.rightFront" را از ساختار بیشتر از مقداری از پیش تعیین شده قرار دهید ، جایی که "X" متغیری است که دستور "r.getCliffSensors" را انتخاب کرده اید برابر با در مورد ما ، از 1000 استفاده می کردیم ، زیرا یک تکه کاغذ سفید برای نشان دادن صخره استفاده می شد ، و با نزدیک شدن سنسورها به کاغذ ، مقادیر به بیش از 1000 رسید ، و اطمینان حاصل می شود که کد فقط در صورت تشخیص صخره اجرا می شود. به بعد از آن دستور "break" را اضافه کنید و سپس عبارت "else" را وارد کنید. برای عبارت "else" ، که در صورت عدم تشخیص صخره اجرا می شود ، سرعت درایو را روی سرعت عادی حرکت برای هر چرخ تنظیم کنید. اگر Roomba یک صخره را تشخیص دهد ، "break" اجرا می شود و سپس کد خارج از حلقه while اجرا می شود. پس از قرار دادن "پایان" برای حلقه "اگر" و "while" ، Roomba را تنظیم کنید تا با استفاده از دستور move distance به عقب حرکت کند. به منظور هشدار به فضانوردان که صخره ای در این نزدیکی است ، سرعت حرکت هر چرخ ، x و y را در فرمان سرعت درایو ، به صورت a و -a قرار دهید ، که a یک عدد واقعی است. این باعث می شود که Roomba بچرخد و فضانورد را به صخره هشدار دهد.

پیوست اسکرین شاتی از کد ما است ، اما با خیال راحت آن را متناسب با پارامترهای ماموریت خود ویرایش کنید.

مرحله 7: نتیجه گیری

نتیجه
نتیجه

هدف نهایی RADbot در مریخ کمک به فضانوردان در اکتشاف و استعمار سیاره سرخ است. با شناسایی نمونه های رادیواکتیو روی سطح ، امید ما این است که ربات یا مریخ نورد در این مورد بتواند فضانوردان را واقعا ایمن نگه دارد و به شناسایی منابع نیرو برای پایگاه (های) آنها کمک کند. پس از انجام همه این مراحل و شاید با کمی آزمایش و خطا ، RADbot شما باید راه اندازی شود. نمونه رادیواکتیو را در محلی در محدوده آزمایش خود قرار دهید ، کد خود را اجرا کنید و تماشا کنید که مریخ نورد آنچه را که برای انجام آن طراحی شده بود انجام می دهد. از RADbot خود لذت ببرید!

-تیم EF230 RADbot

توصیه شده: