فهرست مطالب:
- مرحله 1: مواد
- مرحله 2: اتصال
- مرحله 3: ایجاد منطقی کد متلب برای استفاده از حسگرها
- مرحله 4: تست کد و روبات
- مرحله 5: تشخیص خطا
- مرحله 6: نتیجه گیری
تصویری: Roomba Parking Pal: 6 قدم
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:55
این پروژه از iRobot Create roomba قابل برنامه ریزی ، MATLAB r2018a و تلفن همراه MATLAB استفاده می کند. با استفاده از این سه رسانه و دانش ما در زمینه کد نویسی ، iRobot Create را برای تفسیر رنگها و استفاده از حسگرهای داخلی برای تکمیل وظایف برنامه ریزی کردیم. این پروژه به ارتباط Raspberry Pi و MATLAB بستگی دارد تا این وظایف را انجام دهد.
مرحله 1: مواد
1. iRobot Create Robot
2. MATLAB r2018a
3. تمشک پای
4. ماژول دوربین
5. پایه چاپ کننده سه بعدی دوربین تثبیت کننده
6. تلفن هوشمند با تلفن همراه متلب نصب شده است
7. لپ تاپ/کامپیوتر با متلب نصب شده
مرحله 2: اتصال
این مرحله مربوط به اتصال رزبری پای به ربات ، دوم اتصال ربات به رایانه شما و اتصال تلفن هوشمند به کامپیوتر است.
ساده ترین قسمت این فرایند اتصال Raspberry Pi به ربات شما است ، زیرا Raspberry Pi در بالای ربات نصب شده است. یک سیم از روبات وجود دارد که تنها کاری که باید انجام دهید این است که به کنار رزبری پای وصل شوید.
مرحله بعدی اتصال ربات به رایانه شما است تا بتوانید دستوراتی را برای عملکرد ربات اجرا کنید. اولین کاری که باید انجام دهید این است که رایانه خود را به شبکه بی سیم متصل کنید که roomba شما ایجاد می کند. در حال حاضر ، توصیه می شود از نماد Set Path در MATLAB برای تنظیم مسیر استفاده کنید تا بتوانید از توابع موجود در جعبه ابزار Roomba از MATLAB استفاده کنید. هر بار که در حال استفاده و پایان کار با ربات هستید ، باید یک "دو انگشت سلام" را به سختی تنظیم مجدد ربات انجام دهید ، به این معنی که دکمه های داک و نقطه را به مدت ده ثانیه نگه دارید تا چراغ کمرنگ نشان دهد که رها می شود. اگر شنیدید که ربات در مقیاس کوتاه بازی می کند ، با این تنظیم مجدد سخت موفق شدید. در مرحله بعد باید با استفاده از یک خط کد مانند "r = roomba (x)" به roomba متصل شوید که در آن 'x' شماره تعیین شده برای ربات شما است.
در نهایت ، شما باید تلفن همراه MATLAB را در هر دستگاه موبایلی که برای این پروژه استفاده می کنید بارگیری کنید ، و این برنامه در هر دو دستگاه Android و Apple موجود است. پس از نصب برنامه ، باید با استفاده از اطلاعات کاربری خود وارد شوید. سپس باید این دستگاه را به رایانه خود متصل کنید ، با استفاده از برگه با برچسب "بیشتر" -> سپس روی "تنظیمات" -> سپس روی "افزودن رایانه" کلیک کنید ، این باید صفحه نمایش داده شده در تصاویر بالا را نشان دهد. پس از مشاهده این ، گام بعدی که باید طی کنید فقط اتصال و ذخیره اطلاعاتی است که درخواست می کند. هنگامی که با موفقیت متصل شدید ، می توانید عملکردهایی را که در رایانه خود تعریف کرده اید در تلفن خود برای کنترل ربات خود فراخوانی کنید.
مرحله 3: ایجاد منطقی کد متلب برای استفاده از حسگرها
ایجاد کد به سادگی زمانی امکان پذیر است که اکثریت آن در حلقه while روشن باشد ، به طوری که roomba بتواند به طور مداوم مقادیر معتبر مورد نظر خود را به روز کند. در صورت وجود خطا ، MATLAB خطایی را نشان می دهد و در جایی که در کد ظاهر می شود ، عیب یابی را نسبتاً ساده می کند.
این کد که در r2018a MATLAB طراحی شده است ، از جعبه ابزارهای استاندارد ، جعبه ابزار iRobot Create و همچنین جعبه ابزار تلفن همراه MATLAB استفاده می کند. رومبا که در این مثال استفاده می شود 26 تعیین شده است و r = roomba (26) برای برقراری ارتباط کامل با اتاق بایستی فقط یکبار اجرا شود.
کد:
تابع parkassist (x) اگر x == 1
r = roomba (26)٪ به roomba متصل می شود
در حالی که حقیقت دارد
r.setDriveVelocity (.05 ،.05)٪ roomba را بر سرعت رانندگی کندتر تنظیم می کند
bump = r.getBumpers٪ داده ها را از حسگرهای bump دریافت می کند
cliff = r.getCliffSensors داده ها را از سنسورهای صخره دریافت می کند
light = r.getLightBumpers٪ داده ها را از سنسورهای برخورد نور دریافت می کند
img = r.getImage ؛٪ دوربین روبات را خاموش می خواند
red_mean = میانگین (میانگین (img (:،: 1)))٪ مقدار متوسط پیکسل های قرمز را می خواند
green_mean = میانگین (میانگین (img (:،: ، 2)))٪ میانگین مقدار پیکسل سبز را می خواند
blue_mean = میانگین (میانگین (img (:،: 3)))٪ مقدار متوسط پیکسل های آبی را می خواند
اگر bump.front == 1٪ سنسورهای ضربه جلو را می خواند
r.stop٪ roomba را متوقف می کند
msgbox ('Path Obscured!'، 'Parking Assistant Message')٪ پیام را نمایش می دهد که می گوید مسیر مبهم است شکستن٪ حلقه را تمام می کند
elseif green_mean> 150
r.stop٪ roomba را متوقف می کند
cont = questdlg ("ادامه دهی؟" ، "مسیر تکمیل شده است") کادر س questionال را برای ادامه درخواست می کند
if cont == 'بله'
parkassist (1)٪ کد را دوباره راه اندازی می کند
دیگری
پایان
شکست٪ حلقه را به پایان می رساند
elseif red_mean> 140
r.turnAngle (45)٪ اتاق را 45 درجه می چرخاند
r.timeStart٪ شمارنده زمان را شروع می کند
در حالی که حقیقت دارد
r.setDriveVelocity (.05 ،.05)٪ سرعت اتاق را تنظیم می کند
time = r.timeGet٪ زمان را به یک متغیر اختصاص می دهد
bump = r.getBumpers٪ داده ها را از حسگرهای bump دریافت می کند
cliff = r.getCliffSensors داده ها را از سنسورهای صخره دریافت می کند
light = r.getLightBumpers٪ داده ها را از سنسورهای برخورد نور دریافت می کند
img = r.getImage ؛٪ دوربین روبات را خاموش می خواند
red_mean = میانگین (میانگین (img (:،: 1)))٪ مقدار متوسط پیکسل های قرمز را می خواند
green_mean = میانگین (میانگین (img (:،: ، 2)))٪ میانگین مقدار پیکسل سبز را می خواند
blue_mean = میانگین (میانگین (img (:،: 3)))٪ مقدار متوسط پیکسل های آبی را می خواند
اگر blue_mean> 120 باشد
r.moveDistance (-0.01) the roomba را به عقب حرکت می دهد و یک آهنگ فاصله را پخش می کند پخش (r، 'T400، C، D، E، F، G، A، B، C^'، 'true')٪ مقیاس موسیقی رو به افزایش را پخش می کند
msgbox ('Water Found!'، 'Parking Assistant Message')٪ پیامی را نمایش می دهد که می گوید آب پیدا شده است r.turnAngle (-80)٪ roomba را 80 درجه می چرخاند
شکستن٪ حلقه جاری را به پایان می رساند
elseif light.rightFront> 25 || light.leftFront> 25٪ سنسورهای ضربه گیر نور را می خواند
r.moveDistance (-0.01)٪ roomba را به فاصله معینی به عقب حرکت می دهد
r.turnAngle (-35)٪ اتاق را 35 درجه می چرخاند
شکستن٪ حلقه جاری را به پایان می رساند
elseif cliff.rightFront <2500 && cliff.left جلو <2500٪ هر دو سنسور صخره را می خواند
r.moveDistance (-0.1)٪ roomba را در یک فاصله مشخص به عقب حرکت می دهد
r.turnAngle (-80)٪ roomba را 80 درجه می چرخاند
شکستن٪ حلقه جاری را به پایان می رساند
elseif time> = 3
r.stop٪ roomba را متوقف می کند
Contin = questdlg ("ایستگاه رایگان است ، ادامه می دهید؟" ، "پیام دستیار پارکینگ")٪ می پرسد که درصورت ادامه = "'بله" اتاق باید ادامه یابد؟
r.turnAngle (-90)٪ اتاق را 90 درجه می چرخاند
parkassist (1)٪ عملکرد را مجدداً راه اندازی می کند
دیگری
r.stop٪ roomba را متوقف می کند
پایان
دیگری
پایان
پایان
elseif cliff.rightF Front <2500 && cliff.left جلو <2500٪ هر دو سنسور صخره را می خواند
r.moveDistance (-0.1)٪ roomba را در یک فاصله مشخص به عقب حرکت می دهد
r.turnAngle (-90)٪ roomba را 90 درجه می چرخاند
elseif cliff.rightFront <2500٪ سنسور صخره سمت راست را می خواند
r.turnAngle (-5)٪ اتاق را کمی در جهت مخالف سنسور صخره می چرخاند
elseif cliff.leftFront <2500٪ سنسور صخره سمت چپ را می خواند
r.turnAngle (5)٪ کمی roomba را در جهت مخالف سنسور صخره می چرخاند
دیگری
پایان
پایان
پایان
مرحله 4: تست کد و روبات
پس از توسعه کد ، مرحله بعدی آزمایش کد و روبات بود. از آنجا که بسیاری از تنظیمات مختلف را می توان در کد ایجاد کرد ، مانند زاویه ای که ربات می چرخاند ، سرعت حرکت و آستانه های هر رنگ ، بهترین راه برای تعیین این مقادیر برای ربات شما آزمایش است. آنها را تغییر دهید و هر چه می خواهید تغییر دهید. برای هر روز کاری که داشتیم ، ما این ارزشها را دائماً تغییر می دادیم ، زیرا برخی از آنها به محیطی که ربات شما در آن کار می کند متکی هستند. بهترین راهی که ما پیدا کردیم این بود که roomba را در مسیری قرار دهیم که می خواهید آن را دنبال کند و داشته باشید یک مانع به اندازه کافی بالا به طوری که دوربین نمی تواند رنگهایی را که شما نمی خواهید تشخیص دهد. گام بعدی این است که اجازه دهید اجرا شود و وقتی می خواهید این کار را انجام دهد ، رنگ های مورد نظر خود را به آن نشان دهید. همانطور که پیش می روید ، اگر مشکلی را مشاهده کردید بهترین کار این است که سپر جلو را به داخل فشار داده و آن را متوقف کنید ، سپس پارامتری را که با آن مشکل داشتید تغییر دهید.
مرحله 5: تشخیص خطا
با تکمیل هر پروژه ، همیشه منابع خطا وجود دارد. برای ما ، ما با این واقعیت ساده روبرو شدیم که ربات با زاویه ای که می چرخد دقیق نیست ، بنابراین اگر به آن بگویید 45 درجه بچرخد ، دقیق نخواهد بود. منبع دیگر خطا برای ما این بود که گاهی اوقات ربات خراب می شود و شما قبل از دوباره کارکردن آن را سخت تنظیم کرده اید. آخرین منبع اصلی خطا برای ما این بود که یک کد یکسان روی روبات های مختلف تأثیر مشابهی نخواهد داشت ، بنابراین ممکن است مجبور باشید در مورد آن صبور باشید و بر این اساس تنظیم کنید.
مرحله 6: نتیجه گیری
در حال حاضر شما همه ابزارها را برای بازی با roomba خود در اختیار دارید ، به این معنی که می توانید در هر صورت که می خواهید کد را برای دستیابی به اهداف مورد نظر خود دستکاری کنید. این باید بهترین قسمت از روز شما باشد ، بنابراین لذت ببرید و با خیال راحت رانندگی کنید!
توصیه شده:
ایستگاه هواشناسی ماهواره ای: 5 قدم
ایستگاه هواشناسی ماهواره ای: این پروژه برای افرادی طراحی شده است که می خواهند داده های آب و هوایی خود را جمع آوری کنند. این می تواند سرعت و جهت باد ، دما و رطوبت هوا را اندازه گیری کند. این دستگاه همچنین قادر است هر 100 دقیقه یکبار به ماهواره های آب و هوایی که به دور زمین می چرخند ، گوش دهد. من می خواهم
SPUDZILLA!: 6 قدم
SPUDZILLA!: خوب ، واقعیت امر این است که منجر به کثافت شد! یک دلیل بزرگ این است که شما محدود به این واقعیت هستید که فقط می توانید تعداد زیادی از آنها را تا اینجا پرتاب کنید! بنابراین من یک شخص منطقی و منطقی هستم که فکر می کردم & quot؛ سلام & nbsp؛ باید از توپ استفاده کنم !! & quot؛ بنابراین من سر انجام
وورت-اور: 5 قدم
Wort-Uhr: سلام با هم! این اولین دستورالعمل آموزشی من خواهد بود و اگر ایده ای دارید که چگونه می توان آن را بهبود بخشید یا درک آن را آسان تر کرد ، لطفاً با من درنگ نکنید! خوب ، در ابتدا ، این نوع & quot؛ ساعت & quot؛ ایده من نیست! من چیزهای زیادی را دیده ام
قدم زدن: قایق تنها: 11 قدم
Makecourse: The Lonely Boat: این دستورالعمل برای برآوردن الزامات پروژه Makecourse در دانشگاه فلوریدا جنوبی (www.makecourse.com) ایجاد شده است. در زمینه طراحی آردوینو ، چاپ سه بعدی و طراحی به کمک کامپیوتر (CAD) جدید؟ این پروژه راهی عالی برای یادگیری
MIDI Pod-Pal: 4 مرحله
MIDI Pod-Pal: *** UPDATE 4/22/'21 ****** من یک طرح کلی را نشان داده ام که تمام سیم کشی را برای کمک به ساخت و ساز نشان می دهد. *** من به مقدار مضحکی وارد نمی شوم در اینجا در قسمت ساخت ، قصد من نشان دادن نمونه دیگری از ساخت MI مبتنی بر آردوینو بود