📚 لينة إلى الأبد (Forever Loop)
المفاهيم الأساسية
لينة إلى الأبد (Forever): هي لينة تكرار الأوامر (Repeat Command) توجد في فئة تحكم، وتكرر اللبنات الموجودة بداخلها إلى الأبد.
خريطة المفاهيم
```markmap
مستشعرات المسافة
وظيفة المستشعرات في الروبوتات
- الإحساس بالبيئة المحيطة ومكوناتها
- قياس المسافات بين الروبوت والمكونات
- معالجة البيانات لإكمال المهمة المطلوبة
مستشعرات فيكس كود في آر (VEXcode VR)
- تمنح القدرة على برمجة روبوت الواقع الافتراضي
- تجعل الروبوت يتصرف مثل المركبة ذاتية القيادة
أنواع المستشعرات
- مستشعر الاصطدام (Bumper)
- مستشعر المسافة (Distance)
- مستشعر العين (Eye)
مقارنة الحواس البشرية بمستشعرات الروبوت
اللمس
- يقابله: مستشعر الاصطدام (Bumper)
الرؤية
- يقابلها: مستشعر المسافة (Distance) ومستشعر العين (Eye)
أجزاء الروبوت في الرسم التوضيحي
- مستشعر العين الأمامية (FrontEye)
- مستشعر المسافة (Distance)
- مستشعر الاصطدام الأيمن (BumperRight)
- مستشعر المغناطيس الكهربائي (Electromagnet)
- مستشعر العين السفلية (DownEye)
- مستشعر الاصطدام الأيسر (BumperLeft)
أنواع مستشعرات المسافة
مستشعر المسافة بالموجات فوق الصوتية
- المبدأ: إرسال موجات فوق صوتية وقياس انعكاسها
- التطبيقات:
- قياس منسوب المياه في الخزانات
- أنظمة السلامة المضادة للتصادم في السيارات
مستشعر المسافة بالليزر
- المبدأ: استخدام شعاع الليزر
- الدقة: من بضع ملليمترات إلى آلاف الأمتار
- التطبيقات:
- مراقبة الجودة
- المراقبة الصناعية (Process Monitoring)
- وضع المكونات بدقة في صناعة السيارات
#### تطبيقات الليزر (تركيزه على بقعة ضيقة)
- القطع بالليزر
- الطباعة الحجرية (Lithography)
- مسحات الباركود الضوئية (Barcode Scanners)
#### مستشعر المسافة لروبوت الواقع الافتراضي
- الموقع: الجزء الأمامي من الروبوت
- الوظيفة: توضيح المسافة بين الروبوت وأقرب كائن
- آلية العمل: حساب المسافة باستخدام وقت ارتداد ضوء الليزر
- نطاق الكشف:
- الكائنات القريبة
- الأشياء البعيدة والجدران في ملاعب فيكس كود في آر
- عند عدم وجود شيء: يبلغ عن مسافة أكبر من 3000 ملليمتر
لبنات فئة الاستشعار (Sensing)
وظيفتها
- تستخدم لبرمجة الواقع الافتراضي للتفاعل مع الشروط واتخاذ القرارات من المستشعرات
لبنات الفراسل (Reporter Blocks)
- شكلها: دائري أو سداسي
- لا يمكن استخدامها بمفردها
- تُستخدم داخل لبنات أخرى (مثل: التحكم، العمليات)
لبنات الفراسل المنطقية (Boolean Reporter)
- شكلها: سداسي
- تُستخدم لتكوين الشروط
- نتيجتها: صواب (True) أو خطأ (False)
أمثلة على لبنات الفراسل المنطقية
- القيامة تم عملها؟
- القائد مازال يتحرك؟
- مضغوط؟
- BumperLeft
- المسافة الأمامية
- وجدت كائنا؟
- العين الأمامية
- يمثل جسم قريب؟
- أحمر؟
لبنات مستشعر المسافات (Distance Sensing)
اللبنتان الأساسيتان
- لبنة المسافة الأمامية وجدت كائنا؟ (FrontDistance found an object?)
- لبنة المسافة الأمامية في ( ) (FrontDistance in ( ))
#### خصائص لبنة المسافة الأمامية في ( )
- تتيح اختيار وحدة قياس المسافة (mm أو Inches).
- ترجع قيماً رقمية (شكل بيضاوي).
- تُستخدم داخل لبنات أخرى مثل "الانتظار حتى ( )".
#### مثال تطبيقي باستخدام "الانتظار حتى ( )"
- الشرط: المسافة أقل من 100 ملليمتر.
- التأثير: توقف المقطع البرمجي مؤقتاً حتى يتحقق الشرط.
- مثال برمجي:
- عندما يبدأ
- تحرك إلى الأمام
- الانتظار حتى (المسافة الأمامية < 100 مم)
- أوقف القيادة
- النتيجة: يتوقف الروبوت على مسافة محددة (مثال: 79 مم) قبل الحاجز.
العلاقة بين مجال وزاوية المستشعر
- يمكن اكتشاف الكائنات البعيدة عندما تكون زاوية المجال قريبة من مركز شعاع الليزر
- المجال 10 درجات ← المدى 1000 ملليمتر
- المجال 5 درجات ← المدى 2000 ملليمتر
- المجال 2 درجة ← المدى أكبر من 2000 ملليمتر
تطبيق عملي للبنة "المسافة الأمامية وجدت كائنا؟"
مثال برمجي
- يتحرك الروبوت إلى الأمام حتى يكتشف مستشعر المسافة كائنًا (مثل جدار الملعب).
- عند اكتشاف الكائن، يتوقف الروبوت.
منطق التدفق (Flowchart)
- البداية
- تحرك إلى الأمام
- الانتظار حتى (المسافة الأمامية وجدت كائنا؟ = صواب)
- أوقف القيادة
- النهاية
وحدة المراقبة (Monitor Console)
- تتيح رؤية النتيجة التي ترجعها اللبنة (صواب أو خطأ).
- تظهر بيانات مثل:
- المسافة (مثال: 1829 مم)
- حالة المستشعر (Object: False)
- موقع الروبوت (X, Y)
لبنات التحكم (Control Blocks)
لينة إلى الأبد (Forever)
- النوع: لينة تكرار الأوامر (Repeat Command)
- الفئة: فئة التحكم
- الوظيفة: تكرار اللبنات الموجودة بداخلها إلى الأبد.
#### مثال 1: التوقف قبل الاصطدام بمعقل
- السيناريو: برمجة روبوت الواقع الافتراضي للتحرك نحو القلعة في ملعب القلعة المحطم (Castle Crasher).
- السلوك: يتحرك بالسرعة الافتراضية، وعندما تصبح المسافة من الروبوت إلى القلعة 50 ملليمتر، فإنه يتوقف عن الحركة.
- بيانات المحاكاة (Simulation View):
- موقع الروبوت: X: 0 mm, Y: -510 mm
- المسافة إلى الهدف: 261 mm
- مؤقت: 00:00:5
- حالة المستشعرات:
- العين الأمامية: Object: False, Color: None
- العين السفلية: Object: False, Color: None
- مستشعر الاصطدام: Left: False, Right: False
```
نقاط مهمة
- لينة "إلى الأبد" هي لبنة تحكم تستخدم للتكرار المستمر دون توقف.
- تُستخدم هذه اللبنة في برمجة الروبوتات لأداء مهام متكررة، مثل الحركة المستمرة مع مراقبة مستشعر.
- في المثال المطروح، يتم دمج فكرة التكرار (إلى الأبد) مع شرط من مستشعر المسافة (التوقف عند مسافة 50 مم).