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

جهاز Roomba لمساعدة رواد الفضاء: 4 خطوات
جهاز Roomba لمساعدة رواد الفضاء: 4 خطوات

فيديو: جهاز Roomba لمساعدة رواد الفضاء: 4 خطوات

فيديو: جهاز Roomba لمساعدة رواد الفضاء: 4 خطوات
فيديو: من زينو نهار اليوم ØµØ Ø¹ÙŠØ¯ÙƒÙ… انشر الفيديو Øتى يراه كل Ø§Ù„Ø 2024, شهر نوفمبر
Anonim
مساعد رواد الفضاء Roomba
مساعد رواد الفضاء Roomba

تم إنشاء هذا المشروع باستخدام Raspberry Pi 3 على متن iRobot Create Version 2. يتم استخدام MATLAB لبرمجة الروبوت لاتباع تعليمات محددة باستخدام أجهزة الاستشعار والكاميرا الخاصة به. تُستخدم المستشعرات والكاميرات لأداء مهام محددة من شأنها أن تتبع رائد الفضاء وتزوده بالقدرة على التواصل مع قاعدته / منزلها في حالة حدوث أي خطأ.

الخطوة 1: الأجزاء المطلوبة

الأجزاء المطلوبة
الأجزاء المطلوبة
الأجزاء المطلوبة
الأجزاء المطلوبة
الأجزاء المطلوبة
الأجزاء المطلوبة
الأجزاء المطلوبة
الأجزاء المطلوبة

1. iRobot إنشاء الإصدار 2

يعد iRobot Create الجزء الأكثر أهمية في هذا المشروع لأنه قابل للبرمجة ويمكن أن يكون تمثيلًا رائعًا لسيارة روفر حقيقية تتبع رواد الفضاء وتساعدهم في المستقبل

2. Raspberry Pi 3

كان Raspberry Pi هو البرنامج القابل للبرمجة المستخدم لهذا المشروع. تم تصميم الكود لـ Pi وإصدار Pi المرفق هو 3 (نموذج B). اللوحات الأخرى القابلة للبرمجة مثل اردوينو قابلة للاستخدام ، ومع ذلك ، فإن اردوينو ومعظم اللوحات الأخرى تتطلب ترميزًا مختلفًا عما هو موصوف في خطوة أخرى

3. وحدة كاميرا Raspberry Pi

الاتصال الوحيد الغريب بـ Raspberry Pi المطلوب لهذا المشروع هو وحدة الكاميرا. تعد وحدة الكاميرا جزءًا لا يتجزأ من هذا المشروع ، نظرًا لأن roomba ستؤدي المهام بناءً على ما تراه في الكاميرا فقط

4. MATLAB 2018a

تم استخدام ثاني أحدث إصدار من MATLAB ، 2018a ، للترميز المتضمن في هذا الإعداد. من المحتمل أن العديد من الإصدارات الأخرى من MATLAB ستعمل مع هذا نظرًا لأن برمجة roomba كانت موجودة منذ فترة

الخطوة 2: الملفات وتكوين الكاميرا

الملفات وتكوين الكاميرا
الملفات وتكوين الكاميرا

1. توصيلات Raspberry Pi والكاميرا بغرفة roomba

  • يمكن لـ Pi الاتصال بـ iRobot مباشرة باستخدام micro USB. هذا كل ما تحتاجه لتكون جاهزة للاستخدام. ومع ذلك ، يوصى بوضعه بشكل آمن على جهاز Roomba كما هو موضح في الصور طوال العرض التقديمي حتى الآن.
  • تحتوي الكاميرا على اتصال مباشر بـ Raspberry Pi ويوصى بشدة بشراء شيء ما أو صنعه من أجل حمل الكاميرا مباشرة. لا توجد نقطة حقيقية للكاميرا إذا كان لا يمكن تثبيتها في مكانها لإظهار ما يراه جهاز Roomba.

2. الملفات

  • بعد إعداد كل شيء وتوصيله ، تأكد من إعادة ضبط الروبوت وجاهز للعمل بالضغط على زري "Spot" و "Dock" لمدة 10 ثوانٍ معًا.
  • هذا هو المكان الذي تحتاج إليه أولاً MATLAB. يجب تثبيت ملفات roomba أولاً وكل ما هو مطلوب لتشغيل هذه الملفات هو الكود الموجود على هذا الرابط:
  • https://ef.engr.utk.edu/ef230-2017-08//projects/ro…

الخطوة 3: اختبار Roomba الأولي

