جدول المحتويات:

موقف سيارات رومبا بال: 6 خطوات
موقف سيارات رومبا بال: 6 خطوات

فيديو: موقف سيارات رومبا بال: 6 خطوات

فيديو: موقف سيارات رومبا بال: 6 خطوات
فيديو: طريقة الركن السيارة بخطوتين وطريقة تصحيح الركن How to Park a Car مع ياسين 2024, شهر نوفمبر
Anonim
موقف سيارات رومبا بال
موقف سيارات رومبا بال

يستخدم هذا المشروع 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 منطقيًا لاستخدام المستشعرات

إنشاء رمز MATLAB منطقيًا لاستخدام المستشعرات
إنشاء رمز 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 الخاص بك ، مما يعني أنه يمكنك التلاعب بالرمز بأي طريقة تريدها لتحقيق الأهداف التي ترغب فيها. يجب أن يكون هذا هو أفضل جزء من يومك ، لذا استمتع بالقيادة بأمان!

موصى به: