المجموعة الأساسية EV3 من LEGO® MINDSTORMS® Education

اصنع سيارة ذاتية القيادة

صمم سيارة ذاتية الحركة تتبع أوامر القيادة التي يمليها المستخدم.

+120 دقيقة.
متوسط
الصفوف 9-12
roaming-vehicles-gps

خطة الدرس

الإعداد
- اقرأ مادة المعلم هذه جيدًا.
- عند الضرورة، خطط لدرس مستعينًا بمواد "الشروع في العمل" الموجودة في برنامج مختبر EV3 أو تطبيق برمجة EV3. وسيساعد ذلك على إلمام الطلاب بمجموعة LEGO® MINDSTORMS® Education EV3.

المشاركة (30 دقيقة)
- استعن بالأفكار الموجودة في قسم "إثارة مناقشة" أدناه لإشراك طلابك في مناقشة بشأن هذا الدرس.
- اشرح المشروع.
- قسّم الفصل إلى فرق من طالبين.
- امنح الطلاب وقتًا لطرح الأفكار وتبادلها.

الاستكشاف (30 دقيقة)
- اطلب من الطلاب إنشاء عدد من النماذج الأولية.
- شجعهم علي استكشاف كل من البناء والبرمجة.
- اطلب من كل فريق بناء حلين واختبارهما.

الشرح (60 دقيقة)
- اطلب من الطلاب اختبار حلولهم واختيار الأفضل من بينها.
- تأكد من أنهم يستطيعون إنشاء جداول الاختبار خاصتهم.
- اترك بعض الوقت حتى ينتهي كل فريق من مشروعه ويجمع الأصول لتوثيق عمله.

التوضيح (60 دقيقة)
- اترك لطلابك بعض الوقت لعمل تقاريرهم النهائية.
- يسِّر جلسة مشاركة حيث يعرض كل فريق نتائجه.

التقييم
- قدم الملاحظات عن أداء كل طالب.
- يمكنك الاستعانة بنماذج التقييم المتوفرة لتبسيط العملية.

إثارة مناقشة

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

roaming-vehicles-gps

شجع إجراء عملية عصف ذهني فعالة.
اطلب من طلابك التفكير في هذه الأسئلة:

  • ما السيارات الذاتية القيادة وكيف تعمل؟
  • من أين تحصل السيارات الذاتية القيادة علي الاتجاهات؟
  • ما الحركات التي يلزم السيارة أداؤها من أجل التنقل خلال سلسلة من شوارع المدينة على شبكة من الشمال والجنوب والشرق والغرب؟

امنح طلابك بعض الوقت للإجابة عن هذه الأسئلة:

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

الكود الزائف أداة رائعة لمساعدة الطلاب على تنظيم تفكيرهم قبل البدء في البرنامج.

نصائح البناء

ابدأ ببناء مركبة. يمكن للطلاب استخدام أيٍّ من نماذج قواعد القيادة الخاصة بمجموعة LEGO® MINDSTORMS® EV3 المقترحة أو تصميم نماذج خاصة بهم. تأكد من إمكانية الوصول السهل إلى الأزرار الموجودة أعلى وحدة بناء EV3. فهذه الأزرار ستستخدم للتوجيه في هذا النشاط.

ev3-robot-driving-base
عرض تعليمات البناء1.4 ميغابايت، PDF

نصائح البرمجة

اشرح لطلابك أنهم سيبرمجون الروبوت الخاص بهم للتحرك وفقًا لمجموعة من التعليمات المسجلة والمعطاة له من خلال الأزرار الموجودة على وحدة البناء EV3. استخدم هذه المعلمات:

  • بالضغط على الزر العلوي، يتحرك الروبوت إلى الأمام مسافة 30 سم.
  • بالضغط على الزر السفلي، يتحرك الروبوت إلى الخلف مسافة 30 سم.
  • بالضغط على الزر الأيسر، يدور الروبوت إلى اليسار بمقدار 90 درجة.
  • بالضغط على الزر الأيمن، يدور الروبوت إلى اليمين بمقدار 90 درجة.

سجل إجراءً واحدًا لجعل روبوت يتحرك

coding-08-01

شرح البرنامج

  1. شغِّل البرنامج.

  2. أنشيء قالب "متغير" باسم "Drive"

  3. انتظر حتى يتم ضغط زر ما في وحدة البناء.

  4. تشغيل الصوت "Click 2"

  5. سجل القيمة العددية للزر المضغوط في المتغير "Drive".

  6. انتظر مدة 2 ثانية.

  7. شغل الصوت "G02".

  8. اقرأ الرقم المخزن في المتغير "Drive" وأرسل القيمة إلى الجملة الشرطية (Switch).

  9. الجملة الشرطية (Switch) من النوع العددي:

    أ. إذا كان Drive = 0 (الحالة الافتراضية)، لا تفعل شيئًا.
    ب. إذا كان Drive = 1، اجعل الروبوت ينعطف يسارًا.
    ج. إذا كان Drive = 3، اجعل الروبوت ينعطف يمينًا.
    د. إذا كان Drive = 4، اجعل الروبوت يتحرك للأمام لدورتي عَجَل.
    هـ. إذا كان Drive = 5، اجعل الروبوت يتحرك للخلف لدورتي عَجَل.

  10. شغل الصوت "Game Over 2".

تسجيل إجراءات متعددة لجعل الروبوت يتحرك

يتم استخدام قالب "عمليات المصفوفة" لتخزين سلسلة من البيانات. غالبًا ما يتم وصفه كجدول يتكون من صف واحد مع أعمدة متعددة.

coding-08-02

شرح الحل

  1. شغِّل البرنامج.
  2. أنشيء قالب "متغير" باسم "Drive" اختر الخيار "كتابه في مصفوفة عددية".
  3. أنشئ حلقة تكرار. تم تعيين كود المثال على التشغيل 5 مرات.
  4. انتظر حتى يتم ضغط زر ما في وحدة البناء.
  5. شغل الصوت "Click".
  6. اقرأ قالب المتغير "Drive". اختر الخيار "قراءة مصفوفة عددية".
  7. استخدم قالب "عمليات المصفوفة". اختر "الكتابة عند الدليل - عددي".

أ. قم بتوصيل قالب المتغير "Drive".
ب. قم بتوصيل "دليل الحلقة" من مقدمة الحلقة إلى موقع الدليل في قالب "عمليات المصفوفة".
ج. قم بتوصيل القيمة من قالب "انتظار" زر EV3 إلى موقع القيمة في قالب "عمليات المصفوفة".

  1. اكتب خرج قالب "عمليات المصفوفة" في قالب المتغير "Drive".
  2. انتظر مدة 2 ثانية.
  3. شغل الصوت "Go".
  4. أنشئ حلقه ثانية. تم تعيين كود المثال على التشغيل 5 مرات، نفس عدد مرات تشغيل الحلقة الأولى.
  5. اقرأ قالب المتغير "Drive". اختر الخيار "قراءة مصفوفة عددية".
  6. استخدم قالب "عمليات المصفوفة". اختر خيار "القراءة عند الدليل - عددي".
  7. الجملة الشرطية (Switch) من النوع العددي:

أ. إذا كان Drive = 0 (الحالة الافتراضية)، لا تفعل شيئًا.
ب. إذا كان Drive = 1، اجعل الروبوت ينعطف يسارًا.
ج. إذا كان Drive = 3، اجعل الروبوت ينعطف يمينًا.
د. إذا كان Drive = 4، اجعل الروبوت يتحرك للأمام لدورتي عَجَل.
هـ. إذا كان Drive = 5، اجعل الروبوت يتحرك للخلف لدورتي عَجَل.

  1. شغل الصوت "Game Over 2".
تنزيل أمثلة برامج 32 كيلوبايت، يتطلب برنامج مختبر EV3

علامات التبويب "1" و"2"

حلول برنامج EV3 MicroPython

سجل إجراءً واحدًا لجعل روبوت يتحرك

#!/usr/bin/env pybricks-micropython

from pybricks import ev3brick as brick
from pybricks.ev3devices import Motor
from pybricks.parameters import Port, Stop, Button, SoundFile
from pybricks.tools import wait
from pybricks.robotics import DriveBase

# The Left, Right, Up, and Down Buttons are used to command the robot.
COMMAND_BUTTONS = (Button.LEFT, Button.RIGHT, Button.UP, Button.DOWN)