هناك العديد من الفحوصات الأولية التي يجب إجراؤها على جهاز Roomba للتأكد من أنه يعمل.

1. تأكد من أنك متصل بنفس شبكة WiFi مثل Roomba. بدون هذا ، لن تتصل عبر MATLAB.

2. اكتشف الرقم المخصص لجهاز Roomba الخاص بك حتى تتمكن من الاتصال على وجه التحديد بغرفة Roomba التي اخترتها. على سبيل المثال ، إذا كان رقم roomba الخاص بك هو 30 ، فيمكنك الاتصال به عن طريق كتابة roomba (30) في نافذة الأوامر في MATLAB.

3. يمكن التحكم في Roomba من خلال الهياكل الموجودة في MATLAB. على سبيل المثال ، إذا قمت بتعيين الكود الخاص بك لـ roomba (30) على المتغير "r" ، فيمكن تحريك الروبوت للأمام باستخدام الأمر r.moveDistance (0.2 ، 0.1).

4. هناك العديد من الأوامر المختلفة التي يمكن توصيلها إلى جهاز Roomba ويمكن رؤيتها بكتابة "doc roomba" في نافذة الأوامر.

5. يمكن قراءة مستشعرات قراءات الضوء والنتوء والجرف باستخدام الأوامر التي تظهر في "doc roomba" ولكن يمكن رؤية قائمة ثابتة وأنيقة لرؤية بيانات المستشعر باستخدام "r.testSensors" ".

6. بعد اختبار كل هذا ، يمكن استخدام برنامج جمع الصور للروبوت لقراءة ومشاهدة الصور الملتقطة. سيكون الكود الأساسي لهذا هو img = r.getImage و imshow (img)؛.

7. يمكن العثور على قيم RGB للصورة باستخدام الرموز red_mean = mean (mean (img (:،:، 1))) ؛

green_mean = يعني (يعني (img (: ،: ، 2))) ؛ و blue_mean = متوسط (متوسط (img (: ،: ، 3))) ؛.

الخطوة 4: مثال على كود MATLAB

مثال كود MATLAB
مثال كود MATLAB

في هذه المرحلة ، أنت الآن جاهز لاستخدام المستشعرات وبرامج التقاط الصور لإنشاء دوران خاص بك على نموذج أولي لمساعدة الإنسان على المريخ. مثالنا هو اتباع رائد الفضاء من خلال تتبع اللون الأبيض والتحرك نحوه. سيصدر الروبوت صوتًا إذا كانت أجهزة الاستشعار الخاصة به تقرأ قيمًا عالية بحيث يمكن لرائد الفضاء إعادة ضبط الروبوت إذا كان عالقًا أو ذهب والتقاطه وإعادة ضبطه إذا كان عالقًا على جرف. ومع ذلك ، فإنه يقرأ هذه الأخطاء فقط طالما أنه يرى اللون الأبيض. بدون أن يتمكن من رؤية اللون الأبيض ، سيدخل الروبوت في وضع الخطأ. تمت برمجته لإرسال نوعين مختلفين من رسائل البريد الإلكتروني إلى قاعدة المنزل اعتمادًا على ما تراه. إذا رأى لون جلد رائد الفضاء ، فمن الواضح أن هذا ليس جيدًا ، لذلك سينبه قاعدة المنزل إذا ظهر جلد رائد الفضاء مع خلل في البدلة. يتم إعداد الرسالة الأخرى إذا اختفى رائد الفضاء ببساطة عن الأنظار. إذا لم يظهر اللون الأبيض أو لون البشرة للكاميرات ، فسوف يدور الروبوت ويرسل بريدًا إلكترونيًا آخر ، ولكن مختلفًا. سيتم إرسال الصور حيث لا يستطيع جهاز Roomba رؤية رائد الفضاء مع الرسالة الموجودة في رسائل البريد الإلكتروني. يظهر رمز مشروعنا أدناه:

