Здраво, Хабр! Већ о платформи ЛЕГО МИНДСТОРМС Едуцатион ЕВ3. Главни циљеви ове платформе су учење кроз практичне примере, развој СТЕАМ вештина и развој инжењерског начина размишљања. Може се користити за лабораторијске радове за проучавање механике и динамике. Лабораторијске клупе направљене од ЛЕГО коцкица и алати за снимање и обраду података чине експерименте још занимљивијим и визуелнијим и помажу деци да боље разумеју физику. На пример, ученици могу прикупити податке о тачки топљења и користити апликацију да их организују и представе у графикону. Али ово је само почетак: данас ћемо вам рећи како да допуните овај сет програмским окружењем МицроПитхон и користите га за подучавање роботике.

Научите програмирање користећи ЕВ3
Савремени школарци желе да виде шарене резултате. Да, досадно им је ако програм штампа бројеве на конзоли, и желе да гледају графиконе у боји, дијаграме и креирају праве роботе који се крећу и прате команде. Редовни код такође делује превише компликовано за децу, па је боље да почнете да учите са нечим лакшим.
Основно ЕВ3 програмско окружење је засновано на ЛабВИЕВ графичком језику и омогућава вам да визуелно одредите алгоритме за робота: команде су представљене у облику блокова који се могу превући и повезати.

Овај метод добро функционише када треба да покажете како се граде алгоритми, али није погодан за програме са великим бројем блокова. Како сценарији постају сложенији, неопходно је прећи на програмирање са кодом, али је деци тешко да предузму овај корак.
Овде постоји неколико трикова, од којих је један да покажете да код ради исту ствар као и блокови. У ЕВ3 окружењу, то је могуће кроз МицроПитхон интеграцију, тако да деца могу да креирају исти програм и у основном окружењу блок програмирања и у Питхон-у у Мицрософтовом Висуал Студио Цоде-у. Они виде да обе методе раде исто, али решавање сложених проблема коришћењем кода је практичније.
Прелазак на МицроПитхон
ЕВ3 окружење је изграђено на АРМ9 процесору, а програмери су намерно оставили отворену архитектуру. Ово решење је омогућило увођење алтернативног фирмвера, од којих је један био имиџ за рад са МицроПитхон-ом. Омогућава вам да користите Питхон за програмирање вашег ЕВ3, чиме се комплет још више приближава стварним задацима.
Да бисте започели, морате преузети на било коју мицроСД картицу, инсталирајте је у ЕВ3 микрорачунар и укључите је. Затим морате инсталирати за Висуал Студио. И можете почети да радите.
Програмирање првог робота у МицроПитхон-у

На нашем Постоји неколико лекција за савладавање основних појмова роботике. ЕВ3 модели упознају децу са основама које се користе у самовозећим аутомобилима, фабричким монтажним роботима и ЦНЦ машинама.
Узећемо пример машине за цртање, која се може научити да црта шаре и геометријске облике. Овај случај је поједностављена верзија робота за заваривање или глодање за одрасле и показује како се ЕВ3 може користити у комбинацији са МицроПитхон-ом за подучавање школараца. А машина за цртање може да означи рупе на штампаној плочи за тату, али то је други ниво који захтева математику.
За рад су нам потребни:
- Основни сет ЛЕГО МИНДСТОРМС Едуцатион ЕВ3;
- велики лист карираног папира;
- обојени маркери.
Монтажа самог робота је унутра , а ми ћемо погледати пример програмирања.
Прво иницијализујемо библиотеку ЕВ3 модула:
#!/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])
Конфигуришемо механизам за подизање за ручку као мотор у порту Ц:
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()
Сада долази главни део програма - бесконачна петља. ЕВ3 прво чека да сензор у боји открије бели папир или плави почетни квадрат и да се притисне сензор за додир. Затим црта шаблон, враћа се на почетну позицију и све поново понавља.
Када уређај није спреман, ЛЕД диоде на контролеру постају црвене и на ЛЦД екрану се приказује слика „палац доле“:
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>
Ово је једноставан програм који смо направили. А сада га покрећемо и гледамо робота за цртање у акцији.
Шта такви примери пружају?

ЕВ3 је алат за каријерно вођење за СТЕМ каријере и улазна тачка у инжењерске каријере. Пошто се може користити за решавање практичних задатака, деца стичу искуство у техничком развоју и стварању индустријских робота, уче да симулирају реалне ситуације, разумеју програме и анализирају алгоритме, савладавају основне програмске конструкције.
МицроПитхон подршка чини ЕВ3 платформу погодном за наставу у средњој школи. Ученици могу да се окушају као програмери на једном од најпопуларнијих савремених језика, и да се упознају са занимањима везаним за програмирање и инжењерски дизајн. ЕВ3 комплети показују да кодирање није страшно, припремају вас за озбиљне инжењерске изазове и помажу вам да направите први корак ка савладавању техничких вештина. А за оне који раде у школама и повезани су са образовањем, припремили смо и едукативни материјали. Они детаљно описују које се вештине развијају приликом обављања одређених задатака и како се стечене вештине односе на стандарде обуке.
Извор: ввв.хабр.цом
