Салом, Хабр! Мо аллакай дар бораи платформаи LEGO MINDSTORMS Education EV3. Ҳадафҳои асосии ин платформа омӯзиш тавассути мисолҳои амалӣ, рушди малакаҳои STEAM ва рушди тафаккури муҳандисӣ мебошанд. Онро барои корҳои лабораторӣ барои омӯзиши механика ва динамика истифода бурдан мумкин аст. Таҷҳизоти лабораторӣ аз хиштҳои LEGO сохташуда ва асбобҳои барои сабт ва коркарди маълумот таҷрибаҳоро боз ҳам ҷолибтар ва визуалӣ мегардонанд ва ба кӯдакон дар фаҳмидани физика кӯмак мекунанд. Масалан, донишҷӯён метавонанд маълумоти нуқтаи обшавиро ҷамъоварӣ кунанд ва барномаро истифода баранд, то онро ташкил ва дар график пешниҳод кунанд. Аммо ин танҳо ибтидо аст: имрӯз мо ба шумо мегӯям, ки чӣ гуна ин маҷмӯаро бо муҳити барномасозии MicroPython пурра кардан ва онро барои таълими робототехника истифода бурдан мумкин аст.

Бо истифода аз EV3 барномасозӣ омӯзед
Мактаббачагони муосир натиљањои рангин дидан мехоњанд. Бале, онҳо дилгир мешаванд, агар барнома рақамҳоро дар консол чоп кунад ва онҳо мехоҳанд ба графикҳои ранга, диаграммаҳо нигоҳ кунанд ва роботҳои воқеиро созанд, ки ҳаракат ва фармонҳоро иҷро мекунанд. Рамзи муқаррарӣ низ барои кӯдакон хеле мураккаб ба назар мерасад, аз ин рӯ беҳтар аст, ки омӯзишро бо чизи осонтар оғоз кунед.
Муҳити асосии барномасозии EV3 ба забони графикии LabVIEW асос ёфтааст ва ба шумо имкон медиҳад, ки алгоритмҳои роботро ба таври визуалӣ муайян кунед: фармонҳо дар шакли блокҳо пешниҳод карда мешаванд, ки онҳоро кашидан ва пайваст кардан мумкин аст.

Ин усул хуб кор мекунад, вақте ки шумо бояд нишон диҳед, ки чӣ гуна алгоритмҳо сохта мешаванд, аммо он барои барномаҳои дорои шумораи зиёди блокҳо мувофиқ нест. Вақте ки сенарияҳо мураккабтар мешаванд, ба барномасозӣ бо код гузаштан лозим аст, аммо ин қадам барои кӯдакон душвор аст.
Дар ин ҷо якчанд ҳилаҳо мавҷуданд, ки яке аз онҳо нишон додани он аст, ки код ҳамон блокҳоро иҷро мекунад. Дар муҳити EV3, ин тавассути ҳамгироии MicroPython имконпазир аст, аз ин рӯ кӯдакон метавонанд як барномаро ҳам дар муҳити барномасозии блоки асосӣ ва ҳам Python дар коди Visual Studio Microsoft эҷод кунанд. Онҳо мебинанд, ки ҳарду усул якхела кор мекунанд, аммо ҳалли масъалаҳои мураккаб бо истифода аз код қулайтар аст.
Гузариш ба MicroPython
Муҳити EV3 дар протсессори ARM9 сохта шудааст ва таҳиягарон дидаву дониста меъмориро кушода гузоштанд. Ин қарор имкон дод, ки нармафзори алтернативӣ паҳн карда шавад, ки яке аз онҳо тасвир барои кор бо MicroPython буд. Он ба шумо имкон медиҳад, ки Python-ро барои барномарезии EV3-и худ истифода баред ва маҷмӯаро ба вазифаҳои воқеии ҳаёт боз ҳам наздиктар созед.
Барои оғоз кардан, шумо бояд зеркашӣ кунед дар ягон корти microSD, онро дар микрокомпютери EV3 насб кунед ва онро фаъол созед. Пас шумо бояд насб кунед барои Visual Studio. Ва шумо метавонед ба кор шурӯъ кунед.
Барномасозии аввалин робот дар MycroPython

Дар бораи мо Барои аз худ кардани мафҳумҳои асосии робототехника якчанд дарсҳо мавҷуданд. Моделҳои EV3 кӯдаконро бо асосҳое шинос мекунанд, ки дар мошинҳои худгард, роботҳои васлкунии завод ва мошинҳои CNC истифода мешаванд.
Мо як мошини расмкаширо мисол мегирем, ки ба он кашидани нақшҳо ва шаклҳои геометриро омӯхтан мумкин аст. Ин парванда версияи соддакардашудаи роботҳои кафшер ё фрезери калонсолон мебошад ва нишон медиҳад, ки чӣ гуна EV3-ро дар якҷоягӣ бо MicroPython барои таълим ба мактаббачагон истифода бурдан мумкин аст. Ва мошини расмкашӣ метавонад сӯрохиҳоро дар тахтаи микросхемаҳои чопшуда барои падар қайд кунад, аммо ин сатҳи дигарест, ки математикаро талаб мекунад.
Барои кор ба мо лозим аст:
- LEGO MINDSTORMS Education EV3 Core Set;
- варақи калон варақи шашка;
- маркерҳои ранга.
Монтажи худи робот дар , ва мо як мисоли барномасозиро дида мебароем.
Аввалан мо китобхонаи модули 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 аввал интизор мешавад, ки сенсори ранг коғази сафед ё квадрати оғози кабудро муайян кунад ва сенсори ламс пахш карда шавад. Пас аз он ӯ намуна мекашад, ба мавқеи аввал бармегардад ва ҳама чизро такрор мекунад.
Вақте, ки дастгоҳ омода нест, 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 як воситаи роҳнамоии касб барои мансабҳои STEM ва нуқтаи воридшавӣ ба касбҳои муҳандисӣ мебошад. Азбаски он метавонад барои ҳалли масъалаҳои амалӣ истифода шавад, кӯдакон дар рушди техникӣ ва эҷоди роботҳои саноатӣ таҷриба мегиранд, тақлид кардани ҳолатҳои воқеӣ, фаҳмидани барномаҳо ва таҳлили алгоритмҳоро меомӯзанд ва конструксияҳои асосии барномасозиро азхуд мекунанд.
Дастгирии MicroPython платформаи EV3-ро барои таълими мактаби миёна мувофиқ месозад. Донишҷӯён метавонанд худро ҳамчун барномасоз бо яке аз маъмултарин забонҳои муосир санҷида, бо касбҳои марбут ба барномасозӣ ва тарҳрезии муҳандисӣ ошно шаванд. Маҷмӯаҳои EV3 нишон медиҳанд, ки рамзгузорӣ даҳшатнок нест, шуморо ба мушкилоти ҷиддии муҳандисӣ омода мекунад ва ба шумо барои гузоштани қадами аввал дар роҳи азхудкунии малакаҳои техникӣ кӯмак мекунад. Ва барои онҳое, ки дар мактаб кор мекунанд ва бо таълим алоқаманданд, мо омода кардем ва маводи таълимӣ. Онҳо ба таври муфассал тавсиф мекунанд, ки чӣ гуна малакаҳо ҳангоми иҷрои вазифаҳои муайян ташаккул меёбанд ва малакаҳои бадастомада ба стандартҳои таълим чӣ гуна алоқаманданд.
Манбаъ: will.com
