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

اصنع نظام للتحكم في السرعة

تصميم نظام للتحكم في السرعة يستطيع تغيير سرعة السيارة بلمسه زر واحده.

+120 دقيقة.
متوسط
الصفوف 9-12
set-cruise-controle

خطة الدرس

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

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

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

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

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

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

إثارة مناقشة

وظيفة التحكم في السرعة في السيارات الخاصة عبارة عن نظام يتحكم تلقائيًا في سرعه السيارة. وحتى إن بدا هذا النظام وكأنه تقنية حديثة، إلا أنه تم تقديمه لأول مرة في عام 1958. إذن، كيف يعمل؟

set-cruise-controle

شجع إجراء عملية عصف ذهني فعالة.

اطلب من طلابك التفكير في هذه الأسئلة:

  • ما الغرض من نظام التحكم في السرعة الموجود في السيارة ؟
  • كيف يساعد نظام التحكم في السرعة السائق أثناء الرحلات الطويلة؟
  • كيف يمكن تحسين نظام التحكم في السرعة؟
  • كيف يمكن للسائق استخدام نظام التحكم في السرعة العامل بضغطة زر؟
  • ما العناصر التي ستحتاج إلى تضمينها في برنامجك لتحويل ضغطات الزر إلى تغييرات في سرعة المحرك؟

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

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

نصائح البناء

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

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

استخدام 2 من مستشعرات اللمس

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

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

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

والمتغير عبارة عن طريقه لتخزين القيم القابلة للتحديث في البرامج. يمكن الكتابة فوق القيمة المخزنة في متغير مرارًا وتكرارًا ما دام البرنامج قيد التشغيل.

زيادة السرعة بواسطة برنامج المتغير

coding-07-01

شرح البرنامج

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

  2. قم بإنشاء قالب "متغير" باسم "Speed" وأدخل القيمة 0.

  3. إذا تم الضغط على مستشعر اللمس:

    أ. اقرأ المتغير المسمى "Speed".
    ب. أضِف "10" إلى قيمه القراءة.
    ج. اكتب النتيجة في المتغير المسمى "Speed".
    د. اقرأ المتغير المسمى "Speed".
    هـ. ابدأ تشغيل المحركين B وC بسرعة مضبوطة على القيمة المخزنة في المتغير المسمى "Speed" وإلا (لا تفعل شيئًا).

  4. كرر الخطوات من 3أ إلى 3هـ بشكل دائم.

زيادة السرعة وخفضها بواسطة المتغير

coding-07-02

شرح البرنامج

  1. شغِّل البرنامج.
  2. أنشئ قالب "متغير" باسم "Speed"، أدخل القيمة 0 وابدأ مهمتين.

المهمة 1
3. إذا تم الضغط علي مستشعر اللمس 1:

أ. اقرأ المتغير المسمى "Speed".
ب. أضِف "10" إلى قيمه القراءة.
ج. اكتب النتيجة في المتغير المسمى "Speed".
د. اقرأ المتغير المسمى "Speed".
هـ. ابدأ تشغيل المحركين B وC بسرعة مضبوطة على القيمة المخزنة في المتغير المسمى "Speed" وإلا (لا تفعل شيئًا).
4. كرر الخطوات من 3أ إلى 3هـ بشكل دائم.

المهمة 2
5. إذا تم الضغط علي مستشعر اللمس 2:

أ. اقرأ المتغير المسمى "Speed".
ب. اطرح "10" من القيمة المقروءة.
ج. اكتب النتيجة في المتغير المسمى "Speed".
د. اقرأ المتغير المسمى "Speed".
هـ. ابدأ تشغيل المحركين B وC بسرعة مضبوطة على القيمة المخزنة في المتغير المسمى "Speed" وإلا (لا تفعل شيئًا).

  1. كرر الخطوات من 5أ إلى 5هـ بشكل دائم.

زيادة السرعة وخفضها بواسطة المتغير والعرض على الشاشة
اطلب من طلابك استخدام قالب "العرض" لعرض سرعة قاعدة القيادة على الشاشة.

coding-07-03

شرح البرنامج

  1. شغِّل البرنامج.
  2. أنشئ قالبَ "متغير" باسم "Speed" وأدخل القيمة 0 وابدأ ثلاث مهمات.

المهمة 1
3. ابدأ تشغيل القالب الخاص بي "تسارع".

المهمة 2
4. ابدأ تشغيل القالب الخاص بي "تباطؤ".

المهمة 3
5. اقرأ المتغير المسمى "Speed".
6. اعرض على الشاشة القيمة المخزنة في المتغير المسمى "Speed".
7. كرر الخطوتين 5 و6 بشكل دائم.

