جدول المحتويات:
- الخطوة الأولى: المواد والمستلزمات:
- الخطوة 2:
- الخطوة 3: تجميع "حديقتك"
- الخطوة 4: كتابة الكود
- الخطوة 5: انسخ الكود
فيديو: Garden Helper Roomba Bot: 8 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:41
كيارا مايرز وأحمد الغدير وماديسون تيبت
غرض:
ستعلمك هذه التعليمات كيفية برمجة Roomba Bot ، باستخدام MATLAB ، للتنقل عبر حديقة ، واكتشاف الفواكه / الخضروات ذات الشكل الدائري التي تنضج بدرجة كافية ليتم قطفها بناءً على حجمها. يرسل لك هذا الروبوت أيضًا بريدًا إلكترونيًا ، ينبهك إلى عدد الفاكهة الجاهزة للقطف والمسار الذي سارت فيه.
سمات:
- يستخدم مستشعرات الضوء لاكتشاف الجدران والانعطاف قليلاً لتجنب الاصطدام بها
- يستخدم مستشعرات الاهتزازات لكسر البرنامج عندما يضرب الصخرة في نهاية الحديقة
- يستخدم معالجة الصور لاكتشاف دائرة في الحديقة ثم تحديد نصف قطرها
- يستخدم مستشعرات الجرف لاكتشاف الشريط الملون الذي يشير إلى وجود الفاكهة
الخطوة الأولى: المواد والمستلزمات:
- كمبيوتر محمول واحد
- ماتلاب 2017
- مكنسة رومبا الكهربائية
- فطيرة التوت
- كتل خشبية
- ورق ابيض
- ورقة سوداء
- شريط ملون / شريط رفيع من الورق الملون
- صخرة كبيرة
الخطوة 2:
الخطوة 3: تجميع "حديقتك"
- خذ ورقتك السوداء واقطع دوائر بأحجام مختلفة
-
ألصق هذه الدوائر السوداء على ورق أبيض كبير
سيكون هذا التباين ضروريًا عند اكتشاف الفاكهة
-
استخدم الكتل الخشبية الخاصة بك لإنشاء مسار حديقة يشبه المتاهة حتى يتنقل الروبوت الخاص بك
اخترنا مسارًا على شكل حرف U كما هو موضح أعلاه
- في نهاية حديقتك ، أضف صخرة أو بابًا أو أي شيء آخر حتى يعرف الروبوت الخاص بك أنه قد انتهى
-
ألصق ورقتك البيضاء بالدائرة على جدران الحديقة
استخدمنا الدلاء لتثبيتها لأن جدراننا كانت قصيرة جدًا للكاميرا
- ضع شريطًا ملونًا / شريطًا رفيعًا من الورق الملون على الأرض أمام الثمرة
الخطوة 4: كتابة الكود
الإبحار في الحديقة
باستخدام Bump Sensors: لتشغيل البرنامج ، نضع الترميز في عبارة while التي تتكرر عبر عبارات if المختلفة حتى يتم كسر الكود. إذا تم الوصول إلى أي من الملصقات الصغيرة ، فسيؤدي ذلك إلى تساوي قيمتها الحقيقية (وهي قيمة 1 في Boolean). يتم استخدام عبارة if لكسر الكود عندما تساوي إحدى قيمها 1.
استخدام مستشعرات Cliff: في بيان while ، نستخدم عبارة if لإخبار Roomba عند وصولها إلى موقع المصنع. يكتشف جهاز Roomba الشريط الملون على الأرض من خلال فحص عتبة اللون الأحمر التي تلتقطها مستشعرات الجرف. إذا اكتشف مستشعر الجرف الأيمن أو الأيسر لونًا ذا عتبة أكبر من تلك الموجودة على الأرض ، فسيقوم بإيقاف الروبوت لمدة ثانيتين (باستخدام أمر الإيقاف المؤقت). خلال هاتين الثوانيتين ، سوف يلتقط جهاز Roomba صورة للفاكهة ويعرضها. باستخدام imfindcircles المضمنة في الأمر ، قم بتعيين نطاق لأنصاف أقطار دوائرك ، وسيقوم جهاز Roomba الخاص بك بالعثور على الفاكهة المزعومة.
باستخدام معالجة الصور: ضمن عبارة if ، نقوم بتضمين عبارة if أخرى تقول: إذا كان نصف القطر المكتشف ، نصف القطر 3 ، أكبر من أو يساوي الحد الأدنى لمتطلباتنا الخاصة بالفاكهة الناضجة ، r1 (تقرر هذا) ، فقم بالعد والعرض على في Roomba ، كم عدد الفاكهة الجاهزة واستدر للمتابعة عبر الحديقة. إذا لم يكن كذلك ، فإن الدور لمواصلة طريق الحديقة. ملاحظة: قد تحتاج إلى ضبط الزاوية التي تدور فيها لأن كل جهاز Roomba مختلف
استخدام مصدات الضوء: في عبارة if أخرى ، يتم تحليل المصدات الضوئية للتأكد من عدم زيادة أي منها عن الحد الذي حددناه. إذا تجاوز مصد الضوء الأمامي الأيسر أو الأيمن أو الأيسر أو الوسط الأيمن أو الأمامي الأيسر أو المصد الأيمن أعلى العتبة ، فسوف يستدير Roomba قليلاً بالزاوية المناسبة لتجنب الاصطدام بالحائط. ومن ثم ، فإن الإبحار في المتاهة.
يتم استخدام باقي الكود لرسم المسار الذي يسلكه جهاز Roomba ثم إرسال النتائج إلى بريدك الإلكتروني
الخطوة 5: انسخ الكود
النسبة المئوية للغرض: بناءً على أحجامهم ، سوف يمر جهاز Roomba بالحديقة ويميز الخضروات / الفواكه الجاهزة للقطف. النسبة المئوية للإدخالات: مستشعرات Lightbump ، مستشعرات Cliff ، مستشعرات الارتطام ، صورة من الكاميرا٪ المخرجات: عندما تكون مستشعرات الضوء أكبر من العتبة ، سوف يستدير roomba ويلتقط صورة ، ويصدر صوتًا إذا كان نصف قطر٪ خضروات / فواكه بين نطاق معين. ينكسر الكود عندما يصطدم جهاز roomba بـ٪ كائن ، ويرسل رائد الفضاء رسالة بريد إلكتروني إلى رائد الفضاء حول عدد الفاكهة الجاهزة لالتقاطها٪ وتخطيط لحركة roomba. النسبة المئوية للاستخدام: عبارات If and while ، أوامر التخطيط ، رمز البريد الإلكتروني من MATLAB
ك = 0
عرة
timerVal = عرة
احيانا صحيح
الخامس =.2 ؛ النسبة المئوية للسرعة r.setDriveVelocity (v ، v) ؛٪ roomba المضي قدمًا L = r.getLightBumpers ؛ LC = مركز اليسار ؛ Rr = L.right ؛ Lf = اليسار ؛ RC = L.rightCenter ؛ LF = L.leftFront ؛ RF = L rightFront ؛ س = 75 ؛ ٪ عتبة. RTH = 30 ؛ ٪ عتبة حمراء عالية RTL = 10 ؛ ٪ عتبة حمراء منخفضة B = r.getBumpers S = r.getCliffSensors ؛ r1 = 24 ؛ r3 = 10 ؛ PL1 = 1800 ؛ إذا كان S.leftFront> PL1 || يكتشف S.rightFront> PL1٪ ما إذا كان اللون على الأرض أعلى من الحد r.stop pause (2) elapsedTime = toc (timerVal-2) tic timerVal = tic٪ pause لمدة ثانيتين img = r.getImage؛ ٪ take image imshow (img)٪ display image [Centers3، radii3] = imfindcircles (img، [30 50]، 'ObjectPolarity'، 'dark'، 'Sensitivity'، 0.9)؛ ح = الأحشاء (المراكز 3 ، نصف قطر 3) ؛ ٪ ابحث عن دوائر نصف قطر w / في النطاق المحدد في الصورة إذا كان نصف القطر 3> = r1 T = 1 k = k + 1 dist1 = 0.2. * الوقت المنقضي٪ إذا كان نصف القطر المكتشف أكبر من أو يساوي الحد الأدنى من متطلبات الفاكهة الناضجة ، ثم يقوم Roomba بحساب هذه الفاكهة الأخرى إذا كان نصف قطرها 3 <= r3 T = 0 وإلا T = 0 dist2 = 0.2. * الوقت المنقضي ٪ إذا لم يكن كذلك ، فلن يتم احتساب نهاية الفاكهة
إذا كانت T == 1 r.setLEDDigits (num2str (k)) r.beep r.beep r. elseif T == 2 r.turnAngle (78)٪ إذا تم اكتشاف ثمرتين ، استدر للمتابعة من خلال٪ garden else r. TurnAngle (78)٪ إذا لم يتم اكتشاف أي ثمار ، استدر للمتابعة عبر٪ نهاية الحديقة if LC> Q r.stop r.turnAngle (-7) elseif RC> Q r.stop r.turnAngle (7) elseif LF> Q r.stop r.turnAngle (-7) elseif RF> Q r.stop r. turnAngle (7) elseif Lf> Q r.stop r. سوف يستدير قليلاً في الاتجاه المناسب لتجنب٪ الاصطدام بالحائط
إذا كان B.right == 1 || ب. اليسار == 1 || ب الجبهة == 1 dist3 = 0.2. * الوقت المنقضي r.stop r.beep ('F # * 2، F # * 2، c، F # * 2، F # * 2') r.turnAngle (360)٪ إذا كان أي من يتم ضرب الأعداد ، ثم يقوم جهاز Roomba بتشغيل الصوت ، ويدور حوله ،٪ ويكسر الشفرة
نهاية الاستراحة
مبعثر النهاية (0.533، 0، '^') امسك التشتت (0.533، dist1، '<') على مبعثر (-dist2، dist1، 'v') استمر في التشتت (-dist2، 0، 'd') حفظ (gcf، "Movement.png")
kmsg = num2str (k) mail = '[email protected]' password = 'Srsora123 #' host = 'smtp.gmail.com' المنفذ = '465'
setpref ("الإنترنت" ، "البريد الإلكتروني" ، البريد) ؛ setpref ("الإنترنت" ، "SMTP_Server" ، المضيف) 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 (mail، "مرحبًا رائد فضاء! هناك العديد من الفواكه في الحديقة" ، kmsg ، {'Movement.png'})
موصى به:
KS-Garden: نظرة عامة: 9 خطوات
KS-Garden: نظرة عامة: يمكن استخدام KS-Garden للري / التنفيس. / إضاءة حديقتك / نباتات الدفيئة في الفناء الخلفي أو نباتات صندوق النمو الداخلي (تصميم معياري) يتكون نظام KS-Garden بشكل أساسي من الوحدات التالية - الرئيسية مربع النظام - ريلايس وصندوق إمداد الطاقة
Gardenduino Aka The Garden Master: 4 خطوات
Gardenduino Aka The Garden Master: حسنًا ، ألا تشعر بالملل عند تنظيف مروجنا ، وسقي النباتات و ما لا! حسنًا ، البستنة بالضبط ليست كوب الشاي الخاص بي. لذلك قررت عمل نظام آلي للعناية بحديقتي! هيا نبدأ
Roomba Bot the Bulider: 5 خطوات (بالصور)
Roomba Bot the Bulider: Bot the Builder هو Roomba ، مع & quot؛ grabbers & quot؛ تعلق على الجبهة سوف تكون قادرة على تحريك الأشياء. تم تعيين الكود الموجود به لتسجيل الحركة الأولى باستخدام مربع واجهة المستخدم الرسومية الذي يمكنك التحكم فيه بمجرد نقرة على الماوس. بعد
Garden Train - Arduino Wireless NMRA DCC: 4 خطوات (مع صور)
قطار الحديقة - Arduino Wireless NMRA DCC: بالإضافة إلى التعليمات السابقة مع DCC على نظام السكك الحديدية الميتة ، لقد طورت الفكرة بشكل أكبر باستخدام محطة قيادة DCC محمولة باليد مع لوحة مفاتيح وشاشة LCD. تحتوي محطة القيادة على جميع الترميز المطلوب لتعليمات NMRA DCC ، كيف
من Roomba إلى Rover في 5 خطوات فقط!: 5 خطوات
من Roomba إلى Rover في 5 خطوات فقط!: روبوتات Roomba هي طريقة ممتعة وسهلة لتغمس أصابع قدميك في عالم الروبوتات. في هذا Instructable ، سنشرح بالتفصيل كيفية تحويل Roomba البسيطة إلى عربة جوالة يمكن التحكم فيها والتي تحلل محيطها في نفس الوقت. قائمة الأجزاء 1.) MATLAB2.) Roomb