You are on page 1of 18

‫سلطنة عمان‬

‫وزارة ر‬
‫التبية و التعليم‬
‫المديرية العامة ر‬
‫للتبية و التعليم بمحافظة فظفار‬
‫دائرة التقويم ر‬
‫التبوي‬

‫ورشة تدريبية‬

‫بناء و برمجة روبوت ‪ev3‬‬

‫و تطبيقاته يف مسابقات الروبوت بالسلطنة‬

‫ورقة العمل الثانية‬


‫حساس الوان و مسابقة تتبع الخط‬

‫العلم‬
‫ي‬ ‫عل باعوين ‪ /‬قسم االبتكار و األولمبياد‬
‫اعداد و تقديم ‪ :‬مريم سعيد ي‬
‫التعريف بمسابقة تتبع الخط ‪:‬‬
‫( دليل مسابقة تتبع الخط )‬

‫برمجة روبوت للتعرف على األلوان و تنفيذ مهام حسب اللون‪:‬‬


‫مستشعر اللون يقوم بقراءة اللون من خارج الروبوت مدخال قيمة اللون التي يتم أخذها‬
‫عبر السلك الستخدامها في قوالب أخرى ‪.‬‬

‫محدد المنفذ‬
‫محدد الوضع‬
‫المدخالت‬
‫المخرجات‬

‫استخدم محدد المنفذ الموجود على الجزء العلوي من القالب للتأكد من مطابقة رقم منفذ‬
‫المستشعر (‪ 1‬أو ‪ 2‬أو ‪ 3‬أو‪ )4‬للمنفذ الموجود بوحدة البناء ‪ EV3‬المتصل بها مستشعر‬
‫األلوان‪.‬‬
‫استخدم محدد الوضع لتحديد الوضع للقالب‪ .‬يماثل الوضع المدخالت والمخرجات المتاحة حسب‬
‫الوضع‪.‬‬
‫األوضاع‬
‫قياس ‪ -‬اللون ‪ :‬يقوم الوضع قياس – اللون بإخراج رقم اللون المكتشف‬

‫قياس – شدة الضوء المنعكس‬

‫يقوم الوضع قياس – شدة الضوء المنعكس بإخراج شدة الضوء في قيمة مقاسة‪.‬‬
‫قياس – شدة الضوء المحيط‪:‬‬

‫يقوم الوضع قياس – شدة الضوء المحيط ‪ ،‬بإخراج شدة الضوء في قيمة مقاسة‪.‬‬

‫مقارنة – اللون‪:‬‬

‫في الوضع مقارنة – اللون ‪ ،‬يمكنك تحديد لون واحد أو أكثر في مجموعة األلوان ‪ .‬يماثل‬
‫الوضع نتيجة المقارنة ‪ ،‬صواب إذا كان اللون المكتشف مماثالً ألي من األلوان المحددة‪ .‬ويتم‬
‫إخراج اللون المكتشف في قيمة مقاسة‪.‬‬

‫مقارنة – شدة الضوء‬


