LEGO MINDSTORMS Education EV3 + MicroPython: lasten rakennussarjan ohjelmointi aikuisten kielellä

Hei, Habr! Me jo kertoi LEGO MINDSTORMS Education EV3 -alustasta. Tämän alustan päätavoitteet ovat käytännön esimerkkien kautta oppiminen, STEAM-taitojen kehittäminen ja insinööritaidon kehittäminen. Sitä voidaan käyttää laboratoriotöissä mekaniikan ja dynamiikan tutkimiseen. LEGO-palikoista valmistetut laboratoriopenkit ja apuvälineet tietojen tallentamiseen ja käsittelyyn tekevät kokeista entistä mielenkiintoisempia ja visuaalisempia ja auttavat lapsia ymmärtämään fysiikkaa paremmin. Opiskelijat voivat esimerkiksi kerätä sulamispistetietoja ja järjestää ne sovelluksella ja esittää ne kaaviona. Mutta tämä on vasta alkua: tänään kerromme, kuinka voit täydentää tätä sarjaa MicroPython-ohjelmointiympäristöllä ja käyttää sitä robotiikan opettamiseen.

LEGO MINDSTORMS Education EV3 + MicroPython: lasten rakennussarjan ohjelmointi aikuisten kielellä

Opi ohjelmointi EV3:lla

Nykyaikaiset koululaiset haluavat nähdä värikkäitä tuloksia. Kyllä, he ovat kyllästyneitä, jos ohjelma tulostaa numeroita konsoliin, ja he haluavat katsoa värikaavioita, kaavioita ja luoda oikeita robotteja, jotka liikkuvat ja seuraavat komentoja. Myös tavallinen koodi tuntuu liian monimutkaiselta lapsille, joten on parempi aloittaa oppiminen jostain helpommasta.

EV3:n perusohjelmointiympäristö perustuu LabVIEW-graafiseen kieleen ja mahdollistaa algoritmien määrittämisen robotille visuaalisesti: komennot esitetään lohkojen muodossa, jotka voidaan vetää ja yhdistää.

LEGO MINDSTORMS Education EV3 + MicroPython: lasten rakennussarjan ohjelmointi aikuisten kielellä

Tämä menetelmä toimii hyvin, kun haluat näyttää, kuinka algoritmit rakennetaan, mutta se ei sovellu ohjelmille, joissa on paljon lohkoja. Kun skenaariot monimutkaistuvat, on välttämätöntä siirtyä ohjelmointiin koodilla, mutta tämä vaihe on lasten vaikea ottaa. 

Tässä on muutamia temppuja, joista yksi on osoittaa, että koodi tekee saman kuin lohkot. EV3-ympäristössä tämä on mahdollista MicroPython-integraation kautta, joten lapset voivat luoda saman ohjelman sekä peruslohkoohjelmointiympäristössä että Pythonissa Microsoftin Visual Studio Codessa. He näkevät, että molemmat menetelmät toimivat samalla tavalla, mutta monimutkaisten ongelmien ratkaiseminen koodin avulla on kätevämpää.

Vaihdetaan MicroPythoniin

EV3-ympäristö on rakennettu ARM9-prosessorille, ja kehittäjät jättivät tarkoituksella arkkitehtuurin avoimeksi. Tämä ratkaisu mahdollisti vaihtoehtoisten laiteohjelmistojen käyttöönoton, joista yksi oli MicroPythonin kanssa työskentelyyn tarkoitettu kuva. Sen avulla voit ohjelmoida EV3:n Pythonilla, mikä tuo sarjan entistä lähemmäksi tosielämän tehtäviä. 

Aloita lataamalla EV3 MicroPython -kuva asenna se mille tahansa microSD-kortille EV3-mikrotietokoneeseen ja käynnistä se. Sitten sinun on asennettava ilmainen laajennus Visual Studiolle. Ja voit aloittaa työnteon. 

Ensimmäisen robotin ohjelmointi MycroPythonissa

LEGO MINDSTORMS Education EV3 + MicroPython: lasten rakennussarjan ohjelmointi aikuisten kielellä

Meidän Online Robotiikan peruskäsitteiden hallitsemiseen on useita oppitunteja. EV3-mallit tutustuttavat lapset itse ajavien autojen, tehdaskokoonpanorobottien ja CNC-koneiden perusteisiin. 

Otetaan esimerkkinä piirustuskone, joka voidaan opettaa piirtämään kuvioita ja geometrisia muotoja. Tämä kotelo on yksinkertaistettu versio aikuisten hitsaus- tai jyrsintäroboteista ja näyttää kuinka EV3:a voidaan käyttää yhdessä MicroPythonin kanssa koululaisten opettamiseen. Ja piirustuskone voi merkitä reikiä piirilevyyn isälle, mutta se on toinen taso, joka vaatii matematiikkaa.

Töitä varten tarvitsemme:

  • LEGO MINDSTORMS Education EV3 -ydinsetti; 
  • suuri arkki ruudullinen paperi;
  • värillisiä merkkejä. 

Itse robotin kokoonpano on paikallaan ohjeet, ja katsomme ohjelmointiesimerkkiä.

Ensin alustetaan EV3-moduulikirjasto:

#!/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

Asensimme alustan, joka pyörittää kahvaa kuten moottoria porttiin B. Asetimme kaksivaiheisen hammaspyörästön välityssuhteeksi 20-12-28.

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

Konfiguroimme kahvan nostomekanismin moottoriksi portissa C:

seesaw_motor = Motor(Port.C)

Konfiguroimme kahvan kaltevuuskulmaa mittaavan gyroskoopin portissa 2:

gyro_sensor = GyroSensor(Port.S2)

Konfiguroimme värianturin porttiin 3. Anturia käytetään tunnistamaan valkoista paperia piirtokoneen alla:

color_sensor = ColorSensor(Port.S3)

Konfiguroimme kosketusanturin porttiin 4. Robotti alkaa piirtää, kun anturia painetaan:

touch_sensor = TouchSensor(Port.S4)

Määrittelemme toiminnot, jotka nostavat ja laskevat kahvaa:

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äärittelemme toiminnon kahvan kääntämiseksi tiettyyn kulmaan tai tiettyyn kulmaan:

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

Jos tavoitekulma on suurempi kuin nykyinen gyro-anturin kulma, jatka myötäpäivään positiivisella nopeudella:

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

Jos kohdekulma on pienempi kuin nykyinen gyro-anturi, siirrä vastapäivään:

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

Pysäytä pyörivä alusta, kun tavoitekulma on saavutettu:

  turntable_motor.stop(Stop.BRAKE)

Aseta kahvan alkuasento yläasentoon:

pen_holder_raise()

Nyt tulee ohjelman pääosa - loputon silmukka. EV3 odottaa ensin, että värisensori havaitsee valkoisen paperin tai sinisen aloitusneliön ja kosketusanturia painetaan. Sitten hän piirtää kuvion, palaa lähtöasentoon ja toistaa kaiken uudelleen.

Kun laite ei ole valmis, ohjaimen LED-valot muuttuvat punaisiksi ja "peukalo alas" -kuva näkyy LCD-näytössä:

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

Odotamme, kunnes värisensori laskee sinisen tai valkoisen, asetamme LEDin värin vihreäksi, näytämme "peukalo ylös" -kuvan LCD-näytölle ja raportoimme, että laite on käyttövalmis:

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

Odotamme kosketusanturin painamista, annamme gyroskooppiselle anturille kulman arvon 0 ja aloitamme piirtämisen:

  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)

Nosta kynäpidike ja palauta se alkuperäiseen asentoonsa:

  pen_holder_raise()
  pen_holder_turn_to(0)</i>

Tämä on yksinkertainen ohjelma, jonka olemme luoneet. Ja nyt käynnistämme sen ja katsomme piirustusrobotin toiminnassa. 

Mitä tällaiset esimerkit tarjoavat?

LEGO MINDSTORMS Education EV3 + MicroPython: lasten rakennussarjan ohjelmointi aikuisten kielellä

EV3 on STEM-uran uraohjaustyökalu ja insinöörin uran aloituspiste. Koska sitä voidaan käyttää käytännön ongelmien ratkaisemiseen, lapset saavat kokemusta teknisestä kehittämisestä ja teollisuusrobottien luomisesta, oppivat simuloimaan todellisia tilanteita, ymmärtämään ohjelmia ja analysoimaan algoritmeja sekä hallitsemaan ohjelmoinnin perusrakenteet.

MicroPython-tuki tekee EV3-alustasta sopivan lukion opetukseen. Opiskelijat voivat kokeilla itseään ohjelmoijana yhdellä nykyajan suosituimmista kielistä ja tutustua ohjelmointiin ja suunnitteluun liittyviin ammatteihin. EV3-sarjat osoittavat, että koodaus ei ole pelottavaa, valmistaa sinut vakaviin suunnitteluhaasteisiin ja auttaa sinua ottamaan ensimmäisen askeleen kohti teknisten taitojen hallintaa. Ja niille, jotka työskentelevät kouluissa ja liittyvät koulutukseen, olemme valmistautuneet oppituntiohjelmat ja koulutusmateriaaleja. Niissä kuvataan yksityiskohtaisesti, mitä taitoja kehitetään tiettyjä tehtäviä suoritettaessa ja miten hankitut taidot liittyvät koulutusstandardeihin.

Lähde: will.com

Osta luotettava isännöinti sivustoille, joissa on DDoS-suojaus, VPS VDS -palvelimet 🔥 Osta luotettavaa verkkosivustojen hostingia DDoS-suojauksella, VPS VDS -palvelimilla | ProHoster