فهرست مطالب:
- مرحله 1: لوازم
- مرحله 2: بیان مشکل
- مرحله 3: کنترل از راه دور بلوتوث
- مرحله 4: تشخیص تاثیر
- مرحله 5: شناخت زندگی
- مرحله 6: اجرا کنید
تصویری: مریخ رومبا: 6 قدم
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
این دستورالعمل شما را در جهت استفاده از ربات خلاء Roomba تحت کنترل Raspberry Pi راهنمایی می کند. سیستم عامل مورد استفاده ما از طریق MATLAB است.
مرحله 1: لوازم
آنچه برای انجام این پروژه باید جمع آوری کنید:
- ربات جاروبرقی Create2 Roomba iRobot
- تمشک پای
- دوربین رزبری پای
- آخرین نسخه MATLAB
- جعبه ابزار Roomba را برای MATLAB نصب کنید
- برنامه MATLAB برای دستگاه تلفن همراه
مرحله 2: بیان مشکل
ما موظف شدیم از MATLAB برای ساخت یک مریخ نورد استفاده کنیم که بتواند در مریخ مورد استفاده قرار گیرد تا به دانشمندان در جمع آوری داده های سیاره کمک کند. عملکردهایی که ما در پروژه خود به آنها اشاره کردیم عبارت بودند از کنترل از راه دور ، تشخیص ضربه روی اجسام ، تشخیص آب ، تشخیص زندگی و پردازش تصویر. برای دستیابی به این موفقیت ها ، ما با استفاده از دستورات جعبه ابزار Roomba دستکاری بسیاری از عملکردهای iRobot's Create2 Roomba را انجام دادیم.
مرحله 3: کنترل از راه دور بلوتوث
این اسلاید کد را کنترل می کند تا حرکت Roomba را با استفاده از قابلیت های بلوتوث دستگاه تلفن هوشمند شما کنترل کند. برای شروع ، برنامه MATLAB را در تلفن هوشمند خود بارگیری کرده و وارد حساب Mathworks خود شوید. پس از ورود به سیستم ، به "بیشتر" ، "تنظیمات" بروید و با استفاده از آدرس IP آن به رایانه خود متصل شوید. پس از اتصال ، به "بیشتر" برگردید و "سنسورها" را انتخاب کنید. روی سنسور سوم در نوار ابزار بالای صفحه ضربه بزنید و روی شروع ضربه بزنید. اکنون ، تلفن هوشمند شما یک کنترل از راه دور است!
کد به شرح زیر است:
در حالی که 0 == 0
مکث (.5)
PhoneData = M. Orientation؛
Azi = PhoneData (1) ؛
پیچ = PhoneData (2) ؛
سمت = PhoneData (3) ؛
bumps = r.getBumpers؛
اگر طرف> 80 || طرف <-80
r. توقف
r.epep ('C، E، G، C^، G، E، C')
زنگ تفريح
elseif Side> 20 && Side <40
r.turnAngle (-5) ؛
elseif طرف> 40
r.turnAngle (-25) ؛
elseif Side-40
r.turnAngle (5) ؛
elseif طرف <-40
r.turnAngle (25) ؛
پایان
اگر Pitch> 10 && Pitch <35
r.moveDistance (.03)
elseif Pitch> -35 && Pitch <-10
r.moveDistance (-. 03)
پایان
پایان
مرحله 4: تشخیص تاثیر
یکی دیگر از عملکردهای ما این بود که تاثیر Roomba را روی یک شی تشخیص دهیم و سپس مسیر فعلی آن را اصلاح کنیم. برای انجام این کار ، ما باید از شرطی ها با قرائت سنسورهای سپر برای تعیین اینکه آیا جسمی ضربه خورده است یا خیر استفاده کنیم. اگر ربات به جسمی برخورد کند ، 2 متر عقب می رود و با زاویه ای تعیین می شود که توسط ضربه گیر ضربه گیر مشخص شده است. پس از ضربه زدن به یک مورد ، منویی ظاهر می شود که کلمه "oof" را نشان می دهد.
کد زیر نشان داده شده است:
در حالی که 0 == 0
bumps = r.getBumpers؛
r.setDriveVelocity (.1)
if bumps.left == 1
msgbox ('اوف!')؛
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif bumps.front == 1
msgbox ('اوف!')؛
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (90)
r.setDriveVelocity (.2)
elseif bumps.right == 1
msgbox ('اوف!')؛
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
elseif bumps.leftWheelDrop == 1
msgbox ('اوف!')؛
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (-35)
r.setDriveVelocity (.2)
elseif bumps.rightWheelDrop == 1
msgbox ('اوف!')؛
r.moveDistance (-0.2)
r.setTurnVelocity (.2)
r.turnAngle (35)
r.setDriveVelocity (.2)
پایان
پایان
مرحله 5: شناخت زندگی
ما یک سیستم تشخیص زندگی را برای خواندن رنگ اشیاء روبرو کدگذاری کردیم. سه نوع زندگی که ما برای آن کد گذاری کردیم گیاهان ، آب و بیگانگان است. برای انجام این کار ، سنسورها را برای محاسبه مقادیر متوسط قرمز ، آبی ، سبز یا سفید کدگذاری کردیم. این مقادیر با آستانه هایی که به صورت دستی برای تعیین رنگی که دوربین به آن نگاه می کند تعیین شده است ، مقایسه شد. کد همچنین مسیر مورد نظر و ایجاد نقشه را ترسیم می کند.
کد به شرح زیر است:
t = 10 ؛
i = 0 ؛
در حالی که t == 10
img = r.getImage؛ نمایش (img)
مکث (0.167)
i = i + 1 ؛
red_mean = میانگین (میانگین (img (:،: ، 1))) ؛
blue_mean = میانگین (میانگین (img (:،: ، 3))) ؛
green_mean = میانگین (میانگین (img (:،: ، 2))) ؛
سفید_معنا = (معنی_آبی + معنی_سبز + معنای_قرمز) / 3 ؛ ٪ این مقدار را تقریبا 100 می خواهند
nine_plus_ten = 21؛
سبز_آستانه = 125؛
آبی_آستانه = 130؛
آستانه_ سفید = 124 ؛
red_threshold = 115؛
در حالی که nine_plus_ten == 21٪ سبز - عمر
if green_mean> green_threshold && blue_mean <blue_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('منبع حیات ممکن یافت شد ، محل ترسیم شده است')؛
مکث (2)
حذف (الف)
[y2 ، Fs2] = audioread ('z_speak2.wav') ؛
صدا (y2 ، Fs2)
مکث (2)
٪ گیاه = r.getImage؛ ٪ imshow (گیاه) ؛
٪ save ('plant_img.mat'، plant ')؛
٪ محل طرح با رنگ سبز
i = 5 ؛
زنگ تفريح
دیگری
nine_plus_ten = 19؛
پایان
پایان
nine_plus_ten = 21؛
در حالی که nine_plus_ten == 21٪ آبی - woder
if blue_mean> blue_threshold && green_mean <green_threshold && white_mean <white_threshold && red_mean <red_threshold
r.moveDistance (-. 1)
a = msgbox ('منبع آب پیدا شده است ، نقشه ترسیم شده است')؛
مکث (2)
حذف (الف)
[y3 ، Fs3] = صوتی ('z_speak3.wav') ؛
صدا (y3 ، Fs3) ؛
٪ woder = r.getImage؛ ٪ imshow (woder)
٪ صرفه جویی ('water_img.mat' ، woder)
٪ محل طرح به رنگ آبی
i = 5 ؛
زنگ تفريح
دیگری
nine_plus_ten = 19؛
پایان
پایان
nine_plus_ten = 21؛
در حالی که nine_plus_ten == 21٪ سفید - بیگانگان monkaS
if white_mean> white_threshold && blue_mean <blue_threshold && green_mean <green_threshold
[y5 ، Fs5] = صوتی ('z_speak5.wav') ؛
صدا (y5 ، Fs5) ؛
مکث (3)
r.setDriveVelocity (0 ،.5)
[ys، Fss] = audioread ('z_scream.mp3')؛
صدا (ys ، Fss) ؛
مکث (3)
r. توقف
٪ alien = r.getImage؛ ٪ imshow (بیگانه) ؛
٪ save ('alien_img.mat'، alien)؛
i = 5 ؛
زنگ تفريح
دیگری
nine_plus_ten = 19؛
پایان
پایان
اگر من == 5
a = 1 ؛ ٪ زاویه چرخش
t = 9 ؛ ٪ خاتمه حلقه بزرگ
i = 0 ؛
پایان
پایان
مرحله 6: اجرا کنید
پس از نوشتن تمام کد ، همه را در یک فایل و voila ترکیب کنید! ربات Roomba شما اکنون کاملاً کاربردی خواهد بود و طبق تبلیغات عمل می کند! با این حال ، کنترل بلوتوث یا باید در یک فایل جداگانه باشد یا با ٪٪ از بقیه کد جدا شود.
از استفاده از ربات خود لذت ببرید !!
توصیه شده:
روباتیک مریخ نورد: 10 قدم
Robotic Rover: سلام ، من Proxy303 هستم ، متخصص رباتیک. در این آموزش ، من به شما آموزش می دهم که چگونه یک ربات خود را مانند یک ربات خود بسازید. من در مورد یکی از آن اتومبیل های کنترل از راه دور که مردم آن را روبات می نامند صحبت نمی کنم. یکی از تعاریف بسیار
تبدیل اتاق خود به یک مریخ نورد: 5 قدم
تبدیل Roomba خود به مریخ نورد:
مریخ نورد زیر آب: 3 قدم
زیر آب مریخ نورد: در این پروژه ، ما مشکل اقیانوس های کشف نشده خود را با ایجاد یک مریخ نورد زیر آب حل می کنیم. این مریخ نورد می تواند اعماق زیاد اقیانوس را جمع آوری کرده و داده ها را در محیط اطراف خود جمع آوری کند. بسیاری از شرکت هایی که در
مینی کنجکاوی مریخ نورد: 6 قدم
مینی کنجکاوی مریخ نورد: کنجکاوی چیست؟ کنجکاوی یک مریخ نورد به اندازه خودرو است که برای کشف دهانه گیل در مریخ به عنوان بخشی از ماموریت آزمایشگاه علوم مریخ ناسا (MSL) طراحی شده است. کنجکاوی در کیپ کاناورال در 26 نوامبر 2011 ، ساعت 15:02 راه اندازی شد. UTC. چگونه کار می کند؟ کنجکاوی دارای
بازرس رومبا: 6 مرحله (همراه با تصاویر)
بازرس رومبا: اکثر ما از روبات های iRobot Roomba فقط برای جاروبرقی استفاده می کنیم ، اما تعداد کمی می دانند که این پایگاه عالی برای پروژه های جدید رباتیک است. همه سازندگان باید رابط Roomba Open (OI) را امتحان کنند تا دریابند که کنترل این ربات چقدر آسان است. در این دستورالعمل شما می توانید