Sveiks, Habr! Mēs jau par LEGO MINDSTORMS Education EV3 platformu. Šīs platformas galvenie mērķi ir mācīšanās, izmantojot praktiskus piemērus, STEAM prasmju attīstīšana un inženierzinātņu domāšanas attīstīšana. To var izmantot laboratorijas darbiem, lai pētītu mehāniku un dinamiku. Laboratorijas soli, kas izgatavoti no LEGO klucīšiem un utilītas datu ierakstīšanai un apstrādei, padara eksperimentus vēl interesantākus un vizuālākus un palīdz bērniem labāk izprast fiziku. Piemēram, skolēni var apkopot kušanas temperatūras datus un izmantot lietotni, lai tos sakārtotu un parādītu diagrammā. Bet tas ir tikai sākums: šodien pastāstīsim, kā šo komplektu papildināt ar MicroPython programmēšanas vidi un izmantot robotikas mācīšanai.

Apgūstiet programmēšanu, izmantojot EV3
Mūsdienu skolēni vēlas redzēt krāsainus rezultātus. Jā, viņiem ir garlaicīgi, ja programma drukā skaitļus uz konsoli, un viņi vēlas apskatīt krāsu grafikus, diagrammas un izveidot īstus robotus, kas pārvietojas un izpilda komandas. Arī parastais kods bērniem šķiet pārāk sarežģīts, tāpēc labāk sākt mācīties ar kaut ko vieglāku.
Pamata EV3 programmēšanas vide ir balstīta uz LabVIEW grafisko valodu un ļauj vizuāli norādīt robotam algoritmus: komandas tiek parādītas bloku veidā, kurus var vilkt un savienot.

Šī metode darbojas labi, ja nepieciešams parādīt, kā tiek veidoti algoritmi, taču tā nav piemērota programmām ar lielu bloku skaitu. Scenārijiem kļūstot sarežģītākiem, ir jāpāriet uz programmēšanu ar kodu, taču bērniem šo soli ir grūti spert.
Šeit ir daži triki, no kuriem viens ir parādīt, ka kods dara to pašu, ko bloki. EV3 vidē tas ir iespējams, izmantojot MicroPython integrāciju, tāpēc bērni var izveidot vienu un to pašu programmu gan pamata bloku programmēšanas vidē, gan Python programmā Microsoft Visual Studio Code. Viņi redz, ka abas metodes darbojas vienādi, taču sarežģītu problēmu risināšana, izmantojot kodu, ir ērtāka.
Pārslēgšanās uz MicroPython
EV3 vide ir veidota uz ARM9 procesora, un izstrādātāji apzināti atstāja arhitektūru atvērtu. Šis risinājums ļāva ieviest alternatīvu programmaparatūru, no kurām viena bija attēls darbam ar MicroPython. Tas ļauj izmantot Python, lai programmētu savu EV3, vēl vairāk tuvinot komplektu reālās dzīves uzdevumiem.
Lai sāktu, jums ir jālejupielādē jebkurā microSD kartē, instalējiet to EV3 mikrodatorā un ieslēdziet to. Pēc tam jums ir jāinstalē Visual Studio. Un jūs varat sākt strādāt.
Pirmā robota programmēšana programmā MycroPython

Uz mūsu Ir vairākas nodarbības robotikas pamatjēdzienu apgūšanai. EV3 modeļi iepazīstina bērnus ar pamatiem, kas tiek izmantoti pašbraucošās automašīnās, rūpnīcas montāžas robotos un CNC iekārtās.
Mēs ņemsim piemēru ar zīmēšanas mašīnu, kuru var iemācīt zīmēt rakstus un ģeometriskas formas. Šis korpuss ir vienkāršota pieaugušo metināšanas vai frēzēšanas robotu versija, un tajā ir parādīts, kā EV3 var izmantot kopā ar MicroPython, lai mācītu skolēnus. Un zīmēšanas mašīna var atzīmēt caurumus tētim iespiedshēmas platē, bet tas ir vēl viens līmenis, kurā nepieciešama matemātika.
Darbam mums ir nepieciešams:
- LEGO MINDSTORMS Education EV3 pamatkomplekts;
- liela rūtaina papīra lapa;
- krāsaini marķieri.
Pašā robota montāža ir iekšā , un mēs apskatīsim programmēšanas piemēru.
Vispirms inicializējam EV3 moduļa bibliotēku:
#!/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
Mēs uzstādām platformu, kas rotē rokturi kā motoru ostā B. Mēs iestatījām divpakāpju pārnesumkārbas pārnesumskaitli ar zobu skaitu attiecīgi 20-12-28.
turntable_motor = Motor(Port.B, Direction.CLOCKWISE, [20, 12, 28])
Mēs konfigurējam roktura pacelšanas mehānismu kā motoru portā C:
seesaw_motor = Motor(Port.C)
Mēs konfigurējam žiroskopu, kas mēra roktura slīpuma leņķi, 2. portā:
gyro_sensor = GyroSensor(Port.S2)
Mēs konfigurējam krāsu sensoru 3. portā. Sensoru izmanto, lai noteiktu baltu papīru zem zīmēšanas iekārtas:
color_sensor = ColorSensor(Port.S3)
Mēs konfigurējam skārienjutīgo sensoru 4. portā. Robots sāk zīmēt, kad sensors tiek nospiests:
touch_sensor = TouchSensor(Port.S4)
Mēs definējam funkcijas, kas paceļ un nolaiž rokturi:
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)
Mēs definējam funkciju, lai pagrieztu rokturi noteiktā leņķī vai noteiktā leņķī:
def pen_holder_turn_to(target_angle):
if target_angle > gyro_sensor.angle():
Ja mērķa leņķis ir lielāks par pašreizējo žiroskopa sensora leņķi, turpiniet pulksteņrādītāja virzienā ar pozitīvu ātrumu:
turntable_motor.run(70)
while gyro_sensor.angle() < target_angle:
pass
elif target_angle < gyro_sensor.angle():
Ja mērķa leņķis ir mazāks par pašreizējo žiroskopa sensoru, pārvietojiet pretēji pulksteņrādītāja virzienam:
turntable_motor.run(-70)
while gyro_sensor.angle() > target_angle:
pass
Apturiet rotējošo platformu, kad ir sasniegts mērķa leņķis:
turntable_motor.stop(Stop.BRAKE)
Iestatiet roktura sākotnējo stāvokli augšējā pozīcijā:
pen_holder_raise()
Tagad nāk galvenā programmas daļa - bezgalīga cilpa. EV3 vispirms gaida, līdz krāsu sensors atklās baltu papīru vai zilu sākuma kvadrātu un tiek nospiests skārienjutīgais sensors. Tad viņš uzzīmē modeli, atgriežas sākuma stāvoklī un atkārto visu vēlreiz.
Kad ierīce nav gatava, kontrollera gaismas diodes kļūst sarkanas un LCD ekrānā tiek parādīts “īkšķi uz leju” attēls:
while True:
brick.light(Color.RED)
brick.display.image(ImageFile.THUMBS_DOWN)
Mēs nogaidām, līdz krāsu sensors saskaita zilu vai baltu, iestatām LED krāsu uz zaļu, LCD ekrānā parādām attēlu “patīk” un ziņojam, ka ierīce ir gatava lietošanai:
while color_sensor.color() not in (Color.BLUE, Color.WHITE):
wait(10)
brick.light(Color.GREEN)
brick.display.image(ImageFile.THUMBS_UP)
Mēs gaidām, līdz tiek nospiests pieskāriena sensors, žiroskopiskajam sensoram piešķiram leņķa vērtību 0 un sākam zīmēt:
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)
Paceliet pildspalvas turētāju un atgrieziet to sākotnējā stāvoklī:
pen_holder_raise()
pen_holder_turn_to(0)</i>
Šī ir vienkāršā programma, ko esam izveidojuši. Un tagad mēs to palaižam un skatāmies uz projektēšanas robotu darbībā.
Ko sniedz šādi piemēri?

EV3 ir karjeras atbalsta rīks STEM karjerai un ieejas punkts inženieru karjerā. Tā kā to var izmantot praktisku problēmu risināšanai, bērni iegūst pieredzi tehniskajā izstrādē un industriālo robotu veidošanā, mācās simulēt reālas situācijas, izprast programmas un analizēt algoritmus, apgūt programmēšanas pamatkonstrukcijas.
MicroPython atbalsts padara EV3 platformu piemērotu mācībām vidusskolā. Studenti var izmēģināt sevi kā programmētājus vienā no populārākajām mūsdienu valodām un iepazīties ar profesijām, kas saistītas ar programmēšanu un inženierprojektēšanu. EV3 komplekti parāda, ka kodēšana nav biedējoša, sagatavo jūs nopietniem inženiertehniskiem izaicinājumiem un palīdz spert pirmo soli tehnisko prasmju apguvē. Un tiem, kas strādā skolās un ir saistīti ar izglītību, esam sagatavojuši un izglītojošie materiāli. Tajos detalizēti aprakstīts, kādas prasmes tiek attīstītas, veicot noteiktus uzdevumus, un kā iegūtās prasmes ir saistītas ar apmācību standartiem.
Avots: www.habr.com
