Բարև, Հաբր: Մենք արդեն LEGO MINDSTORMS Education EV3 հարթակի մասին: Այս հարթակի հիմնական նպատակներն են սովորել գործնական օրինակների միջոցով, զարգացնել STEAM հմտությունները և զարգացնել ինժեներական մտածելակերպը: Այն կարող է օգտագործվել լաբորատոր աշխատանքների համար՝ մեխանիկայի և դինամիկան ուսումնասիրելու համար: Լեգո աղյուսներից պատրաստված լաբորատոր նստարանները և տվյալների ձայնագրման և մշակման համար նախատեսված օգտակար սարքերը փորձերն ավելի հետաքրքիր և տեսողական են դարձնում և օգնում երեխաներին ավելի լավ հասկանալ ֆիզիկան: Օրինակ՝ ուսանողները կարող են հավաքել հալման կետի տվյալներ և օգտագործել հավելվածը՝ դրանք կազմակերպելու և գրաֆիկով ներկայացնելու համար: Բայց սա դեռ սկիզբն է. այսօր մենք ձեզ կասենք, թե ինչպես լրացնել այս հավաքածուն MicroPython ծրագրավորման միջավայրով և օգտագործել այն ռոբոտաշինություն սովորեցնելու համար:

Սովորեք ծրագրավորում՝ օգտագործելով EV3
Ժամանակակից դպրոցականները ցանկանում են տեսնել գունեղ արդյունքներ։ Այո, նրանք ձանձրանում են, եթե ծրագիրը թվեր է տպում վահանակի վրա, և նրանք ցանկանում են նայել գունավոր գրաֆիկներին, դիագրամներին և ստեղծել իրական ռոբոտներ, որոնք շարժվում և հետևում են հրամաններին: Սովորական ծածկագիրը նույնպես չափազանց բարդ է թվում երեխաների համար, ուստի ավելի լավ է սկսել սովորել ավելի հեշտ բանով:
Հիմնական EV3 ծրագրավորման միջավայրը հիմնված է LabVIEW գրաֆիկական լեզվի վրա և թույլ է տալիս տեսողականորեն նշել ալգորիթմներ ռոբոտի համար. հրամանները ներկայացված են բլոկների տեսքով, որոնք կարելի է քաշել և միացնել:

Այս մեթոդը լավ է աշխատում, երբ պետք է ցույց տալ, թե ինչպես են կառուցվում ալգորիթմները, սակայն այն հարմար չէ մեծ թվով բլոկներ ունեցող ծրագրերի համար։ Քանի որ սցենարներն ավելի բարդ են դառնում, անհրաժեշտ է անցնել կոդով ծրագրավորմանը, սակայն այս քայլը դժվար է երեխաների համար:
Այստեղ կան մի քանի հնարքներ, որոնցից մեկն այն է, որ ցույց տան, որ կոդը անում է նույն բանը, ինչ բլոկները: EV3 միջավայրում դա հնարավոր է MicroPython-ի ինտեգրման միջոցով, այնպես որ երեխաները կարող են ստեղծել նույն ծրագիրը ինչպես հիմնական բլոկային ծրագրավորման միջավայրում, այնպես էլ Python-ում՝ Microsoft-ի Visual Studio Code-ում: Նրանք տեսնում են, որ երկու մեթոդներն էլ նույնն են աշխատում, բայց կոդի միջոցով բարդ խնդիրներ լուծելն ավելի հարմար է։
Անցում MicroPython-ին
EV3 միջավայրը կառուցված է ARM9 պրոցեսորի վրա, և մշակողները միտումնավոր բաց են թողել ճարտարապետությունը։ Այս լուծումը հնարավորություն տվեց դուրս բերել այլընտրանքային որոնվածը, որոնցից մեկը MicroPython-ի հետ աշխատելու պատկերն էր: Այն թույլ է տալիս օգտագործել Python-ը ձեր EV3-ը ծրագրավորելու համար՝ հանդերձանքն էլ ավելի մոտեցնելով իրական կյանքի առաջադրանքներին:
Սկսելու համար դուք պետք է ներբեռնեք ցանկացած microSD քարտի վրա, տեղադրեք այն EV3 միկրոհամակարգչում և միացրեք այն: Ապա դուք պետք է տեղադրել Visual Studio-ի համար: Եվ դուք կարող եք սկսել աշխատել:
Առաջին ռոբոտի ծրագրավորում MycroPython-ում

Մեր վրա Կան մի քանի դասեր ռոբոտաշինության հիմնական հասկացությունների յուրացման համար: EV3 մոդելները երեխաներին ծանոթացնում են հիմունքների հետ, որոնք օգտագործվում են ինքնակառավարվող մեքենաներում, գործարանային հավաքման ռոբոտներում և CNC մեքենաներում:
Մենք կբերենք նկարչական մեքենայի օրինակ, որին կարելի է սովորեցնել նկարել նախշեր և երկրաչափական ձևեր: Այս գործը մեծահասակների եռակցման կամ ֆրեզերային ռոբոտների պարզեցված տարբերակն է և ցույց է տալիս, թե ինչպես կարելի է օգտագործել EV3-ը MicroPython-ի հետ միասին՝ դպրոցականներին սովորեցնելու համար: Եվ նկարչական մեքենան կարող է հայրիկի համար տպագիր տպատախտակի վրա անցքեր նշել, բայց դա ևս մեկ մակարդակ է, որը պահանջում է մաթեմատիկա:
Աշխատանքի համար մեզ անհրաժեշտ կլինի.
- LEGO MINDSTORMS Education EV3 Core հավաքածու;
- վանդակավոր թղթի մեծ թերթ;
- գունավոր մարկերներ:
Ռոբոտի հավաքումն ինքնին գտնվում է , և մենք կանդրադառնանք ծրագրավորման օրինակին:
Սկզբում մենք նախաստորագրում ենք 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-ը կարիերայի ուղղորդման գործիք է STEM կարիերայի համար և մուտքի կետ ինժեներական կարիերայի համար: Քանի որ այն կարող է օգտագործվել գործնական խնդիրներ լուծելու համար, երեխաները փորձ են ձեռք բերում տեխնիկական զարգացման և արդյունաբերական ռոբոտների ստեղծման մեջ, սովորում են մոդելավորել իրական իրավիճակները, հասկանալ ծրագրերը և վերլուծել ալգորիթմները և տիրապետել ծրագրավորման հիմնական կառուցվածքներին:
MicroPython-ի աջակցությունը EV3 հարթակը հարմար է դարձնում ավագ դպրոցների ուսուցման համար: Ուսանողները կարող են փորձել իրենց որպես ծրագրավորողներ ամենահայտնի ժամանակակից լեզուներից մեկում, ծանոթանալ ծրագրավորման և ինժեներական դիզայնի հետ կապված մասնագիտություններին։ EV3 փաթեթները ցույց են տալիս, որ կոդավորումը սարսափելի չէ, նախապատրաստում է ձեզ ինժեներական լուրջ մարտահրավերների համար և օգնում է առաջին քայլն անել տեխնիկական հմտությունները յուրացնելու ուղղությամբ: Իսկ նրանց համար, ովքեր աշխատում են դպրոցներում և կապված են կրթության հետ, մենք պատրաստել ենք և ուսումնական նյութեր։ Նրանք մանրամասն նկարագրում են, թե ինչ հմտություններ են զարգացնում որոշակի առաջադրանքներ կատարելիս, և ինչպես են ձեռք բերված հմտությունները վերաբերում վերապատրաստման չափանիշներին:
Source: www.habr.com
