مرحبًا حبر! نحن بالفعل حول منصة LEGO MINDSTORMS Education EV3. الأهداف الرئيسية لهذه المنصة هي التعلم من خلال الأمثلة العملية، وتطوير مهارات STEAM وتطوير العقلية الهندسية. ويمكن استخدامه للعمل المختبري لدراسة الميكانيكا والديناميكيات. مقاعد المختبر المصنوعة من طوب LEGO وأدوات مساعدة لتسجيل البيانات ومعالجتها تجعل التجارب أكثر إثارة للاهتمام ومرئية وتساعد الأطفال على فهم الفيزياء بشكل أفضل. على سبيل المثال، يمكن للطلاب جمع بيانات نقطة الانصهار واستخدام التطبيق لتنظيمها وتقديمها في رسم بياني. ولكن هذه مجرد البداية: سنخبرك اليوم بكيفية استكمال هذه المجموعة ببيئة برمجة MicroPython واستخدامها لتعليم الروبوتات.

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

تعمل هذه الطريقة بشكل جيد عندما تحتاج إلى إظهار كيفية إنشاء الخوارزميات، ولكنها غير مناسبة للبرامج التي تحتوي على عدد كبير من الكتل. عندما تصبح السيناريوهات أكثر تعقيدًا، فمن الضروري الانتقال إلى البرمجة باستخدام التعليمات البرمجية، ولكن يصعب على الأطفال القيام بهذه الخطوة.
هناك بعض الحيل هنا، إحداها هي إظهار أن الكود يفعل نفس الشيء مثل الكتل. في بيئة EV3، يكون هذا ممكنًا من خلال تكامل MicroPython، بحيث يمكن للأطفال إنشاء نفس البرنامج في كل من بيئة برمجة الكتل الأساسية وPython في Visual Studio Code من Microsoft. لقد رأوا أن كلتا الطريقتين تعملان بنفس الطريقة، لكن حل المشكلات المعقدة باستخدام التعليمات البرمجية يعد أكثر ملاءمة.
التحول إلى ميكروبايثون
تم بناء بيئة EV3 على معالج ARM9، وقد ترك المطورون البنية مفتوحة عمدًا. جعل هذا الحل من الممكن طرح البرامج الثابتة البديلة، والتي كانت إحداها صورة للعمل مع MicroPython. فهو يتيح لك استخدام لغة Python لبرمجة جهاز EV3 الخاص بك، مما يجعل المجموعة أقرب إلى مهام الحياة الواقعية.
للبدء، تحتاج إلى تحميل على أي بطاقة microSD، قم بتثبيتها في الكمبيوتر الصغير EV3 وقم بتشغيلها. ثم تحتاج إلى التثبيت للاستوديو المرئي. ويمكنك البدء في العمل.
برمجة أول روبوت في MycroPython

