فهرست مطالب:

پروژه Roomba MATLAB: 5 مرحله
پروژه Roomba MATLAB: 5 مرحله

تصویری: پروژه Roomba MATLAB: 5 مرحله

تصویری: پروژه Roomba MATLAB: 5 مرحله
تصویری: پروژه جابجایی میله 5 عضوی به روش المان محدود با MATLAB 2024, نوامبر
Anonim
پروژه Roomba MATLAB
پروژه Roomba MATLAB

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

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

این دستورالعمل برای هر کس دیگری است که مایل است کد مشابهی را برای اتاق خود ایجاد کند.

مرحله 1: مرحله 1: مواد مورد نیاز

مرحله 1: مواد مورد نیاز
مرحله 1: مواد مورد نیاز
مرحله 1: مواد مورد نیاز
مرحله 1: مواد مورد نیاز

شما نیاز خواهید داشت:

  1. یک رومبا
  2. متلب
  3. این فایل برای اجرای roomba است
  4. یک سطح صاف
  5. سطح میز به عنوان "صخره" عمل می کند

مرحله 2: مرحله 2: تنظیم/دریافت کد برای Roomba

مرحله 2: تنظیم/دریافت کد برای Roomba
مرحله 2: تنظیم/دریافت کد برای Roomba

هنگامی که فایل ها را وارد می کنید صفحه شما به این شکل خواهد بود.

مرحله 3: مرحله 3: تنظیم سنسورهای صخره ای/چراغ های LED

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

٪ try rob.setLEDDigits ("") x = 0؛ y = 0 ؛ تتا = 0 ؛ مانع = ؛ چرخه = 1 ؛ AngCorr = @(x) x + 3.059.*x.^0.4205 ؛ ٪ تابع برای اصلاح زاویه های چرخش در حالی که rob.getBatteryInfo.percent> 15 rob.setLEDDigits ('') rob.setDriveVelocity (0.1)٪ برو٪ درصورتی که AA_checkperson (rob) rob.beep end٪ بررسی Cliff Sensor if AA_cliffcheck (rob) rob.stop rob.setLEDDigits ('Cliff') مکث (0.5) مانع (چرخه) = 2 ؛ AA_cliffbeep (rob)٪ Back Up And Turn rob.moveDistance (-.. 15) rob.turnAngle (30) end

مرحله 4: مرحله 4: بررسی موانع

این کد ، roomba را برای بررسی اقلام اطراف خود دریافت می کند و سنسور ضربه را بررسی می کند تا قبل از آسیب رساندن به خود ، از قطع شدن آن مطمئن شود.

٪ AA را بررسی کنید اگر AA_lightcheck (rob) rob.stop rob.setLEDDigits ('Wall') مکث (0.5) مانع (چرخه) = 1؛ ٪ Wall AA_wallbeep (rob)٪ Back Up And Turn rob.moveDistance (-. 15) rob.turnAngle (30) end٪ بررسی Bump Sensor if AA_bumpcheck (rob) rob.stop rob.setLEDDigits ('Wall') مکث (0.5) مانع (چرخه) = 1 ؛ ٪ Wall AA_wallbeep (rob)٪ Back Up And Turn rob.moveDistance (-. 15) rob.turnAngle (30) end٪ در صورت عدم وجود موانع (چرخه) = 0 ؛ elseif طول (مانع) <چرخه مانع (چرخه) = 0؛ پایان

مرحله 5: مرحله 5: نقشه کشی

مرحله 5: طرح ریزی
مرحله 5: طرح ریزی

این کد به roomba شما می گوید آنچه را که در سفر با آن مواجه می شود ترسیم کنید. توطئه ای شبیه به این بعد از اتمام اتاقی ظاهر می شود.

٪ دریافت موقعیت d = rob.getDistance؛ اگر چرخه == 1 تتا (چرخه) = 0 ؛ x (چرخه) = د.*cosd (تتا (چرخه)) ؛ ٪ کل مسافت طی شده در x y (چرخه) = d.*sind (theta (چرخه)) ؛ ٪ کل مسافت طی شده در y else theta (چرخه) = theta (چرخه -1) + rob.getAngle؛ x (چرخه) = د.*cosd (تتا (چرخه)) + x (چرخه -1) ؛ ٪ کل مسافت طی شده در x y (چرخه) = d.*sind (theta (چرخه)).*d + y (چرخه -1) ؛ ٪ dist کل سفر در y پایان٪ break break if rob.getButtons.clean break end٪ افزایش چرخه = چرخه + 1؛ پایان rob.stop برای i = 1: چرخه اگر مانع (i) == 1٪ طرح دیوار (x (i) ، y (i) ، "نشانگر" ، "مربع" ، "MarkerEdgeColor" ، "r") elseif مانع (i) == 2٪ نمودار صخره ای (x (i) ، y (i) ، 'Marker' ، 'o' ، 'MarkerEdgeColor' ، 'k') متن انتهایی (.9 ، 0.9 ، sprintf ('Square = Wall / n دایره = صخره ') ،' واحد '،' عادی ') در پایان سیگنال پریشانی را در حالی که rob واقعی است نگه دارید. در صورتی که rob.getButtons.clean break break پایان٪ catch٪ rob.stop٪ پایان

توصیه شده: