في الدرس السابق، تعلمت كيفية استخدام البيانات من المستشعر البصري في مشروع لفرز القرص حسب اللون. في هذا الدرس، سوف تبني على ما تعلمته لاستكشاف الخيارات في VEXcode التي تمكن المشروع من اتخاذ قرار بغض النظر عن اللون الذي يتم اكتشافه بواسطة المستشعر البصري. ستتعرف على:
- لماذا يعد تحسين عملية صنع القرار أمرًا مهمًا في بيئة صناعية.
- الفرق بين كتلتي If thenو If elseو Else if.
التحقق من الحالات المتعددة
في الدرس السابق، قمت بإنشاء مشروع يمكنه فرز قرص حسب اللون إلى منصة نقالة حمراء أو منصة نقالة خضراء. في حين أن هذا فعال، يمكن للمشروع فرز قرص واحد فقط في كل مرة. في إعدادات المصنع، تحتاج العديد من الأشياء إلى الفرز والتفريغ بشكل متكرر. من أجل القيام بذلك بشكل فعال، يجب أن يكون ذراع 6 محاور قادرًا على اتخاذ قرار متكرر بشأن كيفية تحريك الأشياء، أو إذا كانت هناك حاجة إلى تدخل بشري. ضع في اعتبارك المكعبات التي قمت بنقلها في مقدمة دورة الذراع المكونة من 6 محاور.
ماذا لو كان المكعب الأزرق في منطقة التحميل ؟ ماذا سيحدث في المشروع من الدرس السابق ؟ في بيئة صناعية، يجب النظر في جميع الظروف الممكنة. إذا تم خلط كائن خاطئ في الكائنات المراد فرزها، فمن المحتمل أن تكون هناك حاجة إلى تدخل بشري لضمان بقاء خلية العمل والعمال من حولها آمنين ويعملون بفعالية.
متسلسل إذا كان ثم كتل
في الدرس السابق، استخدمت كتلتي If ثم بالتسلسل للتحقق من شرطين منفصلين واحدًا تلو الآخر، وطرح سؤالين بشكل أساسي داخل المشروع.

أولاً، هل الكائن أحمر ؟، إذن، هل الكائن أخضر ؟. يتم فحص كل حالة في كل مرة يتم فيها تشغيل المشروع، بغض النظر عما يتم اكتشافه بواسطة المستشعر البصري. في حين أن هذه البنية مكنتك من فرز قرص واحد في كل مرة بشكل فعال، إلا أنها ليست الطريقة الأكثر فعالية للقيام بذلك. يمكن فرز القرص الأحمر، ولكن يمكن للمستشعر البصري أيضًا اكتشاف اللون الأخضر من شيء آخر في البيئة، والعكس صحيح. لا يوجد أيضًا أي اعتبار لجسم ليس أحمر أو أخضر، مثل جسم غير متوقع يمكن أن يسبب مشكلة في السلامة.
صور تدفق المشروع
طوال هذا الدرس، تتم مشاركة الصور التي تشرح تدفق مشاريع VEXcode. يمكنك إعادة إنشاء هذه الصور في دفتر ملاحظات الهندسة الخاص بك أثناء التنقل خلال الدرس.
استخدم الأدوات في Google Slides أو Microsoft PowerPoint مثل الأسهم أو المربعات أو المخططات الانسيابية للمساعدة في إنشاء تصورات تناسبك بشكل أفضل في دفتر ملاحظاتك.

متسلسل إذا كان الأمر كذلك، فقم بالكتل
هناك كتلة مختلفة يمكن استخدامها لتمكيننا من التحقق من الظروف الحمراء والخضراء ومراعاة لون مختلف. كتلة If else هي كتلة C التي تدير الكتل داخل فرع if أو الفرع الآخر، بناءً على القيمة المنطقية المبلغ عنها.

بعد تشغيل فرع if أو الفرع الآخر، سينتقل المشروع إلى الكتلة التالية في المكدس. يمكن أيضًا عرض تدفق المشروع لـ If then else blocks لجعل الفروع أكثر وضوحًا.

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

أظهرت الصور حتى الآن فقط كيفية التعامل مع حالة كون الكائن أحمر. آخر إذا كان هناك حاجة أخرى للتحقق من حالة الكائن الأخضر.

دعونا نفكر في تدفق المشروع مع هذا الهيكل. في كل مرة يتم فيها تشغيل المشروع، سيتم تشغيل فروع متعددة، بغض النظر عن اللون الذي يتم اكتشافه بواسطة المستشعر البصري.

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

بينما يمكننا الآن حساب كائن غير متوقع (مثل المكعب الأزرق)، إلا أن ذراع 6 محاور لن يصل أبدًا إلى نقطة في مشروع تحرير القرص على المنصة النقالة. بدلاً من التحقق من الشروط الحمراء والخضراء واحدة تلو الأخرى، هناك طريقة للتحقق مما إذا كان الكائن أخضر فقط إذا كان الكائن ليس أحمر.
متداخلة إذا كانت هناك كتل أخرى
يمكن لكل فرع من فروع كتلة If else قبول كتل C الأخرى داخلها. وهذا ما يسمى "التعشيش". هذا يعني أن كتلة If else الثانية يمكن أن تتداخل داخل الفرع الآخر من الأول، مثل هذا.
الآن سيتم فحص حالة المستشعر البصري الذي يكتشف اللون الأخضر فقط عندما تبلغ الحالة السابقة (يكتشف المستشعر البصري اللون الأحمر) على أنها خاطئة. لذلك عندما يكتشف المستشعر البصري اللون الأحمر، سيتم تشغيل أول فرع فقط، مما يحرك القرص فوق البليت الأحمر.

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

متداخلة إذا كان الأمر كذلك، فيمكن النظر إلى الكتل الأخرى على أنها قائمة متسلسلة من الأسئلة. فيما يلي الأسئلة:
- هل الكائن أحمر ؟
- نعم ؟ تحرك فوق البليت الأحمر وتوقف عن طرح الأسئلة.
- لا ؟ اطرح سؤالًا آخر.
- هل الكائن أخضر ؟
- نعم ؟ تحرك فوق المنصة الخضراء وتوقف عن طرح الأسئلة.
- لا ؟ ثم لا يكون الكائن أحمر أو أخضر. قم بتغيير ألوان برج الإشارة وقم بتشغيل إيقاف متحكم فيه.
- هل الكائن أخضر ؟
لاحظ أنه يتم طرح الأسئلة فقط إذا تمت الإجابة على السؤال السابق بالنفي.
بينما يتعامل هذا مع جميع الشروط التي نريد التحقق منها، هناك كتلة أخرى ستتحقق من الشروط بنفس الطريقة، ولكنها أسهل في البناء من كتل التعشيش.
وإلا إذا تم حظره
يمكّنك مكوِّن ELSE if من التحقق من شروط متعددة داخل المكوِّن نفسه. سيتم التحقق من كل شرط من الشروط الواردة في هذه الكتلة بالتتابع، فقط إذا تم الإبلاغ عن الحالة السابقة على أنها خاطئة. إذا كانت جميع الشروط المنطقية لـ SELF إذا كانت الفروع خاطئة، فسيتم تشغيل الكتل الموجودة داخل قسم SELF.

تحتوي هذه الكتلة على نفس تدفق المشروع مثل الكتل المتداخلة إذا كان الأمر كذلك، ولكن من الأسهل بناؤها لأنه لا توجد حاجة لتداخل الكتل. ستتعلم المزيد عن الترميز باستخدام ELSE إذا تم حظره في الدرس التالي.
تحقق من فهمك
قبل الانتقال إلى الدرس التالي، تأكد من فهمك للمفاهيم الواردة في هذا الدرس من خلال الإجابة على الأسئلة التالية في دفتر ملاحظاتك الهندسية.
تحقق من فهمك للأسئلة > (Google Doc / .docx / .pdf )
حدد التالي > لتطبيق كتلة ELSE if في مشروع.