LEGO MINDSTORMS Təhsili EV3 + MicroPython: uşaqların konstruktörünü böyüklərin dili ilə proqramlaşdırmaq

Salam, Habr! Artıq Dəqiqlik, əhatəlilik və sürət LEGO MINDSTORMS Education EV3 platforması haqqında danışırıq. Bu platformanın əsas məqsədləri praktiki nümunələr üzərindən öyrənmək, STEAM bacarıqlarını inkişaf etdirmək və mühəndis düşüncəsini formalaşdırmaqdır. Onunla mexanika və dinamikamı öyrənmək üçün laboratoriya işləri aparmaq mümkündür. LEGO-dan hazırlanmış laboratoriya stendləri və məlumatların qeyd edilməsi və emalı üçün vasitələr təcrübələri daha da maraqlı və görsəl edir və uşaqlara fizikanı daha yaxşı başa düşməyə kömək edir. Məsələn, məktəblilər ərimə temperaturu haqqında məlumat toplaya bilər və bu məlumatları tətbiq vasitəsilə sistemləşdirib qrafik şəklində təqdim edə bilərlər. Lakin bu yalnız başlanğıcdır: bu gün biz bu dəsti MicroPython proqramlaşdırma mühiti ilə tamamlayıb, onu robototexnika təlimində necə istifadə etməyəcəyimizi izah edəcəyik.

LEGO MINDSTORMS Təhsili EV3 + MicroPython: uşaqların konstruktörünü böyüklərin dili ilə proqramlaşdırmaq

EV3 ilə proqramlaşdırma öyrədirik

Müasir məktəblilər rəngarəng nəticə görmək istəyirlər. Bəli, onlara əgər proqram konsolda ədədləri çıxarırsa, sıxıcıdır, və onlar əsl robotlar yaratmaq, hərəkət edən və komandaları yerinə yetirən rəngli qrafiklər, diaqramlar görmək istəyirlər. Adi kod da uşaqlara çox çətin görünür, ona görə öyrənməyə nisbətən daha asan bir şeydən başlamaq daha yaxşıdır.

EV3 proqramlaşdırma mühiti LabVIEW qrafik dilinin əsasında yaradılmışdır və robot üçün alqoritmləri vizual olaraq qurmağa imkan verir: əmrlər bloklar şəklində təqdim olunur, onları sürükləmək və birləşdirmək mümkündür.

LEGO MINDSTORMS Təhsili EV3 + MicroPython: uşaqların konstruktörünü böyüklərin dili ilə proqramlaşdırmaq

Belə bir üsul alqoritmlərin necə qurulduğunu göstərmək lazım olduqda yaxşı işləyir, amma çox sayda blok olan proqramlar üçün uyğun deyil. Szenarilərlə mürəkkəbləşdikdə, kodla proqramlaşdırmaya keçmək lazım olur, amma uşaqların bu addımı atması çətindir. 

Burada bir neçə fənd var, onlardan biri budur ki, kodun eyni tapşırıqları yerinə yetirdiyini göstərməkdir. EV3 mühitində bunu MicroPython ilə inteqrasiya sayəsində etmək mümkündür: uşaqlar həm mühitin əsas proqramlaşdırma mühitində bloklar vasitəsilə, həm də Microsoft-un Visual Studio Code programlaşdırma dili ilə eyni proqramı yaradırlar. Onlar hər iki üsulun eyni şəkildə işlədiyini görür, amma mürəkkəb tapşırıqları kodla həll etmək daha rahatdır.

MicroPython-a keçirik

EV3 mühiti ARM9 prosessorunun əsasını təşkil edir və proqramçılar xüsusi olaraq arxitekturanı açıq saxlayıblar. Bu qərar alternativ firmware-ləri yükləməyə imkan verdi, onlardan biri MicroPython ilə iş üçün olan imicdir. Bu, EV3-i proqramlaşdırmaq üçün Python-dan istifadə etməyə imkan yaradır, bu da dəst ilə olan işləri real həyatdakı tapşırıqlara daha da yaxınlaşdırır. 

Başlamaq üçün EV3 MicroPython imicini hər hansı bir microSD kartına yükləmək, onu EV3 mikrokompüterinə yerləşdirmək və açmaq lazımdır. Sonra pulsuz əlavəni Visual Studio üçün quraşdırmaq lazımdır. Və işə başlamağa hazırsınız. 

MycroPython ilə ilk robotu proqramlaşdırırıq

LEGO MINDSTORMS Təhsili EV3 + MicroPython: uşaqların konstruktörünü böyüklərin dili ilə proqramlaşdırmaq

Bizim saytda robototexnikanın əsas anlayışlarını öyrənmək üçün bir neçə dərs var. EV3 modelləri uşaqları avtomatik idarə olunan avtomobillərdə, istehsal robotlarında və CNC mexanizmlərində istifadə olunan prinsiplərlə tanış edir. 

