جدول المحتويات:
- الخطوة 1: الأجزاء المطلوبة
- الخطوة 2: الملفات وتكوين الكاميرا
- الخطوة 3: اختبار Roomba الأولي
- الخطوة 4: مثال على كود MATLAB
فيديو: جهاز Roomba لمساعدة رواد الفضاء: 4 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:40
تم إنشاء هذا المشروع باستخدام 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
في هذه المرحلة ، أنت الآن جاهز لاستخدام المستشعرات وبرامج التقاط الصور لإنشاء دوران خاص بك على نموذج أولي لمساعدة الإنسان على المريخ. مثالنا هو اتباع رائد الفضاء من خلال تتبع اللون الأبيض والتحرك نحوه. سيصدر الروبوت صوتًا إذا كانت أجهزة الاستشعار الخاصة به تقرأ قيمًا عالية بحيث يمكن لرائد الفضاء إعادة ضبط الروبوت إذا كان عالقًا أو ذهب والتقاطه وإعادة ضبطه إذا كان عالقًا على جرف. ومع ذلك ، فإنه يقرأ هذه الأخطاء فقط طالما أنه يرى اللون الأبيض. بدون أن يتمكن من رؤية اللون الأبيض ، سيدخل الروبوت في وضع الخطأ. تمت برمجته لإرسال نوعين مختلفين من رسائل البريد الإلكتروني إلى قاعدة المنزل اعتمادًا على ما تراه. إذا رأى لون جلد رائد الفضاء ، فمن الواضح أن هذا ليس جيدًا ، لذلك سينبه قاعدة المنزل إذا ظهر جلد رائد الفضاء مع خلل في البدلة. يتم إعداد الرسالة الأخرى إذا اختفى رائد الفضاء ببساطة عن الأنظار. إذا لم يظهر اللون الأبيض أو لون البشرة للكاميرات ، فسوف يدور الروبوت ويرسل بريدًا إلكترونيًا آخر ، ولكن مختلفًا. سيتم إرسال الصور حيث لا يستطيع جهاز 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 نهاية نهاية
من الواضح أن الأمر فوضوي هنا ، لكن يجب أن يتلاشى بمجرد نسخه. يتم توفير كلمات المرور ورسائل البريد الإلكتروني الخاصة بذلك من قبل أولئك الذين يقومون بهذا المشروع بشكل واضح.
ومع ذلك ، فإن مثالنا هو مجرد واحد من عدة طرق للعبث بهذا الروبوت لجعله يناسب الجميع. هناك العديد من الأشياء المختلفة التي يجب القيام بها ، والتي يمكنك أن تناسبك.
موصى به:
الحبر الإلكتروني: القمر / محطة الفضاء الدولية / الناس في الفضاء : 6 خطوات
الحبر الإلكتروني: القمر / محطة الفضاء الدولية / الناس في الفضاء …: كان لدي قبعة راسبيري وورق إلكتروني وأردت استخدامه لإظهار معلومات مثل مكان محطة الفضاء الدولية أو عدد الأشخاص الموجودين الآن في الفضاء .. صرحت للبحث عما إذا كانت هناك واجهات برمجة تطبيقات على الإنترنت للحصول على هذه البيانات ، ووجدتها. حسنًا ، مسكتك !!!! انتظر
ساعة كوزمو - يتغير لونها في كل مرة يدخل فيها رائد الفضاء الفضاء: 8 خطوات (بالصور)
ساعة كوزمو - يتغير لونها في كل مرة يدخل فيها رائد الفضاء الفضاء: مرحبًا! هل أنت من عشاق الفضاء؟ إذا كانت الإجابة بنعم ، ثم مرحبا فاي! احب الفضاء وعلم الفلك. من الواضح أنني لست رائد فضاء للذهاب إلى هناك وإلقاء نظرة فاحصة على الكون. لكن في كل مرة أكتشف فيها أن شخصًا من الأرض قد سافر إلى السماء ، أستلهم
طائرة بدون طيار مستقلة مزودة بكاميرا تعمل بالأشعة تحت الحمراء لمساعدة المستجيبين الأوائل: 7 خطوات
طائرة بدون طيار مستقلة مزودة بكاميرا تعمل بالأشعة تحت الحمراء لمساعدة المستجيبين الأوائل: وفقًا لتقرير منظمة الصحة العالمية ، تقتل الكوارث الطبيعية كل عام حوالي 90 ألف شخص وتؤثر على ما يقرب من 160 مليون شخص في جميع أنحاء العالم. تشمل الكوارث الطبيعية الزلازل ، وأمواج تسونامي ، والانفجارات البركانية ، والانهيارات الأرضية ، والأعاصير ، و
جهاز MATLAB للتحكم في جهاز Roomba: 5 خطوات
MATLAB Controlled Roomba: الهدف من هذا المشروع هو استخدام MATLAB بالإضافة إلى روبوت iRobot قابل للبرمجة. جمعت مجموعتنا مهاراتنا في الترميز من أجل إنشاء نص MATLAB يستخدم العديد من وظائف iRobot ، بما في ذلك مستشعرات المنحدرات ومستشعرات المصد
جهاز IPod فائق النعومة أو جهاز عرض فيديو جهاز آخر: 6 خطوات
جهاز IPod فائق النعومة أو جهاز عرض فيديو جهاز آخر: في هذا Instructable ، سأوضح لك خطوة لتخطي كيفية صنع جهاز عرض فيديو فائق النعومة لجهاز iPod أو Zen أو Zune أو DS أو الوسائط الأخرى أو جهاز الألعاب. لا يتطلب أي قوة للعمل ولا يتعين عليك تفكيك جهازك ؛ سوف يجلس س