بالنسبة إلى i = 1:.1: 3 img = r.getImage ؛ image (img) red_mean = يعني (يعني (img (: ،: ، 1))) ؛ green_mean = يعني (يعني (img (: ،: ، 2))) ؛ blue_mean = يعني (يعني (img (: ،: ، 3))) ؛ إذا كان red_mean> 110 && red_mean 110 && blue_mean 110 && green_mean0 || bump.left> 0 || bump.front> 0 r.beep () r.beep () r.beep () r.stop elseif cliff.left <10 || cliff.leftFront <10 || الهاوية اليمنى الجبهة <10 || cliff.right700 || light.leftFront> 700 || light.leftCenter> 700 || light.rightCenter> 700 || light.right> 700 || light.right> 700 r.beep () r.beep () r.beep () r.beep () r.beep () r.stop else لـ i = 1: 2 r حركة المسافة (0.2 ، 0.1) r. setDriveVelocity (.3،.2) r.stop end end إذا كان green_mean <35 && blue_mean <35٪ يظهر لون الجلد (يحتاج إلى تعديل بناءً على لون بشرة رائد الفضاء) r.beep () ؛ r.beep () ؛ r.beep () ؛ mail = '[email protected]' ؛ ٪ يرسل رسالة بريد إلكتروني تظهر الدعوى معطلة psswd = 'نعم'؛ المضيف = 'smtp.gmail.com' ؛ المنفذ = '465' ؛ emailto = '[email protected]' ؛ m_subject = 'موضوع' ؛ m_text = 'اختبار' ؛ setpref ("الإنترنت" ، "البريد الإلكتروني" ، البريد) ؛ setpref ("الإنترنت" ، "SMTP_Server" ، المضيف) ؛ setpref ("الإنترنت" ، "SMTP_Username" ، البريد) ؛ setpref ("الإنترنت" ، "SMTP_Password" ، psswd) ؛ props = java.lang. System.getProperties ؛ props.setProperty ("mail.smtp.user" ، بريد) ؛ props.setProperty ("mail.smtp.host" ، المضيف) ؛ props.setProperty ("mail.smtp.port" ، منفذ) ؛ props.setProperty ('mail.smtp.starttls.enable'، 'true') ؛ props.setProperty ('mail.smtp.debug'، 'true') ؛ props.setProperty ('mail.smtp.auth'، 'true') ؛ props.setProperty ("mail.smtp.socketFactory.port" ، منفذ) ؛ props.setProperty ('mail.smtp.socketFactory.class'، 'javax.net.ssl. SSLSocketFactory') ؛ props.setProperty ("mail.smtp.socketFactory.fallback"، "false") ؛ sendmail (emailto ، "مساعدة!" ، "تم إيقاف زي رواد الفضاء!" ، img) ؛ ينتهي إذا كان red_mean 135 || green_mean 135 || blue_mean 135 لـ j = 1: 2٪ إذا تعذر العثور على اللون الأبيض بواسطة الروبوت r.turnAngle (360) mail = '[email protected]' ؛ psswd = 'نعم' ؛ المضيف = 'smtp.gmail.com' ؛ المنفذ = '465' ؛ emailto = '[email protected]' ؛ m_subject = 'موضوع' ؛ m_text = 'اختبار' ؛ setpref ("الإنترنت" ، "البريد الإلكتروني" ، البريد) ؛ setpref ("الإنترنت" ، "SMTP_Server" ، المضيف) ؛ setpref ("الإنترنت" ، "SMTP_Username" ، البريد) ؛ setpref ("الإنترنت" ، "SMTP_Password" ، psswd) ؛ props = java.lang. System.getProperties ؛ props.setProperty ("mail.smtp.user" ، بريد) ؛ props.setProperty ("mail.smtp.host" ، المضيف) ؛ props.setProperty ("mail.smtp.port" ، منفذ) ؛ props.setProperty ('mail.smtp.starttls.enable'، 'true') ؛ props.setProperty ('mail.smtp.debug'، 'true') ؛ props.setProperty ('mail.smtp.auth'، 'true') ؛ props.setProperty ("mail.smtp.socketFactory.port" ، منفذ) ؛ props.setProperty ('mail.smtp.socketFactory.class'، 'javax.net.ssl. SSLSocketFactory') ؛ props.setProperty ("mail.smtp.socketFactory.fallback"، "false") ؛ sendmail (emailto ، "مساعدة!" ، "لا يمكن العثور على رائد الفضاء!" ، img) ؛ r.stop نهاية نهاية

من الواضح أن الأمر فوضوي هنا ، لكن يجب أن يتلاشى بمجرد نسخه. يتم توفير كلمات المرور ورسائل البريد الإلكتروني الخاصة بذلك من قبل أولئك الذين يقومون بهذا المشروع بشكل واضح.

ومع ذلك ، فإن مثالنا هو مجرد واحد من عدة طرق للعبث بهذا الروبوت لجعله يناسب الجميع. هناك العديد من الأشياء المختلفة التي يجب القيام بها ، والتي يمكنك أن تناسبك.

موصى به: