LEGO MINDSTORMS Education EV3 + MicroPython: böyüklər dilində uşaq konstruksiya dəstinin proqramlaşdırılması

Salam, Habr! Biz artıq deyə danışdı LEGO MINDSTORMS Education EV3 platforması haqqında. Bu platformanın əsas məqsədləri praktiki nümunələr vasitəsilə öyrənmək, STEAM bacarıqlarını inkişaf etdirmək və mühəndislik təfəkkürünü inkişaf etdirməkdir. Mexanika və dinamikanı öyrənmək üçün laboratoriya işləri üçün istifadə edilə bilər. LEGO kərpiclərindən hazırlanmış laboratoriya skamyaları və məlumatların yazılması və işlənməsi üçün köməkçi vasitələr təcrübələri daha da maraqlı və əyani edir və uşaqlara fizikanı daha yaxşı başa düşməyə kömək edir. Məsələn, tələbələr ərimə nöqtəsi məlumatlarını toplaya və onu təşkil etmək və qrafikdə təqdim etmək üçün proqramdan istifadə edə bilərlər. Amma bu hələ başlanğıcdır: bu gün biz sizə bu dəsti MicroPython proqramlaşdırma mühiti ilə necə tamamlayacağınızı və ondan robot texnikasını öyrətmək üçün necə istifadə edəcəyinizi söyləyəcəyik.

LEGO MINDSTORMS Education EV3 + MicroPython: böyüklər dilində uşaq konstruksiya dəstinin proqramlaşdırılması

EV3 istifadə edərək proqramlaşdırma öyrənin

Müasir məktəblilər rəngarəng nəticələr görmək istəyirlər. Bəli, proqram konsolda rəqəmləri çap edərsə, darıxırlar və onlar rəngli qrafiklərə, diaqramlara baxmaq və hərəkət edən və əmrləri yerinə yetirən real robotlar yaratmaq istəyirlər. Adi kod da uşaqlar üçün çox mürəkkəb görünür, ona görə də öyrənməyə daha asan bir şeylə başlamaq daha yaxşıdır.

Əsas EV3 proqramlaşdırma mühiti LabVIEW qrafik dilinə əsaslanır və robot üçün alqoritmləri vizual olaraq təyin etməyə imkan verir: əmrlər sürüklənərək birləşdirilə bilən bloklar şəklində təqdim olunur.

LEGO MINDSTORMS Education EV3 + MicroPython: böyüklər dilində uşaq konstruksiya dəstinin proqramlaşdırılması

Bu üsul alqoritmlərin necə qurulduğunu göstərmək lazım olduqda yaxşı işləyir, lakin çox sayda bloku olan proqramlar üçün uyğun deyil. Ssenarilər mürəkkəbləşdikcə kodla proqramlaşdırmaya keçmək lazımdır, lakin bu addımı atmaq uşaqlar üçün çətindir. 

Burada bir neçə fənd var, onlardan biri kodun bloklarla eyni şeyi etdiyini göstərməkdir. EV3 mühitində bu, MicroPython inteqrasiyası vasitəsilə mümkündür, belə ki, uşaqlar həm əsas blok proqramlaşdırma mühitində, həm də Microsoft-un Visual Studio Kodunda Python-da eyni proqramı yarada bilərlər. Onlar görürlər ki, hər iki metod eyni işləyir, lakin koddan istifadə edərək mürəkkəb məsələlərin həlli daha rahatdır.

MicroPython-a keçid

EV3 mühiti ARM9 prosessoru üzərində qurulub və tərtibatçılar arxitekturanı qəsdən açıq qoyublar. Bu həll alternativ proqram təminatını yaymağa imkan verdi, onlardan biri MicroPython ilə işləmək üçün bir şəkil idi. Bu, EV3-ünüzü proqramlaşdırmaq üçün Python-dan istifadə etməyə imkan verir, bu dəsti real həyat tapşırıqlarına daha da yaxınlaşdırır. 

Başlamaq üçün yükləməlisiniz EV3 MicroPython şəkli istənilən microSD kartında onu EV3 mikrokompüterinə quraşdırın və yandırın. Sonra quraşdırmaq lazımdır pulsuz uzadılması Visual Studio üçün. Və işə başlaya bilərsiniz. 

MycroPython-da ilk robotun proqramlaşdırılması

LEGO MINDSTORMS Education EV3 + MicroPython: böyüklər dilində uşaq konstruksiya dəstinin proqramlaşdırılması

Bizim Online Robot texnikasının əsas anlayışlarını mənimsəmək üçün bir neçə dərs var. EV3 modelləri uşaqları özü idarə edən avtomobillərdə, zavod montaj robotlarında və CNC maşınlarında istifadə olunan əsaslarla tanış edir. 

Nümunələri və həndəsi fiqurları çəkməyi öyrədən bir rəsm maşını nümunəsini götürəcəyik. Bu iş böyüklər üçün qaynaq və ya freze robotlarının sadələşdirilmiş versiyasıdır və məktəblilərə dərs vermək üçün EV3-ün MicroPython ilə birlikdə necə istifadə oluna biləcəyini göstərir. Rəsm maşını ata üçün çap dövrə lövhəsində dəlikləri qeyd edə bilər, lakin bu, riyaziyyat tələb edən başqa səviyyədir.

İş üçün bizə lazımdır:

  • LEGO MINDSTORMS Education EV3 Əsas Dəsti; 
  • böyük damalı kağız;
  • rəngli markerlər. 

Robotun özünün montajı var təlimatlar, və biz proqramlaşdırma nümunəsinə baxacağıq.

Əvvəlcə EV3 modul kitabxanasını işə salırıq:

#!/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 portunda mühərrik kimi sapı döndərən platforma qurduq. Biz müvafiq olaraq 20-12-28 diş sayı olan iki mərhələli dişli qatarının dişli nisbətini təyin etdik.

turntable_motor = Motor(Port.B, Direction.CLOCKWISE, [20, 12, 28])

Dəstəyin qaldırma mexanizmini C portunda motor kimi konfiqurasiya edirik:

seesaw_motor = Motor(Port.C)

Dəstəyin meyl bucağını ölçən giroskopu port 2-də konfiqurasiya edirik:

gyro_sensor = GyroSensor(Port.S2)

Rəng sensorunu port 3-də konfiqurasiya edirik. Sensor rəsm maşınının altında ağ kağızı aşkar etmək üçün istifadə olunur:

color_sensor = ColorSensor(Port.S3)

Toxunma sensorunu 4-cü portda konfiqurasiya edirik. Sensor basıldıqda robot rəsm çəkməyə başlayır:

touch_sensor = TouchSensor(Port.S4)

Dəstəyi qaldıran və endirən funksiyaları müəyyən edirik:

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)

Dəstəyi müəyyən bir açıya və ya müəyyən bir bucağa çevirmək funksiyasını təyin edirik:

def pen_holder_turn_to(target_angle):
  if target_angle > gyro_sensor.angle():

Hədəf bucağı cari giroskopun bucağından böyükdürsə, müsbət sürətlə saat əqrəbi istiqamətində davam edin:

    turntable_motor.run(70)
	
while gyro_sensor.angle() < target_angle:
  	
pass
  elif target_angle < gyro_sensor.angle():

Hədəf bucağı cari giroskopdan azdırsa, saat yönünün əksinə hərəkət edin:

    turntable_motor.run(-70)
	
while gyro_sensor.angle() > target_angle:
  	
pass

Hədəf bucağa çatdıqda fırlanan platformanı dayandırın:

  turntable_motor.stop(Stop.BRAKE)

Dəstəyin başlanğıc mövqeyini yuxarı vəziyyətdə təyin edin:

pen_holder_raise()

İndi proqramın əsas hissəsi gəlir - sonsuz bir döngə. EV3 əvvəlcə rəng sensorunun ağ kağızı və ya mavi başlanğıc kvadratını aşkar etməsini və toxunma sensorunun basılmasını gözləyir. Sonra bir nümunə çəkir, başlanğıc mövqeyinə qayıdır və hər şeyi yenidən təkrarlayır.

Cihaz hazır olmadıqda, nəzarətçidəki LED-lər qırmızıya çevrilir və LCD ekranda “baş barmaq aşağı” şəkli göstərilir:

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

Rəng sensoru mavi və ya ağ sayına qədər gözləyirik, LED rəngini yaşıl rəngə təyin edin, LCD ekranda "baş barmaq" şəklini göstərin və cihazın istifadəyə hazır olduğunu bildiririk:

  while color_sensor.color() not in (Color.BLUE, Color.WHITE):
	
wait(10)
  brick.light(Color.GREEN)
  brick.display.image(ImageFile.THUMBS_UP)

Toxunma sensorunun basılmasını gözləyirik, giroskopik sensora 0 bucaq dəyərini təyin edirik və çəkməyə başlayırıq:

  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)

Qələm tutacağını qaldırın və orijinal vəziyyətinə qaytarın:

  pen_holder_raise()
  pen_holder_turn_to(0)</i>

Bu bizim yaratdığımız sadə proqramdır. İndi biz onu işə salırıq və layihə hazırlayan robota baxırıq. 

Bu cür nümunələr nəyi təmin edir?

LEGO MINDSTORMS Education EV3 + MicroPython: böyüklər dilində uşaq konstruksiya dəstinin proqramlaşdırılması

EV3 STEM karyeraları üçün karyera istiqamətləndirmə vasitəsi və mühəndislik karyerasına giriş nöqtəsidir. Ondan praktiki məsələlərin həllində istifadə oluna bildiyi üçün uşaqlar texniki inkişafda və sənaye robotlarının yaradılmasında təcrübə qazanır, real vəziyyətləri simulyasiya etməyi, proqramları başa düşməyi və alqoritmləri təhlil etməyi, əsas proqramlaşdırma konstruksiyalarını mənimsəməyi öyrənirlər.

MicroPython dəstəyi EV3 platformasını orta məktəb tədrisi üçün uyğun edir. Tələbələr özlərini ən populyar müasir dillərdən birində proqramçı kimi sınaya, proqramlaşdırma və mühəndislik dizaynı ilə bağlı peşələrlə tanış ola bilərlər. EV3 dəstləri kodlaşdırmanın qorxulu olmadığını göstərir, sizi ciddi mühəndislik problemlərinə hazırlayır və texniki bacarıqların mənimsənilməsi istiqamətində ilk addımı atmağa kömək edir. Məktəblərdə işləyən və təhsillə əlaqəli olanlar üçün hazırlamışıq dərs proqramları və tədris materialları. Onlar müəyyən tapşırıqları yerinə yetirərkən hansı bacarıqların inkişaf etdirildiyini və əldə edilmiş bacarıqların təlim standartlarına necə aid olduğunu ətraflı təsvir edir.

Mənbə: www.habr.com

DDoS mühafizəsi, VPS VDS serverləri olan saytlar üçün etibarlı hostinq alın 🔥 DDoS qorunması, VPS VDS serverləri ilə etibarlı veb sayt hostinqi alın | ProHoster