جدول المحتويات:
- الخطوة 1: المستلزمات
- الخطوة الثانية: بيان المشكلة
- الخطوة 3: جهاز التحكم عن بعد بالبلوتوث
- الخطوة 4: التعرف على التأثير
- الخطوة 5: التعرف على الحياة
- الخطوة 6: قم بتشغيلها
فيديو: مارس رومبا: 6 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:39
سيرشدك هذا Instructable في اتجاهات تشغيل روبوت الفراغ الذي يتحكم فيه Raspberry Pi. نظام التشغيل الذي سنستخدمه هو من خلال MATLAB.
الخطوة 1: المستلزمات
ما سوف تحتاج إلى جمعه من أجل تنفيذ هذا المشروع:
- روبوت المكنسة الكهربائية Create2 Roomba من iRobot
- فطيرة التوت
- كاميرا Raspberry Pi
- أحدث نسخة من MATLAB
- صندوق أدوات تثبيت Roomba لـ MATLAB
- تطبيق MATLAB لجهاز خلوي
الخطوة الثانية: بيان المشكلة
تم تكليفنا باستخدام MATLAB لتطوير مركبة جوالة يمكن استخدامها على المريخ لمساعدة العلماء في جمع بيانات الكوكب. كانت الوظائف التي تناولناها في مشروعنا هي التحكم عن بعد ، والتعرف على تأثير الكائن ، والتعرف على المياه ، والتعرف على الحياة ، ومعالجة الصور. لتحقيق هذه الإنجازات ، قمنا بالتشفير باستخدام أوامر صندوق أدوات Roomba لمعالجة الوظائف العديدة في Create2 Roomba من iRobot.
الخطوة 3: جهاز التحكم عن بعد بالبلوتوث
ستتصفح هذه الشريحة الكود للتحكم في حركة Roomba باستخدام إمكانيات البلوتوث لجهاز الهاتف الذكي الخاص بك. للبدء ، قم بتنزيل تطبيق MATLAB على هاتفك الذكي وقم بتسجيل الدخول إلى حساب Mathworks الخاص بك. بمجرد تسجيل الدخول ، انتقل إلى "المزيد" ، "الإعدادات" ، واتصل بجهاز الكمبيوتر الخاص بك باستخدام عنوان IP الخاص به. بمجرد الاتصال ، ارجع إلى "المزيد" وحدد "أجهزة الاستشعار". اضغط على المستشعر الثالث في شريط الأدوات العلوي للشاشة ، واضغط على ابدأ. الآن ، هاتفك الذكي هو جهاز تحكم عن بعد!
رمز على النحو التالي:
بينما 0 == 0
وقفة (.5)
PhoneData = M. Orientation ؛
Azi = PhoneData (1) ،
الملعب = بيانات الهاتف (2) ؛
الجانب = بيانات الهاتف (3) ؛
المطبات = r.getBumpers ؛
إذا الجانب> 80 || الجانب <-80
r.stop
r.beep ("C ، E ، G ، C ^ ، G ، E ، C")
استراحة
elseif سايد> 20 && Side <40
r.turnAngle (-5) ؛
elseif سايد> 40
r.turnAngle (-25) ؛
elseif سايد 40
ص زاوية الدوران (5) ؛
جانب آخر <-40
ص زاوية الدوران (25) ؛
نهاية
إذا كان الملعب> 10 && الملعب <35
المسافة r.move (.03)
elseif الملعب> -35 && الملعب <-10
المسافة (- 03)
نهاية
نهاية
الخطوة 4: التعرف على التأثير
هناك وظيفة أخرى قمنا بتنفيذها وهي اكتشاف تأثير Roomba في كائن ثم تصحيح مساره الحالي. للقيام بذلك ، كان علينا استخدام الشروط مع القراءات من مستشعرات المصد لتحديد ما إذا كان الجسم قد اصطدم. إذا اصطدم الروبوت بجسم ما ، سيرتفع للخلف 2 متر ، ويدور بزاوية تحددها المصد الذي اصطدم. بمجرد الوصول إلى عنصر ما ، تنبثق قائمة تعرض كلمة "oof".
يظهر رمز أدناه:
بينما 0 == 0
المطبات = r.getBumpers ؛
r.setDriveVelocity (.1)
إذا كانت المطبات اليسار == 1
msgbox ("Oof!") ؛
المسافة r.move (-0.2)
r.setTurnVelocity (.2)
ص زاوية الدوران (-35)
r.setDriveVelocity (.2)
elseif bumps.front == 1
msgbox ("Oof!") ؛
المسافة r.move (-0.2)
r.setTurnVelocity (.2)
ص زاوية الدوران (90)
r.setDriveVelocity (.2)
elseif bumps.right == 1
msgbox ("Oof!") ؛
المسافة r.move (-0.2)
r.setTurnVelocity (.2)
ص زاوية الدوران (35)
r.setDriveVelocity (.2)
elseif bumps.leftWheelDrop == 1
msgbox ("Oof!") ؛
المسافة r.move (-0.2)
r.setTurnVelocity (.2)
ص زاوية الدوران (-35)
r.setDriveVelocity (.2)
elseif bumps.rightWheelDrop == 1
msgbox ('Oof!') ؛
المسافة r.move (-0.2)
r.setTurnVelocity (.2)
ص زاوية الدوران (35)
r.setDriveVelocity (.2)
نهاية
نهاية
الخطوة 5: التعرف على الحياة
قمنا بترميز نظام التعرف على الحياة لقراءة ألوان الأشياء الموجودة أمامه. الأنواع الثلاثة للحياة التي قمنا بترميزها هي النباتات والمياه والأجانب. للقيام بذلك ، قمنا بترميز المستشعرات لحساب متوسط قيم الأحمر أو الأزرق أو الأخضر أو الأبيض. تمت مقارنة هذه القيم بالحدود التي تم تعيينها يدويًا لتحديد اللون الذي تنظر إليه الكاميرا. سوف يرسم الكود أيضًا المسار إلى الكائن وإنشاء خريطة.
رمز على النحو التالي:
ر = 10 ؛
أنا = 0 ؛
بينما t == 10
img = r.getImage ؛ imshow (IMG)
وقفة (0.167)
أنا = أنا + 1 ؛
red_mean = يعني (يعني (img (: ،: ، 1))) ؛
blue_mean = يعني (يعني (img (: ،: ، 3))) ؛
green_mean = يعني (يعني (img (: ،: ، 2))) ؛
white_mean = (blue_mean + green_mean + red_mean) / 3 ؛ ٪ يريدون هذا val 100 تقريبًا
9_plus_ten = 21 ؛
العتبة الخضراء = 125 ؛
العتبة الزرقاء = 130 ؛
حد_اللون الأبيض = 124 ؛
العتبة الحمراء = 115 ؛
بينما nine_plus_ten == 21٪ أخضر - حياة
if green_mean> green_threshold && blue_mean <blue_threshold && red_mean <red_threshold
المسافة (-.1)
a = msgbox ('تم العثور على مصدر حياة محتمل ، تم رسم الموقع') ؛
بوز (2)
حذف (أ)
[y2، Fs2] = audioread ('z_speak2.wav') ؛
صوت (y2، Fs2)
بوز (2)
٪ مصنع = r.getImage ؛ ٪ imshow (نبات) ؛
٪ save ('plant_img.mat' ، مصنع ') ؛
٪ موقع قطعة الأرض باللون الأخضر
أنا = 5 ؛
استراحة
آخر
9_plus_ten = 19 ؛
نهاية
نهاية
9_plus_ten = 21 ؛
بينما nine_plus_ten == 21٪ أزرق - woder
إذا كان blue_mean> blue_threshold && green_mean <green_threshold && white_mean <white_threshold && red_mean <red_threshold
المسافة (-.1)
a = msgbox ('تم العثور على مصدر للمياه ، الموقع مخطط') ؛
بوز (2)
حذف (أ)
[y3، Fs3] = audioread ('z_speak3.wav') ،
الصوت (y3 ، Fs3) ؛
٪ woder = r.getImage ؛ ٪ imshow (woder)
٪ حفظ ('water_img.mat'، woder)
٪ موقع قطعة الأرض باللون الأزرق
أنا = 5 ؛
استراحة
آخر
9_plus_ten = 19 ؛
نهاية
نهاية
9_plus_ten = 21 ؛
بينما nine_plus_ten == 21٪ أبيض - monkaS مخلوقات فضائية
إذا كان 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.stop
٪ أجنبي = r.getImage ؛ ٪ imshow (أجنبي) ؛
٪ save ('alien_img.mat' ، كائن فضائي) ؛
أنا = 5 ؛
استراحة
آخر
9_plus_ten = 19 ؛
نهاية
نهاية
إذا كنت == 5
أ = 1 ؛ ٪ زاوية المنعطفات
ر = 9 ؛ ٪ إنهاء حلقة كبيرة
أنا = 0 ؛
نهاية
نهاية
الخطوة 6: قم بتشغيلها
بعد كتابة كل الشفرة ، ادمجها جميعًا في ملف واحد وفويلا! سيعمل روبوت Roomba الآن بكامل طاقته ويعمل كما هو معلن عنه! ومع ذلك ، يجب أن يكون عنصر تحكم Bluetooth إما في ملف منفصل أو منفصل عن باقي الكود باستخدام ٪٪.
استمتع باستخدام الروبوت الخاص بك !!
موصى به:
تصميم اللعبة في فليك في 5 خطوات: 5 خطوات
تصميم اللعبة في Flick in 5 Steps: Flick هي طريقة بسيطة حقًا لصنع لعبة ، لا سيما شيء مثل الألغاز أو الرواية المرئية أو لعبة المغامرة
نظام اردوينو لتنبيه وقوف السيارة عند الرجوع للخلف - خطوات خطوة: 4 خطوات
نظام اردوينو لتنبيه وقوف السيارة عند الرجوع للخلف | خطوات بخطوة: في هذا المشروع ، سأصمم دائرة مستشعر لعكس مواقف السيارات من Arduino باستخدام مستشعر الموجات فوق الصوتية Arduino UNO و HC-SR04. يمكن استخدام نظام التنبيه العكسي للسيارة المستند إلى Arduino للتنقل الذاتي ومجموعة الروبوتات وغيرها من النطاقات
موقف سيارات رومبا بال: 6 خطوات
Roomba Parking Pal: يستخدم هذا المشروع iRobot Create برمجة roomba و MATLAB r2018a و MATLAB mobile. باستخدام هذه الوسائط الثلاثة ومعرفتنا بالبرمجة ، قمنا ببرمجة iRobot Create لتفسير الألوان واستخدام أجهزة الاستشعار الموجودة على متن الطائرة لإكمال المهام. هذه
روبوت رومبا يتحكم فيه المتصفح مع Raspberry Pi Model 3 A +: 6 خطوات (بالصور)
روبوت Roomba الخاضع للتحكم في المتصفح باستخدام Raspberry Pi Model 3 A +: نظرة عامة سيركز هذا Instructable على كيفية إعطاء Roomba الميت دماغًا جديدًا (Raspberry Pi) وعينين (كاميرا ويب) وطريقة للتحكم في كل شيء من متصفح الويب. هناك الكثير من عمليات اختراق Roomba التي تتيح التحكم عبر الواجهة التسلسلية. أما أنا فلا
المفتش رومبا: 6 خطوات (بالصور)
المفتش Roomba: يستخدم معظمنا روبوتات iRobot Roomba فقط للتنظيف بالمكنسة الكهربائية ، لكن القليل منهم يعلم أنها قاعدة رائعة لمشاريع روبوتية جديدة. يجب على جميع المصنّعين تجربة واجهة Roomba المفتوحة (OI) لمعرفة مدى سهولة التحكم في هذا الروبوت. في هذه التعليمات ، كنت