جدول المحتويات:
- الخطوة 1: المواد
- الخطوة 2: الاتصال
- الخطوة 3: إنشاء رمز MATLAB منطقيًا لاستخدام المستشعرات
- الخطوة 4: اختبار الكود والروبوت
- الخطوة 5: التعرف على الخطأ
- الخطوة السادسة: الخاتمة
فيديو: موقف سيارات رومبا بال: 6 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:39
يستخدم هذا المشروع iRobot Create برمجة roomba و MATLAB r2018a و MATLAB mobile. باستخدام هذه الوسائط الثلاثة ومعرفتنا بالبرمجة ، قمنا ببرمجة iRobot Create لتفسير الألوان واستخدام المستشعرات الموجودة على متن الطائرة لإكمال المهام. تعتمد هذه المشاريع على اتصالات Raspberry Pi و MATLAB لأداء هذه المهام.
الخطوة 1: المواد
1. iRobot إنشاء روبوت
2. MATLAB r2018a
3. Raspberry Pi
4. وحدة الكاميرا
5. حامل مثبت الكاميرا المطبوع ثلاثي الأبعاد
6. هاتف ذكي مثبت عليه MATLAB mobile
7. كمبيوتر محمول / كمبيوتر مثبت عليه MATLAB
الخطوة 2: الاتصال
تتعلق هذه الخطوة بتوصيل Raspberry Pi بالروبوت ، وثانيًا توصيل الروبوت بجهاز الكمبيوتر الخاص بك ، وتوصيل الهاتف الذكي بالكمبيوتر.
أسهل جزء من هذه العملية هو توصيل Raspberry Pi بالروبوت الخاص بك ، نظرًا لأن Raspberry Pi مثبت في الجزء العلوي من الروبوت. يوجد سلك من الروبوت كل ما عليك فعله هو توصيله بجانب Raspberry Pi.
الخطوة التالية هي توصيل الروبوت بجهاز الكمبيوتر الخاص بك حتى تتمكن من تشغيل الأوامر ليقوم الروبوت بتنفيذها. أول شيء يجب عليك فعله هو توصيل جهاز الكمبيوتر الخاص بك بالشبكة اللاسلكية التي يقوم جهاز Roomba الخاص بك بإنشائها. الآن ، يوصى باستخدام رمز Set Path في MATLAB لتعيين المسار بحيث يمكنك استخدام الوظائف الموجودة في صندوق أدوات Roomba من MATLAB. في كل مرة تبدأ فيها وتنتهي من استخدام الروبوت ، يجب أن تقوم بـ "Two-Finger Salute" إعادة ضبط الروبوت بقوة ، مما يعني أنك تضغط باستمرار على زر Dock and Spot لمدة عشر ثوان حتى يخفت الضوء مشيرًا إلى التحرير. لقد نجحت في إعادة الضبط الثابت هذه إذا سمعت أن الروبوت يعزف على نطاق قصير. بعد ذلك ، يجب عليك الاتصال بـ roomba باستخدام سطر من الكود مثل "r = roomba (x)" حيث "x" هو الرقم المخصص للروبوت الذي لديك.
أخيرًا ، تحتاج إلى تنزيل MATLAB mobile على أي جهاز محمول ستستخدمه لهذا المشروع ، وهذا التطبيق متاح على كل من أجهزة Android و Apple. بمجرد تثبيت التطبيق ، سيتعين عليك تسجيل الدخول باستخدام بيانات الاعتماد الخاصة بك. بعد ذلك ، يجب توصيل هذا الجهاز بجهاز الكمبيوتر الخاص بك ، باستخدام علامة التبويب المسماة "المزيد" -> ثم انقر فوق "الإعدادات" -> ثم انقر فوق "إضافة جهاز كمبيوتر" وهذا يجب أن يظهر الشاشة الموضحة في الصور أعلاه. بعد أن ترى هذا ، الخطوة التالية التي يجب أن تمر بها هي فقط توصيل المعلومات التي تطلبها وتغييرها. بمجرد اتصالك بنجاح ، ستتمكن من استدعاء الوظائف التي تحددها على جهاز الكمبيوتر الخاص بك على هاتفك للتحكم في الروبوت الخاص بك.
الخطوة 3: إنشاء رمز MATLAB منطقيًا لاستخدام المستشعرات
سيكون إنشاء الكود أسهل عندما يكون معظمه داخل حلقة أثناء حلقة ، بحيث يمكن لـ roomba تحديث القيم الصالحة التي يبحث عنها باستمرار. إذا كان هناك خطأ ، فسيعرض MATLAB خطأ ومكان ظهوره في الكود ، مما يجعل استكشاف الأخطاء وإصلاحها أمرًا بسيطًا نسبيًا.
تم تصميم هذا الرمز في r2018a MATLAB ، ويستخدم صناديق الأدوات القياسية ، وصندوق أدوات iRobot Create ، بالإضافة إلى صندوق أدوات MATLAB المحمول. تم تعيين roomba المستخدمة في هذا المثال على أنها 26 ، ويجب تشغيل r = roomba (26) مرة واحدة فقط للتواصل الكامل مع roomba.
الشفرة:
وظيفة parkassist (x) إذا كانت x == 1
r = roomba (26)٪ يتصل بـ roomba
احيانا صحيح
r.setDriveVelocity (.05،.05)٪ يعين roomba على سرعة قيادة أبطأ
bump = r.getBumpers٪ يحصل على البيانات من مجسات الارتطام
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 ('المسار محجوب!' ، 'Parking Assistant Message')٪ يعرض رسالة تفيد بأن المسار محجوب فاصل٪ ينهي الحلقة
elseif green_mean> 150
r.stop٪ توقف غرفة Roomba
يعرض cont =
إذا تابع == "نعم"
باركاسيست (1)٪ يعيد تشغيل الكود
آخر
نهاية
كسر٪ ينهي الحلقة
elseif red_mean> 140
r. TurnAngle (45)٪ يدير roomba 45 درجة
r.timeStart٪ يبدأ عداد الوقت
احيانا صحيح
يحدد r.setDriveVelocity (.05،.05)٪ سرعة roomba
time = r.timeGet٪ يخصص الوقت لمتغير
bump = r.getBumpers٪ يحصل على البيانات من مجسات الارتطام
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)٪ يحرك roomba للخلف لمسافة محددة.
msgbox ('Water Found!'، 'Parking Assistant Message')٪ يعرض رسالة تفيد بأنه تم العثور على الماء r. TurnAngle (-80)٪ يدور roomba 80 درجة
كسر٪ ينهي الحلقة الحالية
elseif light.right> 25 || light.leftFront> 25٪ يقرأ مستشعرات الصدمات الخفيفة
r.moveDistance (-0.01)٪ تحرك Roomba للخلف مسافة محددة
r. TurnAngle (-35)٪ يدير الحجرة 35 درجة
كسر٪ ينهي الحلقة الحالية
elseif cliff. rightFront <2500 && cliff.leftFront <2500٪ يقرأ كلا مستشعرات الجرف
r.moveDistance (-0.1)٪ يحرك roomba للخلف مسافة محددة
r.turnAngle (-80)٪ يدور roomba 80 درجة
كسر٪ ينهي الحلقة الحالية
الوقت elseif> = 3
r.stop٪ توقف غرفة Roomba
CONTEN =
r.turnAngle (-90)٪ يدير الحجرة 90 درجة
باركاسيست (1)٪ يعيد تشغيل الوظيفة
آخر
r.stop٪ يوقف غرفة Roomba
نهاية
آخر
نهاية
نهاية
elseif cliff. rightFront <2500 && cliff.leftFront <2500٪ يقرأ كلا مستشعرات الجرف
r.moveDistance (-0.1)٪ يحرك roomba للخلف مسافة محددة
r. TurnAngle (-90)٪ يدور roomba 90 درجة
elseif cliff. rightFront <2500٪ يقرأ مستشعر الجرف الأيمن
r. TurnAngle (-5)٪ يحول Roomba قليلاً في الاتجاه المعاكس لمستشعر الجرف
elseif cliff.leftFront <2500٪ يقرأ مستشعر الجرف الأيسر
r. TurnAngle (5)٪ يحول Roomba قليلاً في الاتجاه المعاكس لمستشعر الجرف
آخر
نهاية
نهاية
نهاية
الخطوة 4: اختبار الكود والروبوت
بعد تطوير الكود ، كانت الخطوة التالية هي اختبار الكود والروبوت. نظرًا لوجود الكثير من التعديلات المختلفة التي يمكن إجراؤها في الكود ، مثل الزاوية التي يدور بها الروبوت ، والسرعة التي يتحرك بها ، وحدود كل لون ، فإن أفضل طريقة لمعرفة هذه القيم لروبوتك هي الاختبار منهم وتغييرها كما تذهب. في كل يوم عمل مررنا به ، كنا نغير هذه القيم باستمرار نظرًا لأن بعضها يعتمد على البيئة التي يعمل فيها الروبوت الخاص بك. كانت أفضل طريقة وجدناها هي وضع جهاز Roomba على المسار الذي تريده أن يتبعه ، وأن يكون حاجز مرتفع بدرجة كافية بحيث لا تتمكن الكاميرا من اكتشاف الألوان التي لا تريدها. الخطوة التالية هي السماح بتشغيلها وإظهار الألوان التي تريدها ، عندما تريدها لإكمال هذه المهمة. أثناء تقدمك ، إذا رأيت مشكلة ، فإن أفضل ما يمكنك فعله هو دفع المصد الأمامي للداخل ، وإيقافه ، ثم تغيير المعلمة التي واجهتك مشكلة فيها.
الخطوة 5: التعرف على الخطأ
مع اكتمال كل مشروع ، هناك دائمًا مصادر للخطأ. بالنسبة لنا ، واجهنا خطأ في الحقيقة البسيطة المتمثلة في أن الروبوت ليس دقيقًا بالزاوية التي يدور بها ، لذلك إذا أخبرته بالدوران 45 درجة فلن يكون ذلك دقيقًا. مصدر آخر للخطأ بالنسبة لنا هو أنه في بعض الأحيان يحدث خلل في الروبوت ، وقمت بإعادة ضبطه قبل أن يعمل مرة أخرى. كان المصدر الرئيسي الأخير للخطأ بالنسبة لنا هو أن نفس الرمز لن يكون له نفس التأثير على الروبوتات المختلفة ، لذلك قد يتعين عليك التحلي بالصبر والضبط وفقًا لذلك.
الخطوة السادسة: الخاتمة
الآن لديك كل الأدوات للتلاعب بها باستخدام جهاز Roomba الخاص بك ، مما يعني أنه يمكنك التلاعب بالرمز بأي طريقة تريدها لتحقيق الأهداف التي ترغب فيها. يجب أن يكون هذا هو أفضل جزء من يومك ، لذا استمتع بالقيادة بأمان!
موصى به:
إعادة تدوير الأقراص المدمجة في سيارات السباق: 8 خطوات (بالصور)
إعادة تدوير الأقراص المضغوطة في سيارات السباق: مرحباً بالجميع. هذه هي سيارة سباق السيارات الخاصة بنا ، إنها مجانية تمامًا وتلقائية إذا كنت أحد الوالدين ، فستكون مناسبة جدًا للعب مع أطفالك مما يجعلها بسيطة جدًا ، وستكون ممتعة للغاية ، وسأرشدك ، دعنا نجعلها! أنت بحاجة إلى قرص مضغوط
موقف سيارات ذكي باستخدام Raspberry Pi: 5 خطوات
موقف سيارات ذكي باستخدام Raspberry Pi: في هذه التعليمات ، سننشئ نظام انتظار تلقائي بالكامل متصل بواجهة ويب. ستكون قادرًا على رؤية المكان الذي يتم التقاطه ، وتحديد من يدخل ومن يخرج ، ويكون مجهزًا بنظام إضاءة تلقائي
مارس رومبا: 6 خطوات
Mars Roomba: سيرشدك هذا Instructable في اتجاهات تشغيل روبوت فراغ Roomba الذي يتحكم فيه Raspberry Pi. نظام التشغيل الذي سنستخدمه هو من خلال MATLAB
روبوت رومبا يتحكم فيه المتصفح مع Raspberry Pi Model 3 A +: 6 خطوات (بالصور)
روبوت Roomba الخاضع للتحكم في المتصفح باستخدام Raspberry Pi Model 3 A +: نظرة عامة سيركز هذا Instructable على كيفية إعطاء Roomba الميت دماغًا جديدًا (Raspberry Pi) وعينين (كاميرا ويب) وطريقة للتحكم في كل شيء من متصفح الويب. هناك الكثير من عمليات اختراق Roomba التي تتيح التحكم عبر الواجهة التسلسلية. أما أنا فلا
المفتش رومبا: 6 خطوات (بالصور)
المفتش Roomba: يستخدم معظمنا روبوتات iRobot Roomba فقط للتنظيف بالمكنسة الكهربائية ، لكن القليل منهم يعلم أنها قاعدة رائعة لمشاريع روبوتية جديدة. يجب على جميع المصنّعين تجربة واجهة Roomba المفتوحة (OI) لمعرفة مدى سهولة التحكم في هذا الروبوت. في هذه التعليمات ، كنت