الدرس 2: الانتقال إلى الأقراص التالية
انطلق إلى الأقراص الزرقاء
يحتوي المشروع السابق على روبوت الواقع الافتراضي ينعطف يمينًا عندما يكتشف مستشعر العين الأمامي قرصًا أخضر، مما أخذ روبوت الواقع الافتراضي عبر الخطوة الأولى في المتاهة. الآن، سنواصل البناء على المشروع حتى ينتقل روبوت الواقع الافتراضي إلى الأقراص الأربعة الأولى في ملعب متاهة القرص.
بالنظر إلى المكان الذي يواجهه روبوت الواقع الافتراضي بعد الانعطاف يمينًا عند القرص الأخضر،
يمكننا أن نرى أنه للانتقال إلى الأقراص الزرقاء الثلاثة التالية، يجب أن يتحرك روبوت الواقع
الافتراضي للأمام وينعطف يسارًا عند كل قرص أزرق. يمكننا استخدام نفس منطق
الحلقة بينما مع
الشرط وليس لجعل روبوت الواقع الافتراضي يستمر في القيادة
عبر المتاهة، ويتجه إلى اليسار عندما يكتشف قرصًا أزرق.
- أضف تعليقًا آخر أسفل TURN_FOR في المشروع الحالي لوصف السلوكيات التالية لروبوت الواقع الافتراضي. يجب أن يبدو مشروعك كما يلي:
def main ():
# Drive to 1st disk (green), turn right
while not front_eye.detect (GREEN): drivetrain.drive (
FORWARD)
wait(5, MSEC) drivetrain.turn_for
(RIGHT, 90, DEGREES)
# Drive to 2nd disk (blue), turn left
- أسفل التعليق الجديد، أضف حلقة أخرى while مع شرط عدم . اضبط الشرط على الأمر detect واضبط المعلمات على "BLUE"، لأن القرص التالي الذي سيواجهه روبوت الواقع الافتراضي سيكون باللون الأزرق.
# Drive to 2nd disk (blue), turn left
while notfront_eye.detect (BLUE):
wait(5, MSEC)
- داخل الحلقة بينما ، اسحب أو اكتب الأمر الذي لا يحتاج إلى انتظار drive.
# Drive to 2nd disk (blue), turn left
while notfront_eye.detect (BLUE):
drivetrain.drive(FORWARD)
wait(5, MSEC)
- اسحب أو اكتب turn_for ، واضبط المعلمات على الانعطاف يسارًا 90 درجة.
# Drive to 2nd disk (blue), turn left
while not front_eye.detect(BLUE):
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.turn_for(LEFT, 90, DEGREES)
- قم بتشغيل المشروع لمعرفة كيفية تحرك روبوت الواقع الافتراضي عبر ملعب متاهة القرص.
- لاحظ أن روبوت الواقع الافتراضي ينعطف يمينًا عندما يكتشف مستشعر العين الأمامي قرصًا أخضر، وينعطف يسارًا عندما يكتشف مستشعر العين الأمامي قرصًا أزرق.
- استمر في بناء هذا المشروع لدفع روبوت الواقع الافتراضي إلى قرصين أزرقين آخرين على ملعب متاهة القرص باستخدام مستشعر العين الأمامي. أضف أوامر إلى المشروع وانتقل بروبوت الواقع الافتراضي إلى القرصين التاليين ثم توقف. يجب أن يبدو مشروعك الكامل الآن كما يلي:
def main ():# Drive to
1st disk (green), turn right
while not front_eye.detect (GREEN): drivetrain.drive (
FORWARD)
wait(5, MSEC) drivetrain.turn_for
(RIGHT, 90, DEGREES
)# drive to 2nd disk (blue), turn left
while not front_eye.detect (BLUE): drivetrain.drive
(FORWARD)
wait(5, MSEC)
drivetrain.turn_for (LEFT, 90, DEGREES
)# drive to 3rd disk (blue), turn left
while not front_eye.detect (5,
msec) drivetrain.drive (FORWARD)
wait(5,
MSEC) drivetrain.turn_for (LEFT, 90, DEGREES
)# drive to 4th disk (blue)
, turntrain.detect (BLUE): drivetrain.drive
(FORWARD)
wait(5, MSEC) drivetrain.turn_for
(LEFT, 90, DEGREES)
تحديد نمط في حركات روبوت الواقع الافتراضي
الهدف من التنقل بنجاح في متاهة القرص باستخدام مستشعر العين الأمامي هو إنشاء نمط ثابت حيث يتحول روبوت الواقع الافتراضي إلى اليمين عندما يكتشف مستشعر العين الأمامي قرصًا أخضر، ويترك عندما يكتشف مستشعر العين الأمامي قرصًا أزرق. يمكن أن يساعدك تحديد أنماط كهذه في تبسيط مشاريعك أثناء نموها في التعقيد.

لمعلوماتك
لاحظ أن هناك نمطًا في تسلسل الأوامر في المشروع أيضًا. هناك سلسلة من الأوامر (للأقراص الزرقاء) تتكرر ثلاث مرات في المشروع. يمكن تكثيف هذا القسم من الكود باستخدام حلقة لـ . يقوم المشروع الموضح هنا بدمج تلك الحلقات الثلاث بينما المتعلقة بالأقراص الزرقاء في حلقة واحدة لـ.
def main ():
# Drive to 1st disk (green), turn right
while not front_eye.detect (GREEN): drivetrain.drive (
FORWARD)
wait(5, MSEC) drivetrain.turn_for
(RIGHT, 90, DEGREES)
# drive to the next 3 disks (blue), turn left
for value in range(3):
while not front_eye.detect (BLUE): drivetrain.drive
(FORWARD)
wait(5, MSEC)
drivetrain.turn_for(LEFT, 90, DEGREES)
إن استخدام حلقة لـ يمكن أن يجعل مشروعك أبسط وأسهل للقراءة، ولكنه يحتوي على الأوامر المتكررة داخل حلقة واحدة.
- افتح Disk Maze Playground إذا لم يكن مفتوحًا بالفعل، وقم بتشغيل المشروع.
-
شاهد روبوت الواقع الافتراضي ينتقل إلى أربعة أقراص في ملعب متاهة القرص.

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