Bizim misalımız çizgi maşını olacaq, onu naxışlar və geometrik fiqurlar çəkməyi öyrədərək istifadə edə bilərik. Bu hal, böyük qaynaqlı robotların, məsələn, qaynaq və ya frez maşınlarının sadələşdirilmiş versiyasıdır və EV3-ü MicroPython ilə birlikdə şagirdlərə öyrətmək üçün necə istifadə etməyin yolunu göstərir. Daha bir şey, çizgi maşını ataların çap lövhəsində dəlikləri işarələyə bilər, amma bu artıq başqa bir səviyyədir və riyazi hesablamalar tələb edir.

İşimiz üçün aşağıdakılar lazımdır:

  • LEGO MINDSTORMS Education EV3 əsas komplekti; 
  • böyük bir kvadrat kağız;
  • rəngli markerlər. 

Robotun yığılması burada var təlimatda, amma biz proqramlaşdırma nümunəsini nəzərdən keçirəcəyik.

Əvvəlcə EV3 modullar kitabxanasını başlatmalıyı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, portda motor olaraq əlçatan platformanı tənzimləyirik. 20-12-28 ədəd dişli ilə iki mərhələli dişli ötürülməsini təyin edirik.

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

C, portda əlçatan qaldırma mexanizmini tənzimləyirik:

seesaw_motor = Motor(Port.C)

2, portda əlin meylini ölçən giroskopu tənzimləyirik:

gyro_sensor = GyroSensor(Port.S2)

3, portda rəng sensorunu tənzimləyirik. Sensor, çizgi maşınının altında ağ kağızı müəyyən etmək üçün istifadə olunur:

color_sensor = ColorSensor(Port.S3)

4, portda toxunuş sensorunu tənzimləyirik. Robot, sensor basıldığında çəkməyə başlayır:

touch_sensor = TouchSensor(Port.S4)

Qələmi qaldıran və aşağı salan 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)

Belli bir bucaq və ya müəyyən bir bucağa doğru qələmi döndərmək üçün funksiyanı müəyyən edirik:

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

Əgər hədəf bucağı giroskop sensorunun indiki bucağından böyükdürsə, müsbət sürətlə saatın döngəsində hərəkət etməyə davam edirik:

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

Əgər hədəf bucağı giroskop sensorunun indiki bucağından kiçikdirsə, saatın əksinə hərəkət edirik:

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

Hədəf bucağa çatdıqda döner platformanı dayandırırıq:

  turntable_motor.stop(Stop.BRAKE)

Qələmin ilkin mövqeyini yuxarıda təyin edirik:

pen_holder_raise()

İndi proqramın əsas hissəsi - sonsuz döngü gəlir. Əvvəlcə EV3, rəng sensoru, ağ kağızı və ya mavi başlanğıc sahəsini aşkar edənə, toxunma sensoru basılana qədər gözləyir. Sonra, o, naxış çəkir, ilkin mövqeyə qayıdır və hər şeyi yenidən təkrar edir.

Cihaz hazır olmadığında, denetleyicinin LED'leri kırmızı renkte yanar ve LCD ekranda "aşağı parmak" görüntüsü gösterilir:

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

Renk sensörünün mavi veya beyaz rengi algılamasını bekliyoruz, LED'lerin rengini yeşil yapıyoruz, LCD ekranda "yukarı parmak" görüntüsünü gösteriyoruz ve cihazın çalışmaya hazır olduğunu bildiriyoruz:

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

Dokunma sensörünün basılmasını bekliyoruz, jiroskop sensörüne 0 açı değerini atıyoruz ve dessin yapmaya başlıyoruz:

  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)

Kalem tutucuyu yukarı kaldırıyoruz ve başlangıç pozisyonuna geri döndürüyoruz:

  pen_holder_raise()
  pen_holder_turn_to(0)</i>

İşte böyle basit bir programımız oldu. Şimdi onu çalıştırıyoruz ve çizim robotuna bakıyoruz. 

Bu tür örnekler ne sağlar

LEGO MINDSTORMS Təhsili EV3 + MicroPython: uşaqların konstruktörünü böyüklərin dili ilə proqramlaşdırmaq

EV3, STEM meslekleri kapsamında mesleki yönlendirme aracı ve mühendislik alanına giriş noktasıdır. Çünkü pratik sorunlar çözebildikleri için çocuklar teknik geliştirme ve endüstriyel robot yaratma deneyimi kazanır, gerçek durumları modellemeyi, programları anlamayı ve algoritmaları analiz etmeyi öğrenirler, programlamanın temel yapısını kavrarlar.

MicroPython desteği, EV3 platformunu lise eğitimine uygun hale getirir. Öğrenciler, en popüler modern dillerden birinde programcı olma deneyimi yaşayabilir, programlama ve mühendislik tasarımıyla ilgili meslekler hakkında bilgi edinebilirler. EV3 setleri, kod yazmanın korkutucu olmadığını göstermekte, ciddi mühendislik görevlerine hazırlamakta ve teknik meslekleri öğrenme yolunda ilk adımı atmalarına yardımcı olmaktadır. Eğitimle ilgili çalışanlar için ise hazırlanmış ders programları ve eğitim materyalleri vardır. Bu materyaller, belirli görevlerin yürütülmesi sırasında hangi becerilerin gelişeceğini detaylı bir şekilde açıklamakta ve kazanılan becerilerin eğitim standartları ile nasıl ilişkili olduğunu göstermektedir.

Mənbə: habr.com

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster