LEGO MINDSTORMS Education EV3 + MicroPython: ересектер тілінде балалар құрастыру жинағын бағдарламалау

Сәлем, Хабр! Біз қазірдің өзінде деді LEGO MINDSTORMS Education EV3 платформасы туралы. Бұл платформаның негізгі мақсаттары практикалық мысалдар арқылы білім алу, STEAM дағдыларын дамыту және инженерлік ойлау жүйесін дамыту болып табылады. Оны механика мен динамиканы зерттеу үшін зертханалық жұмыстарға қолдануға болады. LEGO кірпішінен жасалған зертханалық орындықтар және деректерді жазу және өңдеуге арналған утилиталар эксперименттерді одан да қызықты және көрнекі етеді және балаларға физиканы жақсы түсінуге көмектеседі. Мысалы, студенттер балқу нүктесі туралы деректерді жинап, оны жүйелеу және графикте көрсету үшін қолданбаны пайдалана алады. Бірақ бұл тек бастамасы: бүгін біз бұл жинақты MicroPython бағдарламалау ортасымен толықтырып, оны робототехниканы үйрету үшін қалай пайдалану керектігін айтамыз.

LEGO MINDSTORMS Education EV3 + MicroPython: ересектер тілінде балалар құрастыру жинағын бағдарламалау

EV3 арқылы бағдарламалауды үйреніңіз

Қазіргі мектеп оқушылары түрлі-түсті нәтижелерді көргісі келеді. Иә, егер бағдарлама сандарды консольге басып шығарса, олар жалықтырады және олар түсті графиктерді, диаграммаларды қарап, қозғалатын және командаларды орындайтын нақты роботтарды жасағысы келеді. Кәдімгі код балалар үшін де тым күрделі болып көрінеді, сондықтан үйренуді оңайырақ нәрседен бастаған дұрыс.

Негізгі EV3 бағдарламалау ортасы LabVIEW графикалық тіліне негізделген және роботқа арналған алгоритмдерді көрнекі түрде көрсетуге мүмкіндік береді: командалар сүйреп апаруға және қосуға болатын блоктар түрінде ұсынылған.

LEGO MINDSTORMS Education EV3 + MicroPython: ересектер тілінде балалар құрастыру жинағын бағдарламалау

Бұл әдіс алгоритмдердің қалай құрастырылғанын көрсету қажет болғанда жақсы жұмыс істейді, бірақ ол блоктар саны көп бағдарламаларға жарамайды. Сценарийлер күрделене түскен сайын кодпен бағдарламалауға көшу қажет, бірақ бұл қадам балаларға қиынға соғады. 

Мұнда бірнеше трюк бар, олардың бірі код блоктармен бірдей нәрсені жасайтынын көрсету. EV3 ортасында бұл MicroPython интеграциясы арқылы мүмкін болады, сондықтан балалар бірдей бағдарламаны негізгі блоктық бағдарламалау ортасында да, Microsoft Visual Studio кодындағы Python тілінде де жасай алады. Олар екі әдістің де бірдей жұмыс істейтінін көреді, бірақ кодты пайдаланып күрделі мәселелерді шешу ыңғайлырақ.

MicroPython бағдарламасына ауысу

EV3 ортасы ARM9 процессорында құрастырылған және әзірлеушілер архитектураны әдейі ашық қалдырған. Бұл шешім баламалы микробағдарламаны шығаруға мүмкіндік берді, олардың бірі MicroPython-мен жұмыс істеуге арналған кескін болды. Ол EV3-ті бағдарламалау үшін Python-ды пайдалануға мүмкіндік береді, бұл жинақты шынайы өмірдегі тапсырмаларға жақындатады. 

Бастау үшін жүктеп алу керек EV3 MicroPython кескіні кез келген microSD картасына оны EV3 микрокомпьютеріне орнатып, қосыңыз. Содан кейін орнату керек тегін кеңейтім Visual Studio үшін. Ал сіз жұмысқа кірісе аласыз. 

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

Біз В портындағы қозғалтқыш сияқты тұтқаны айналдыратын платформаны орнаттық. Біз екі сатылы беріліс пойызының беріліс қатынасын сәйкесінше 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 алдымен түс сенсорының ақ қағазды немесе көк бастапқы шаршыны анықтауын және сенсорлық сенсордың басылуын күтеді. Содан кейін ол үлгіні салады, бастапқы қалыпқа оралады және бәрін қайтадан қайталайды.

Құрылғы дайын болмаған кезде контроллердегі жарық диодтары қызыл болып жанады және СКД экранында «бас бармақ» кескіні көрсетіледі:

while True:
  brick.light(Color.RED)
  brick.display.image(ImageFile.THUMBS_DOWN)

Түс сенсоры көк немесе ақ болып есептелгенше күтеміз, жарық диодты түсін жасылға орнатамыз, СКД экранында «жоғары» суретті көрсетіп, құрылғының пайдалануға дайын екендігі туралы хабарлаймыз:

  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