📚 برمجة الروبوت ليتحرك باتباع الحائط
المفاهيم الأساسية
عناصر البرمجة الجديدة (My blocks): كتل برمجية مخصصة يمكن للمستخدم إنشاؤها لتقسيم المشروع إلى وحدات أصغر.
خريطة المفاهيم
```markmap
مستشعرات المسافة
لبنات التحكم (Control Blocks)
لبنة إلى الأبد (Forever)
- تكرار اللبنات الموجودة بداخلها إلى الأبد
لبنة إذا ثم آخر (If-Then-Else)
#### مثال تطبيقي: التوقف قبل الاصطدام
- الشرط: إذا (المسافة الأمامية < 50 مم)
- الإجراء: أوقف القيادة
- البديل (آخر): تحرك إلى الأمام
- النتيجة: يتوقف الروبوت لتجنب الاصطدام عندما تقل المسافة عن 50 مم
#### مثال تطبيقي: تناسب السرعة مع المسافة
- الشرط: إذا (المسافة الأمامية < 6 مم)
- الإجراء: أوقف القيادة
- البديل (آخر): تحرك للأمام بسرعة 50%
- النتيجة: يبطئ الروبوت لتجنب الاصطدام عندما تقل المسافة عن 6 مم
#### مثال تطبيقي: تجنب عائق متبوع بقرار الانعطاف
1. ينعطف الروبوت 90 درجة لليسار ويقيس المسافة (يخزنها في `Distance_to_left`).
2. ينعطف 180 درجة لليمين ويقيس المسافة (يخزنها في `Distance_to_right`).
3. يقارن بين قيمتي المسافة (`Distance_to_left` و `Distance_to_right`).
4. يقرر الانعطاف في الاتجاه الذي تكون فيه المسافة أكبر (أطول مسافة خالية).
- عناصر برمجة جديدة: المتغيرات، نظام الدفع، مغناطيس، العرض، الأحداث، التحكم، الاستشعار، العمليات.
عناصر برمجة جديدة
Turn 90 left or right
- يستخدم لجعل الروبوت يتحرك بشكل مستمر
- مثال: إذا كانت المسافة من الجدار الأيسر أقل من المسافة من الجدار الأيمن، ينعطف الروبوت إلى اليمين.
إنشاء عنصر
#### خطوات إنشاء كتلة "Follow the wall"
من فئة عناصر البرمجة الجديدة (My blocks)، اضغط على إنشاء عنصر (Make a block).
اضغط على العنصر الجديد واكتب اسمه "Follow the wall".
اضغط على موافق (OK) لتأكيد الإنشاء.
تعليق
#### الغرض
- جعل المقطع البرمجي مفهوماً
- المساعدة في صيانة أو تطوير الكود في المستقبل
#### طريقة الإضافة في فيكس كود في آر
من فئة التعليقات (Comments)، اسحب لبنة تعليق (comment).
ضعها قبل أمر اللبنة التي تريد شرحها.
اضغط على اللبنة واكتب النص التوضيحي (مثال: "يتحرك الروبوت إلى الأمام مسافة 200 ملليمتر.").
#### معلومة عامة
- في جميع لغات البرمجة، توجد رموز خاصة تسبق التعليقات.
- تخبر هذه الرموز المحول (Compiler) بتجاهل النص الذي يليها.
تطبيق
العلاقة بين السرعة والكبح
- كلما زادت سرعة الروبوت، تأخر في التوقف
بيانات المحاكاة (Simulation View)
- مثال: المسافة: 21 مم
- موقع الروبوت: X: 0 مم، Y: -270 مم
- حالة المستشعرات:
- العين الأمامية: Object: True
- العين السفلية: Object: False
- مستشعر الاصطدام: Left: False, Right: False
- مثال آخر: المسافة: 45 مم
- موقع الروبوت: X: 0 مم، Y: -294 مم
- حالة المستشعرات:
- العين الأمامية: Object: True
- العين السفلية: Object: False
- مستشعر الاصطدام: Left: False, Right: False
```
نقاط مهمة
- الهدف من الدرس هو برمجة الروبوت ليتحرك ويتبع حائط الملعب، مع الاستمرار في التحرك للأمام والانعطاف عند مواجهة العوائق.
- يتم تقسيم المشروع إلى وحدات أصغر باستخدام عناصر البرمجة الجديدة (My blocks).
- يتم إنشاء كتلة برمجية مخصصة باسم "Follow the wall" لتنفيذ مهمة اتباع الحائط.