LEGO MINDSTORMS Education EV3 + MicroPython: برنامه نویسی مجموعه ساخت و ساز کودکان به زبان بزرگسالان

سلام، هابر! ما قبلا گفت: درباره پلتفرم LEGO MINDSTORMS Education EV3. اهداف اصلی این پلتفرم یادگیری از طریق مثال های عملی، توسعه مهارت های STEAM و توسعه ذهنیت مهندسی است. می توان از آن برای کارهای آزمایشگاهی برای مطالعه مکانیک و دینامیک استفاده کرد. نیمکت‌های آزمایشگاهی ساخته شده از آجرهای لگو و ابزارهای کاربردی برای ضبط و پردازش داده‌ها، آزمایش‌ها را جالب‌تر و بصری‌تر می‌کنند و به کودکان کمک می‌کنند تا فیزیک را بهتر درک کنند. برای مثال، دانش‌آموزان می‌توانند داده‌های نقطه ذوب را جمع‌آوری کنند و از برنامه برای سازماندهی و ارائه آن در نمودار استفاده کنند. اما این تازه شروع کار است: امروز به شما خواهیم گفت که چگونه این مجموعه را با محیط برنامه نویسی MicroPython تکمیل کنید و از آن برای آموزش رباتیک استفاده کنید.

LEGO MINDSTORMS Education EV3 + MicroPython: برنامه نویسی مجموعه ساخت و ساز کودکان به زبان بزرگسالان

آموزش برنامه نویسی با استفاده از EV3

دانش آموزان مدرن می خواهند نتایج رنگارنگی را ببینند. بله، اگر برنامه اعداد را روی کنسول چاپ کند حوصله شان سر می رود و می خواهند به نمودارهای رنگی، نمودارها نگاه کنند و ربات های واقعی بسازند که حرکت می کنند و دستورات را دنبال می کنند. کد معمولی نیز برای کودکان بسیار پیچیده به نظر می رسد، بنابراین بهتر است یادگیری را با چیزی ساده تر شروع کنید.

محیط اصلی برنامه نویسی EV3 بر اساس زبان گرافیکی LabVIEW است و به شما امکان می دهد الگوریتم هایی را برای ربات به صورت بصری مشخص کنید: دستورات به شکل بلوک هایی ارائه می شوند که می توانند کشیده و متصل شوند.

LEGO MINDSTORMS Education EV3 + MicroPython: برنامه نویسی مجموعه ساخت و ساز کودکان به زبان بزرگسالان

این روش زمانی که باید نحوه ساخت الگوریتم ها را نشان دهید به خوبی کار می کند، اما برای برنامه هایی با تعداد بلوک های زیاد مناسب نیست. با پیچیده تر شدن سناریوها، باید به سمت برنامه نویسی با کد حرکت کرد، اما برداشتن این مرحله برای کودکان دشوار است. 

در اینجا چند ترفند وجود دارد، یکی از آنها نشان دادن این است که کد همان کار بلوک ها را انجام می دهد. در محیط EV3، این کار از طریق ادغام MicroPython امکان پذیر است، بنابراین بچه ها می توانند برنامه یکسانی را هم در محیط برنامه نویسی بلوک اصلی و هم در Python در کد ویژوال استودیو مایکروسافت ایجاد کنند. آنها می بینند که هر دو روش یکسان کار می کنند، اما حل مسائل پیچیده با استفاده از کد راحت تر است.

تغییر به MicroPython

محیط EV3 بر روی یک پردازنده ARM9 ساخته شده است و توسعه دهندگان عمدا معماری را باز گذاشته اند. این راه حل امکان عرضه سیستم عامل جایگزین را فراهم کرد که یکی از آنها تصویری برای کار با MicroPython بود. این به شما امکان می دهد از پایتون برای برنامه ریزی EV3 خود استفاده کنید و این کیت را حتی به وظایف واقعی نزدیک تر می کند. 

برای شروع، باید دانلود کنید تصویر EV3 MicroPython روی هر کارت microSD، آن را در میکرو کامپیوتر EV3 نصب کرده و روشن کنید. سپس باید نصب کنید پسوند رایگان برای ویژوال استودیو و می توانید شروع به کار کنید. 

برنامه نویسی اولین ربات در MycroPython

LEGO MINDSTORMS Education EV3 + MicroPython: برنامه نویسی مجموعه ساخت و ساز کودکان به زبان بزرگسالان

بر روی ... ما کاربران آنلاین حاضر در سایت " چندین درس برای تسلط بر مفاهیم اولیه رباتیک وجود دارد. مدل های 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>

این برنامه ساده ای است که ما ایجاد کرده ایم. و اکنون آن را راه اندازی می کنیم و به ربات پیش نویس در عمل نگاه می کنیم. 

چنین مثال هایی چه چیزی را ارائه می دهند؟

LEGO MINDSTORMS Education EV3 + MicroPython: برنامه نویسی مجموعه ساخت و ساز کودکان به زبان بزرگسالان

EV3 یک ابزار راهنمایی شغلی برای مشاغل STEM و نقطه ورود به مشاغل مهندسی است. از آنجایی که می توان از آن برای حل مسائل عملی استفاده کرد، کودکان در توسعه فنی و ایجاد ربات های صنعتی تجربه کسب می کنند، شبیه سازی موقعیت های واقعی، درک برنامه ها و تجزیه و تحلیل الگوریتم ها و تسلط بر ساختارهای برنامه نویسی اولیه را یاد می گیرند.

پشتیبانی MicroPython پلت فرم EV3 را برای تدریس در دبیرستان مناسب می کند. دانشجویان می توانند خود را به عنوان برنامه نویس در یکی از محبوب ترین زبان های مدرن امتحان کنند و با حرفه های مرتبط با برنامه نویسی و طراحی مهندسی آشنا شوند. کیت‌های EV3 نشان می‌دهند که کدنویسی ترسناک نیست، شما را برای چالش‌های مهندسی جدی آماده می‌کند و به شما کمک می‌کند اولین گام را برای تسلط بر مهارت‌های فنی بردارید. و برای کسانی که در مدارس کار می کنند و با آموزش و پرورش در ارتباط هستند را آماده کرده ایم برنامه های درسی و مواد آموزشی آنها به تفصیل توضیح می دهند که چه مهارت هایی در هنگام انجام وظایف خاص ایجاد می شود و چگونه مهارت های کسب شده با استانداردهای آموزشی مرتبط است.

منبع: www.habr.com

خرید هاست قابل اعتماد برای سایت های دارای حفاظت DDoS، سرورهای VPS VDS 🔥 خرید هاستینگ معتبر با محافظت در برابر حملات DDoS، سرورهای VPS و VDS | ProHoster