تنزيل أمثلة للبرامج15 كيلوبايت، يتطلب برنامج مختبر EV3

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

زيادة السرعة بواسطة المتغير

#!/usr/bin/env pybricks-micropython

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

# 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)

# Set up the Touch Sensor on Port 1.  It is used to increase the speed
# of the robot.
increase_touch_sensor = TouchSensor(Port.S1)

# Initialize the "old_speed" variable to "None."  It is used to check
# whether the speed variable has changed.  Setting it to "None" ensures
# this check will be "True" when the speed variable is initialized with
# a value.
old_speed = None

# Initialize the speed variable to 0.
speed = 0

# This is the main part of the program.  It is a loop that repeats
# endlessly.
while True:

    # Check whether the Touch Sensor is pressed, and increase the speed
    # variable by 10 mm per second if it is.
    if increase_touch_sensor.pressed():
        speed += 10
    
    # If the speed variable has changed, update the speed of the robot.
    if speed != old_speed:
        old_speed = speed
        robot.drive(speed, 0)

    # Wait 200 milliseconds before starting the loop again.
    wait(200)

زيادة السرعة وخفضها بواسطة المتغير

#!/usr/bin/env pybricks-micropython

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

# 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)

# Set up the Touch Sensor on Port 1.  It is used to increase the speed
# of the robot.
increase_touch_sensor = TouchSensor(Port.S1)

# Set up the Touch Sensor on Port 2.  It is used to decrease the speed
# of the robot.
decrease_touch_sensor = TouchSensor(Port.S2)

# Initialize the "old_speed" variable to "None."  It is used to check
# whether the speed variable has changed.  Setting it to "None" ensures
# this check will be "True" when the speed variable is initialized with
# a value.
old_speed = None

# Initialize the speed variable to 0.
speed = 0

# This is the main part of the program.  It is a loop that repeats
# endlessly.
#
# First, increase the speed variable if Touch Sensor 1 is pressed.
# Second, decrease the speed variable if Touch Sensor 2 is pressed.
# Finally, the robot updates its speed if the speed variable was
# changed.
#
# Then the loop starts over after a brief pause.
while True:

    # Check whether Touch Sensor 1 is pressed, and increase the speed
    # variable by 10 mm per second if it is.
    if increase_touch_sensor.pressed():
        speed += 10
    
    # Check whether Touch Sensor 2 is pressed, and decrease the speed
    # variable by 10 mm per second if it is.
    if decrease_touch_sensor.pressed():
        speed -= 10
    
    # If the speed variable has changed, update the speed of the robot.
    if speed != old_speed:
        old_speed = speed
        robot.drive(speed, 0)

    # Wait 200 milliseconds before starting the loop again.
    wait(200)

زيادة السرعة وخفضها بواسطة المتغير والعرض على الشاشة

#!/usr/bin/env pybricks-micropython

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

# 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)

# Set up the Touch Sensor on Port 1.  It is used to increase the speed
# of the robot.
increase_touch_sensor = TouchSensor(Port.S1)

# Set up the Touch Sensor on Port 2.  It is used to decrease the speed
# of the robot.
decrease_touch_sensor = TouchSensor(Port.S2)

# Initialize the "old_speed" variable to "None."  It is used to check
# whether the speed variable has changed.  Setting it to "None" ensures
# this check will be "True" when the speed variable is initialized with
# a value.
old_speed = None

# Initialize the speed variable to 0.
speed = 0

# This is the main part of the program.  It is a loop that repeats
# endlessly.
#
# First, increase the speed variable if Touch Sensor 1 is pressed.
# Second, decrease the speed variable if Touch Sensor 2 is pressed.
# Finally, the robot updates its speed if the speed variable was
# changed, and displays it on the screen.
#
# Then the loop starts over after a brief pause.
while True:

    # Check whether Touch Sensor 1 is pressed, and increase the speed
    # variable by 10 mm per second if it is.
    if increase_touch_sensor.pressed():
        speed += 10
    
    # Check whether Touch Sensor 2 is pressed, and decrease the speed
    # variable by 10 mm per second if it is.
    if decrease_touch_sensor.pressed():
        speed -= 10
    
    # If the speed variable has changed, update the speed of the robot
    # and display the new speed in the center of the screen.
    if speed != old_speed:
        old_speed = speed
        robot.drive(speed, 0)
        brick.display.clear()
        brick.display.text(speed, (85, 70))

    # Wait 200 milliseconds before starting the loop again.
    wait(200)

الملحقات

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

الخيار 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.