‫يقارن الوضعان مقارنة – شدة الضوء المنعكس و مقارنة – شدة الضوء المحيط بين شدة‬
‫الضوء المكتشف و قيمة الحد باستخدام نوع المقارنة ‪ .‬يتم إخراج النتيجة ) صواب‪/‬خطأ( في‬
‫)نتيجة المقارنة (ويتم إخراج شدة الضوء المكتشف في قيمة مقاسة‪.‬‬
‫تتوقف المدخالت المتاحة على الوضع المحدد‪ .‬الستخدام خرج‪ ،‬استخدم أسالك البيانات لتوصيل‬
‫الخرج بقالب برمجة آخر‪.‬‬
‫مالحظات‬ ‫النوع‬ ‫اإلخراج‬

‫رقم اللون المكتشف ‪:‬‬ ‫عددي‬ ‫اللون‬


‫= ‪0‬ال يوجد لون‬
‫= ‪1‬أسود‬
‫= ‪2‬أزرق‬
‫= ‪3‬أخضر‬
‫= ‪4‬أصفر‬
‫= ‪5‬أحمر‬
‫= ‪6‬أبيض‬
‫= ‪7‬بني‬

‫نتيجة ”صواب‪/‬خطأ” للوضع ”مقارنة‪”.‬‬ ‫منطقي‬ ‫نتيجة المقارنة‬

‫قيمة بيانات المستشعر المستخدمة لوضع من أوضاع ”مقارنة‪”.‬‬ ‫عددي‬ ‫قيمة مقاسة‬

‫قالب التبديل ‪ ( SWICH‬اتخاذ القرار )‬


‫أوال التحقق من شرط ( تحقق أم ال )‬

‫الشرط‬ ‫الحد‬
‫الذي‬
‫يقاس‬
‫عنده‬
‫الشرط‬

‫محدد الوضع‬ ‫‪1‬‬


‫محدد المنفذ‬ ‫‪2‬‬
‫‪ 3‬المدخالت على جزئين الشرط ( أكبر من ‪ ،‬أصغر من ‪ ).....،‬و الحد الذي يقاس عنده‬
‫الشرط ‪.‬‬
‫استخدم محدد الوضع لتحديد نوع االختبار الذي سيستخدمه قالب التبديل الختيار الحالة التي‬
‫سيتم تشغيلها‪ .‬يمكنك اختبار قيمة مستشعر أو قيمة سلك البيانات ‪.‬‬
‫عند تحديد وضع يستخدم أحد المنافذ‪ ،‬استخدم محدد المنفذ للتأكد من تطابق المنفذ مع منفذ‬
‫وحدة البناء ‪ EV3‬المتصل بها المستشعر أو المحرك‪.‬‬

‫وفي هذه األوضاع‪ ،‬يتضمن قالب ”التبديل” حالتين‪ .‬إذا كانت نتيجة االختبار ”صواب”؛ يتم‬
‫تنفيذ حالة الصواب‪ ،‬وإذا حدث خالف ذلك؛ فإنه يتم تنفيذ حالة الخطأ‪.‬‬

‫ثانيا ‪:‬التحقق من عدة قيّم‬


‫تتيح لك أوضاع ”قياس” المستشعر الخاصة بقالب ”التبديل” تحديد العديد (اثنين أو أكثر) من‬
‫قيّم المستشعر المختلفة للتحقق منها‪ .‬يمكنك إعطاء كل قيمة حالة مختلفة في قالب ”التبديل”‪.‬‬
‫على سبيل المثال‪ ،‬في الوضع ”مستشعر األلوان – قياس – اللون”‪ ،‬يمكنك التحقق من‬
‫”أسود” و”أبيض” و”أحمر”‪ ،‬وإنشاء ثالث حاالت مختلفة بمعدل حالة لكل لون‪.‬‬

‫‪ .1‬إضافة حالة‬
‫‪ .2‬قيمة الحالة‬
‫‪ . 3‬حالة افتراضية‬
‫‪ .4‬إزالة حالة‬
‫الستخدام عدة حاالت في وضع ”قياس” من أوضاع المستشعر‪ ،‬انقر فوق الزر ”إضافة حالة”‬
‫إلنشاء عدد الحاالت المطلوب‪ .‬وبالنسبة لكل حالة على حدة‪ ،‬انقر فوق ”قيمة الحالة” لتحديد‬
‫قيمة للمستشعر من القائمة‪ .‬يمكنك النقر فوق الزر إزالة حالة إلزالة حالة‪.”.‬‬

‫الحركة الحلقية (‪ - )LOOP‬التكرار‪:‬‬

‫صورة قالب ”الحركة الحلقية” عبارة عن حاوية يمكنها االحتفاظ بتسلسل قوالب‬
‫برمجة‪ .‬ويعمل القالب على تكرار تسلسل القوالب الموجودة داخله‪ .‬ويمكنك يختار بين‬
‫تكرار القوالب بشك ٍل دائم أو لعدد مرات معين أو إلى أن تصبح اختبارات المستشعرات‬
‫أو الحاالت األخرى ”صواب‪”.‬‬
‫ال يتم تكرار سوى القوالب الموجودة داخل الحلقة‪ .‬وبعد أن تنتهي الحلقة‪ ،‬سيتابع‬
‫البرنامج مستخد ًما القوالب التي تلي الحلقة ‪.‬‬

‫محدد الوضع‬
‫المدخالت‬
‫خرج ”العدد”‬
‫اسم الحلقة‬

‫استخدم محدد الوضع للتحكم في كيفية تكرار الحلقة‪ .‬وتحدد األوضاع المختلفة الحالة التي‬
‫تنهي الحلقة‪ .‬على سبيل المثال‪ ،‬يمكنك جعل الحلقة تتكرر لعدد معين من المرات أو تتكرر إلى‬
‫أن تبلغ قيمة بيانات المستشعر حدًا معينًا أو تتكرر بشكل دائم‪ .‬تختلف المدخالت المتاحة حسب‬
‫الوضع‪ .‬ويرد وصف لألوضاع أدناه‪.‬‬
‫يمكنك إدخال اسم للحلقة في الحقل اسم الحلقة الموجود على الجزء العلوي بقالب الحركة‬
‫الحلقية ويتم استخدام هذا االسم بواسطة القالب مقاطعة الحلقة لتوفير طريقة أخرى إلنهاء‬
‫الحلقة‪.‬‬

‫تستخدم القوالب الموجودة داخل الحلقة الخرج العدد لكشف عدد مرات تكرار الحلقة‪ .‬راجع‬
‫استخدام الخرج العدد لمزي ٍد من المعلومات‪.‬‬

‫األوضاع‪:‬‬
‫غير محدود‬
‫في الوضع غير محدود‪ ،‬يتم تكرار القوالب الموجودة داخل الحلقة بشكل دائم‪ .‬ولن يتم أبدًا بلوغ‬
‫أي قوالب موضوعة بعد الحلقة‪.‬‬
‫مثال ‪:‬‬

‫وتكرارا‪ ،‬إلى أن‬


‫ً‬ ‫مرارا‬
‫ً‬ ‫يجعل هذا البرنامج الروبوت يتحرك في تسلسل تبادلي مستقيم ‪ /‬مائل‬
‫يتم إيقاف البرنامج‪ ،‬استخدم الزر الخلفي بوحدة البناء ‪ EV3‬إليقاف البرنامج‪.‬‬

‫وضع عدد التكرارات‪:‬‬

‫في الوضع العدد‪ ،‬يحدد دخل العدد الذي يمثل عدد مرات تكرار القوالب داخل الحلقة‪.‬‬

‫مثال‪:‬‬
‫يُستخدم هذا البرنامج لتزويد الروبوت بالقدرة على قول كلمة ‪ HELLO‬مرة واحدة و;كلمة‬
‫‪ GO‬ست مرات‪ ،‬ثم ‪ BRAVO‬مرة واحدة‪ .‬يتضمن قالب الحركة الحلقية قالب صوت واحد‬
‫تم تكوينه للتكرار ست مرات‪.‬‬

‫التكرار حسب الوقت ‪:‬‬

‫في الوضع ”الوقت” يمكنك تحديد مقدار من الوقت تتكرر‬


‫خالله الحلقة في الدخل” ثانية ‪” .‬ويتم احتساب الوقت من‬
‫بداية الحلقة‪.‬‬

‫ال يخضع الحد الزمني لالختبار إالّ في نهاية تسلسل الحلقة‪.‬‬


‫ويتم تنفيذ تسلسل الحلقة دائ ًما لمرة واحدة على األقل ولن تتابع الحلقة التكرار عائدة إلى‬
‫البداية إالّ إذا كان الوقت المنقضي في تلك اللحظة أقل من الوقت المحدد في ثانية‪.‬‬

‫مقارنة بيانات المستشعر بقيمة حدية‬


‫في األوضاع التي تتضمن الدخل و”قيمة الحد ”يكرر قالب ”الحركة الحلقية” تسلسل القوالب‬
‫داخل الحلقة إلى أن تصبح المقارنة الحدية ”صواب”‪ .‬على سبيل المثال‪ ،‬يمكنك إعداد الحلقة‬
‫للتكرار إلى أن يكتشف مستشعر األلوان قيمة شدة ضوء منعكس أقل من قيمة الحد التي‬
‫حددتها‪.‬‬
‫محدد الوضع‬
‫محدد المنفذ‬
‫الدخل ”نوع المقارنة”‬
‫الدخل ”قيمة الحد”‬

‫مزود بالدخل وقيمة الحد إذا كان الوضع يستخدم‬


‫استخدم محدد الوضع الختيار وضع مستشعر َّ‬
‫منفذًا؛ استخدم محدد المنفذ للتأكد من تطابق المنفذ مع منفذ وحدة البناء ‪ EV3‬المتصل بها‬
‫المستشعر أو المحرك‪.‬‬

‫اختر نوع المقارنة التي تريد استخدامه من قائمة نوع المقارنة ثم أدخل قيمة الحد ‪.‬‬

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

‫مثال‪:‬‬

‫يجعل هذا البرنامج الروبوت يتحرك إلى األمام أثناء تكرار ثالثة أصوات مختلفة‪ ،‬إلى أن‬
‫يكتشف مستشعر األلوان شدة ضوء منعكس أقل من ‪ ،50‬ومن ثم يتوقف الروبوت‪.‬‬
‫تتيح أوضاع المستشعرات التالية للحلقة مقارنة بيانات المستشعر بقيّم إدخال معينة‪ .‬تتكرر‬
‫الحلقة إلى أن تساوي بيانات المستشعر قيمة إدخال معينة‪.‬‬
‫ال يخضع المستشعر لالختبار إالّ في نهاية تسلسل الحلقة‪ .‬عند تطابق بيانات المستشعر مع‬
‫قيمة اإلدخال المحددة لفترة وجيزة فقط أثناء تنفيذ تسلسل الحلقة‪ ،‬قد ال تتوقف الحلقة‪.‬‬
‫استخدام الخرج العدد ‪.‬‬
‫يخبرك الخرج العدد الموجود عند بداية قالب الحركة الحلقية بعدد مرات تنفيذ تسلسل الحلقة‪.‬‬
‫يمكنك استخدام العدد داخل الحلقة لجعل تسلسل الحلقة يقوم بأمر مختلف في كل مرة من مرات‬
‫تكرار الحلقة‪.‬‬

‫يكون إخراج العدد ‪ 0‬أثناء المرة األولى خالل الحلقة‪ ،‬ثم يزيد بمقدار ‪ 1‬في كل مرة يتم تكرار‬
‫الحلقة فيها‪.‬‬
‫يتم إعادة توسيع قالب الحلقة تلقائيًا إلفساح المجال لقوالب البرمجة الجديدة التي تسحبها إلى‬
‫داخل القالب‪ .‬كما يمكنك تغيير حجم قالب الحلقة يدويًا عند الحاجة‪ .‬ولتغيير حجم حلقة‪ ،‬حدد‬
‫قالب الحركة الحلقية ‪ ،‬ثم اسحب مقابض تغيير الحجم التي تظهر حوله من الخارج‪.‬‬
‫مثال‪:‬‬

‫يتم تغيير حجم قالب الحلقة هذا إلفساح المجال أمام تسلسل قوالب ثان داخله‪.‬‬
‫المدخالت والمخرجات‬
‫تحليل مهمة تتبع الخط‬
‫أوال باستخدام حساس واحد ‪:‬‬

‫أوال يهمنا هنا التطرق الى نقطة هامة و هي أن حساس اللون سيقوم بقراءة دقيقة عندما يكون‬
‫على ارتفاع بين ‪ 1‬إلى ‪ 1.5‬سم عن الجسم الذي يتعرف على لونه و هنا عن الخط المرسوم‬
‫في األرض ‪.‬‬
‫ثانيا في حال استخدامنا للقراءة بالمقارنة مع االنعكاس سنحتاج لعمل معايرة للحساس كلما‬
‫غيرنا السطح الذي نعمل عليه سوف نحتاج لعمل معايره لتأكد من دقة الحساس‬
‫بعد توصيل الحساسات على لوحة البناء سوف نفتح قائمة ‪ port view‬و نختار الحساس و‬
‫نرى قيمة االنعكاس على الخط و قيمتها على اللون األبيض حيث تكون قيمة االنعكاس من ‪0‬‬
‫الى ‪.100‬‬
‫مثال ‪:‬‬

‫هنا عندما تكون قراءة الحساس اكبر من ‪ 50‬سيعتبر الروبوت نفسه على سطح ابيض و عندما‬
‫تكون القراءة اقل من ‪ 50‬سيعتبر نفسه على سطح اسود ‪.‬‬
‫المهمة األولى ‪:‬‬
‫ضع حساس اللون في مكان مناسب في جسم الروبوت ثم حول الخوازمية‬
‫السابقة الى برمجية في البيئة التطويرية للروبوت و تحقق من تنفيذها ‪.‬‬
‫الحل ‪ :‬الغي الحركة لالمام و اجعل بدال منها لف لليسار ستصبح حركة الروبوت‬
‫كالصورة التالية ‪:‬‬
‫و سيجد اللف الصحيح في كل مره اال ان حركته غير مرتبه‬

‫تتبع الخط باستخدام حساسين ‪:‬‬


‫إما أن يتتبع كال الحساسين طرفي الخط أو يتجنب كال الحساسين الخط‬

‫تمرين ‪:‬‬
‫بناء على الوضعيات الموضحه إكتب األمر المناسب لكل وضعية ‪.‬‬
‫خوارزمية مقترحة ‪:‬‬
‫التتبع بثالث حساسات‬

‫بنفس الطريقة السابقة حدد المهام المناسبة لكل وضعية ‪.‬‬


‫انتبه أن المسافة بين الحساسات و طبيعة المسار الذي سيمر عليه الروبوت تشكل‬
‫فارقا في العمل و البرمجة ‪.‬‬
‫بناء على المسافات البسيطة المقترحة في الصورة تعتبر هذه احدى الخوارزميات‬
‫التي يمكن اتباعها ‪.‬‬
‫( هل يمكنك التفكير بطريقة أخرى ؟)‬

‫اآلن هل يمكنك تركيب اربع حساسات لون و تحديد وضعياتها و وضع خوازمية‬
‫مناسبة لها لتحدي مسارات تتبع الخط المختلفة ؟؟؟؟؟‬
‫المراجع‬
‫تعليمات برنامج ‪.LEGO MINDISTORM EV3‬‬ ‫‪-1‬‬
‫دليل المستخدم لبرنامج ‪.LEGO MINDISTORM EV3‬‬ ‫‪-2‬‬
‫الدروس المتاحة عبر ‪.www.lego.com:‬‬ ‫‪-3‬‬
‫الدروس المتاحة عبر‪.ev32014.blogspot.com :‬‬ ‫‪-4‬‬
‫‪ -5‬ملخص تتبع الخط من شركة المواهب الوطنية ‪.‬‬

You might also like