# Configure 2 motors with default settings on Ports B and C.  These
# will be the left and right motors of the Driving Base.
left_motor = Motor(Port.B)
right_motor = Motor(Port.C)

# The wheel diameter of the Robot Educator Driving Base is 56 mm.
wheel_diameter = 56

# The axle track is the distance between the centers of each of the
# wheels.  This is 118 mm for the Robot Educator Driving Base.
axle_track = 118

# The Driving Base is comprised of 2 motors.  There is a wheel on each
# motor.  The wheel diameter and axle track values are used to make the
# motors move at the correct speed when you give a drive command.
robot = DriveBase(left_motor, right_motor, wheel_diameter, axle_track)

# Wait until one of the command buttons is pressed.
while not any(b in brick.buttons() for b in COMMAND_BUTTONS):
    wait(10)

# Store the pressed button as the drive command.
drive_command = brick.buttons()[0]
brick.sound.file(SoundFile.CLICK)

# Wait 2 seconds and then play a sound to indicate that the robot is
# about to drive.
wait(2000)
brick.sound.file(SoundFile.GO)
wait(1000)

# Now drive the robot using the drive command.  Depending on which
# button was pressed, drive in a different way.

# The robot turns 90 degrees to the left.
if drive_command == Button.LEFT:
    robot.drive_time(100, -90, 1000) 

# The robot turns 90 degrees to the right.
elif drive_command == Button.RIGHT:
    robot.drive_time(100, 90, 1000)

# The robot drives straight forward 30 cm.
elif drive_command == Button.UP:
    robot.drive_time(100, 0, 3000) 
    
# The robot drives straight backward 30 cm.
elif drive_command == Button.DOWN:
    robot.drive_time(-100, 0, 3000)

# Play a sound to indicate that it is finished.
brick.sound.file(SoundFile.GAME_OVER)
wait(2000)

تسجيل إجراءات متعددة لجعل الروبوت يتحرك

#!/usr/bin/env pybricks-micropython

from pybricks import ev3brick as brick
from pybricks.ev3devices import Motor
from pybricks.parameters import Port, Stop, Button, SoundFile
from pybricks.tools import wait
from pybricks.robotics import DriveBase

# The Left, Right, Up, and Down Buttons are used to command the robot.
COMMAND_BUTTONS = (Button.LEFT, Button.RIGHT, Button.UP, Button.DOWN)

# Configure 2 motors with default settings on Ports B and C.  These
# will be the left and right motors of the Driving Base.
left_motor = Motor(Port.B)
right_motor = Motor(Port.C)

# The wheel diameter of the Robot Educator Driving Base is 56 mm.
wheel_diameter = 56

# The axle track is the distance between the centers of each of the
# wheels.  This is 118 mm for the Robot Educator Driving Base.
axle_track = 118

# The Driving Base is comprised of 2 motors.  There is a wheel on each
# motor.  The wheel diameter and axle track values are used to make the
# motors move at the correct speed when you give a drive command.
robot = DriveBase(left_motor, right_motor, wheel_diameter, axle_track)

# Pressing a button stores the command in a list.  The list is empty to
# start.  It will grow as commands are added to it.
drive_command_list = []

# This loop records the commands in the list.  It repeats until 5
# buttons have been pressed.  This is done by repeating the loop while
# the list contains less than 5 commands. 
while len(drive_command_list) < 5:
    # Wait until one of the command buttons is pressed.
    while not any(b in brick.buttons() for b in COMMAND_BUTTONS):
        wait(10)
    
    # Add the pressed button to the command list.
    drive_command_list.append(brick.buttons()[0])
    brick.sound.file(SoundFile.CLICK)

    # To avoid registering the same command again, wait until the Brick
    # Button is released before continuing.
    while any(brick.buttons()):
        wait(10)

# Wait 2 seconds and then play a sound to indicate that the robot is
# about to drive.
wait(2000)
brick.sound.file(SoundFile.GO)
wait(1000)

# Now drive the robot using the list of stored commands.  This is done
# by going over each command in the list in a loop.
for drive_command in drive_command_list:
    # The robot turns 90 degrees to the left.
    if drive_command == Button.LEFT:
        robot.drive_time(100, -90, 1000) 

    # The robot turns 90 degrees to the right.
    elif drive_command == Button.RIGHT:
        robot.drive_time(100, 90, 1000)

    # The robot drives straight forward 30 cm.
    elif drive_command == Button.UP:
        robot.drive_time(100, 0, 3000) 
        
    # The robot drives straight backward 30 cm.
    elif drive_command == Button.DOWN:
        robot.drive_time(-100, 0, 3000)

# Play a sound to indicate that it is finished.
brick.sound.file(SoundFile.GAME_OVER)
wait(2000)

الملحقات

ملحق فنون اللغة

الخيار 1
استخدام البرمجة النصية:

  • اطلب من الطلاب استكشاف حلول البرمجة النصية حتى يتمكنوا من مقارنة لغات البرمجة المختلفة.

الخيار 2
في هذا الدرس، أنشأ طلابك سيارة ذاتية القيادة تعمل وفقًا للتعليمات المعطاة لها في صفيف. ماذا لو كان من الممكن برمجة السيارات الذاتية القيادة المستقبلية لتجاوز مدخلات سائقيها البشريين؟
لإدماج تنمية مهارات فنون اللغة، اطلب من طلابك:

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

ملحق الرياضيات

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

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

فرص التقييم

القائمة المرجعية لملاحظات المعلم
أنشيء مقياسًا يناسب احتياجاتك، على سبيل المثال:

  1. منجز بصورة جزئية
  2. منجز بالكامل
  3. منجز بصورة تتجاوز الهدف المحدد

استعن بمعايير النجاح التالية لتقييم مدى تقدم طلابك:

  • يستطيع الطلاب تحديد العناصر الرئيسية في مشكلة ما.
  • يستطيع الطلاب العمل بشكلٍ مستقل لتطوير حل إبداعي وعملي.
  • يستطيع الطلاب توصيل أفكارهم بوضوح.

التقييم الذاتي
عقب قيام طلابك بجمع بعض بيانات الأداء، امنحهم الوقت للتفكير في حلولهم. ساعدهم من خلال طرح الأسئلة، مثل:

  • هل الحل الخاص بك يلبي معايير ملخص التصميم ؟
  • هل يمكن جعل حركة الروبوت خاصتك أكثر دقة؟
  • اذكر بعضًا من الطرق التي انتهجها الطلاب الآخرون في حل المشكلة؟

اطلب من طلابك التفكير في طريقتين لتحسين حلولهم وتوثيقهما.

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

الروابط المهنية

قد يرغب الطلاب الذين استمتعوا بهذا الدرس في استكشاف هذه المسارات المهنية:

  • التجارة والشؤون المالية (ريادة الأعمال)
  • التصنيع والهندسة (العلوم المؤهلة للهندسة)

دعم المعلم

سيقوم الطلاب بما يلي:
استخدام عملية التصميم لحل مشكله في العالم الحقيقي

UAE MOE AND Standards
(G9 2.2.3) - (G10 2.2.3)
Use research and analysis to solve design problems and understand how to reformulate problems given to them

UAE MOE AND Standards
(G11 2.3.1) - (G122.3.1)
Describe how pupils can create several design alternatives.

UAE MOE AND Standards
(G9 2.4.1) - (G10 2.4.1)
Generate and communicate their design through annotated sketches, detailed plans, 3-D and mathematical modelling, oral and digital presentations.

UAE MOE AND Standards
(G9 2.4.3)- (G10 2.4.3)
Evaluate their ideas and design plans against design criteria.

UAE MOE AND Standards
(G12 2.4.3)
Develop knowledge, understanding, and skills in managing resources and producing quality design solutions.

UAE MOE Evaluation Standards
Exploration (G9~12.4.1) - Assessment (G9~12.4.2) – Enhancement (G9~12.4.3) – Documentation (G9~12.4.4)

مادة الطالب

ورقة عمل الطالب

Download to view and share the student worksheet.

المشاركة مع:

غرفة درس Googleغرفة درس Google

LEGO, the LEGO logo, the Minifigure, DUPLO, the SPIKE logo, MINDSTORMS and the MINDSTORMS logo are trademarks and/or copyrights of the LEGO Group. ©2024 The LEGO Group. All rights reserved. Use of this site signifies your agreement to the terms of use.