على موقعنا هناك العديد من الدروس لإتقان المفاهيم الأساسية للروبوتات. تعرّف نماذج EV3 الأطفال على الأساسيات المستخدمة في السيارات ذاتية القيادة، وروبوتات تجميع المصانع، وآلات CNC.
سنأخذ كمثال آلة الرسم، التي يمكن تعليمها رسم الأنماط والأشكال الهندسية. هذه الحالة عبارة عن نسخة مبسطة من روبوتات اللحام أو الطحن البالغة، وتوضح كيف يمكن استخدام EV3 جنبًا إلى جنب مع MicroPython لتعليم أطفال المدارس. ويمكن لآلة الرسم تحديد الثقوب في لوحة الدوائر المطبوعة للأب، ولكن هذا مستوى آخر يتطلب الرياضيات.
للعمل ، نحتاج إلى:
- مجموعة LEGO MINDSTORMS Education EV3 الأساسية؛
- ورقة كبيرة من الورق متقلب.
- علامات ملونة.
تجميع الروبوت نفسه موجود ، وسننظر في مثال برمجي.
نقوم أولاً بتهيئة مكتبة وحدة EV3:
#!/usr/bin/env pybricks-micropython
from pybricks import ev3brick as brick
from pybricks.ev3devices import (Motor, TouchSensor, ColorSensor, GyroSensor)
from pybricks.parameters import Port, Stop, Direction, Color, ImageFile
from pybricks.tools import wait
قمنا بإعداد منصة تقوم بتدوير المقبض مثل المحرك في المنفذ B. قمنا بتعيين نسبة التروس لقطار تروس ذي مرحلتين بعدد أسنان 20-12-28 على التوالي.
turntable_motor = Motor(Port.B, Direction.CLOCKWISE, [20, 12, 28])
نقوم بتكوين آلية الرفع للمقبض كمحرك في المنفذ C:
seesaw_motor = Motor(Port.C)
نقوم بتكوين الجيروسكوب الذي يقيس زاوية ميل المقبض في المنفذ 2:
gyro_sensor = GyroSensor(Port.S2)
نقوم بتكوين مستشعر الألوان في المنفذ 3. يتم استخدام المستشعر للكشف عن الورق الأبيض أسفل آلة الرسم:
color_sensor = ColorSensor(Port.S3)
نقوم بتكوين مستشعر اللمس في المنفذ 4. يبدأ الروبوت في الرسم عند الضغط على المستشعر:
touch_sensor = TouchSensor(Port.S4)
نحدد الوظائف التي ترفع وتخفض المقبض:
def pen_holder_raise():
seesaw_motor.run_target(50, 25, Stop.HOLD)
wait(1000)
def pen_holder_lower():
seesaw_motor.run_target(50, 0, Stop.HOLD)
wait(1000)
نحدد وظيفة لتدوير المقبض إلى زاوية معينة أو إلى زاوية معينة:
def pen_holder_turn_to(target_angle):
if target_angle > gyro_sensor.angle():
إذا كانت زاوية الهدف أكبر من زاوية مستشعر الجيروسكوب الحالية، فاستمر في اتجاه عقارب الساعة بسرعة موجبة:
turntable_motor.run(70)
while gyro_sensor.angle() < target_angle:
pass
elif target_angle < gyro_sensor.angle():
إذا كانت زاوية الهدف أقل من مستشعر الجيروسكوب الحالي، فتحرك عكس اتجاه عقارب الساعة:
turntable_motor.run(-70)
while gyro_sensor.angle() > target_angle:
pass
أوقف المنصة الدوارة عند الوصول إلى الزاوية المستهدفة:
turntable_motor.stop(Stop.BRAKE)
اضبط الموضع الأولي للمقبض في الموضع العلوي:
pen_holder_raise()
الآن يأتي الجزء الرئيسي من البرنامج - حلقة لا نهاية لها. ينتظر EV3 أولاً حتى يكتشف مستشعر الألوان ورقة بيضاء أو مربع بداية أزرق ثم يتم الضغط على مستشعر اللمس. ثم يرسم نمطا، ويعود إلى وضع البداية ويكرر كل شيء مرة أخرى.
عندما لا يكون الجهاز جاهزًا، تتحول مؤشرات LED الموجودة على وحدة التحكم إلى اللون الأحمر ويتم عرض صورة "ممتاز" على شاشة LCD:
while True:
brick.light(Color.RED)
brick.display.image(ImageFile.THUMBS_DOWN)
ننتظر حتى يقوم مستشعر اللون باحتساب اللون الأزرق أو الأبيض، ونضبط لون LED على اللون الأخضر، ونعرض صورة "ممتاز" على شاشة LCD ونبلغ أن الجهاز جاهز للاستخدام:
while color_sensor.color() not in (Color.BLUE, Color.WHITE):
wait(10)
brick.light(Color.GREEN)
brick.display.image(ImageFile.THUMBS_UP)
ننتظر حتى يتم الضغط على مستشعر اللمس، ونقوم بتعيين قيمة الزاوية 0 لمستشعر الجيروسكوب ونبدأ في الرسم:
while not touch_sensor.pressed():
wait(10)
gyro_sensor.reset_angle(0)
pen_holder_turn_to(15)
pen_holder_lower()
pen_holder_turn_to(30)
pen_holder_raise()
pen_holder_turn_to(45)
pen_holder_lower()
pen_holder_turn_to(60)
ارفع حامل القلم وأعده إلى موضعه الأصلي:
pen_holder_raise()
pen_holder_turn_to(0)</i>
هذا هو البرنامج البسيط الذي قمنا بإنشائه. والآن نطلقه وننظر إلى روبوت الصياغة وهو يعمل.
ماذا تقدم هذه الأمثلة؟

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