LEGO MINDSTORMS Education EV3 + MicroPython: programmering van 'n kinderkonstruksiestel in volwasse taal

Hallo, Habr! Ons reeds vertel oor die LEGO MINDSTORMS Education EV3-platform. Die hoofdoelwitte van hierdie platform is om te leer deur praktiese voorbeelde, die ontwikkeling van STEAM-vaardighede en die ontwikkeling van 'n ingenieursingesteldheid. Dit kan vir laboratoriumwerk gebruik word om meganika en dinamika te bestudeer. Laboratoriumbanke gemaak van LEGO-stene en hulpmiddels vir die opneem en verwerking van data maak eksperimente selfs meer interessant en visueel en help kinders om fisika beter te verstaan. Studente kan byvoorbeeld smeltpuntdata insamel en die toepassing gebruik om dit te organiseer en in 'n grafiek voor te stel. Maar dit is net die begin: vandag sal ons jou vertel hoe om hierdie stel aan te vul met die MicroPython-programmeringsomgewing en dit te gebruik om robotika te onderrig.

LEGO MINDSTORMS Education EV3 + MicroPython: programmering van 'n kinderkonstruksiestel in volwasse taal

Leer programmering met EV3

Moderne skoolkinders wil kleurvolle resultate sien. Ja, hulle is verveeld as die program nommers na die konsole druk, en hulle wil na kleurgrafieke, diagramme kyk en regte robotte skep wat beweeg en opdragte volg. Gereelde kode lyk ook te ingewikkeld vir kinders, so dit is beter om met iets makliker te begin leer.

Die basiese EV3-programmeringsomgewing is gebaseer op die LabVIEW grafiese taal en laat jou toe om algoritmes vir die robot visueel te spesifiseer: opdragte word aangebied in die vorm van blokke wat gesleep en verbind kan word.

LEGO MINDSTORMS Education EV3 + MicroPython: programmering van 'n kinderkonstruksiestel in volwasse taal

Hierdie metode werk goed wanneer jy moet wys hoe algoritmes gebou word, maar dit is nie geskik vir programme met 'n groot aantal blokke nie. Soos scenario's meer kompleks word, is dit nodig om oor te gaan na programmering met kode, maar hierdie stap is moeilik vir kinders om te neem. 

Daar is 'n paar truuks hier, waarvan een is om te wys dat die kode dieselfde ding doen as die blokke. In die EV3-omgewing is dit moontlik deur MicroPython-integrasie, sodat kinders dieselfde program in beide die basiese blokprogrammeringsomgewing en Python in Microsoft se Visual Studio Code kan skep. Hulle sien dat beide metodes dieselfde werk, maar die oplossing van komplekse probleme met behulp van kode is geriefliker.

Skakel oor na MicroPython

Die EV3-omgewing is gebou op 'n ARM9-verwerker, en die ontwikkelaars het die argitektuur doelbewus oopgelaat. Hierdie oplossing het dit moontlik gemaak om alternatiewe firmware uit te voer, waarvan een 'n beeld was om met MicroPython te werk. Dit laat jou toe om Python te gebruik om jou EV3 te programmeer, wat die stel selfs nader aan werklike take bring. 

Om te begin, moet jy aflaai EV3 MicroPython-beeld op enige microSD-kaart, installeer dit in die EV3-mikrorekenaar en skakel dit aan. Dan moet jy installeer gratis uitbreiding vir Visual Studio. En jy kan begin werk. 

Programmering van die eerste robot in MycroPython

LEGO MINDSTORMS Education EV3 + MicroPython: programmering van 'n kinderkonstruksiestel in volwasse taal

Op ons Online Daar is verskeie lesse om die basiese konsepte van robotika te bemeester. EV3-modelle stel kinders bekend aan die basiese beginsels wat in selfbesturende motors, fabrieksmonteerrobotte en CNC-masjiene gebruik word. 

Ons neem die voorbeeld van 'n tekenmasjien, wat geleer kan word om patrone en geometriese vorms te teken. Hierdie geval is 'n vereenvoudigde weergawe van volwasse sweis- of freesrobotte en wys hoe EV3 saam met MicroPython gebruik kan word om skoolkinders te leer. En 'n tekenmasjien kan gate in 'n gedrukte stroombaan vir pa merk, maar dit is 'n ander vlak wat wiskunde vereis.

Vir werk benodig ons:

  • LEGO MINDSTORMS Education EV3 Kernstel; 
  • groot vel geruite papier;
  • gekleurde merkers. 

Die samestelling van die robot self is in instruksies, en ons sal na 'n programmeringsvoorbeeld kyk.

Eerstens inisialiseer ons die EV3-modulebiblioteek:

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

Ons stel 'n platform op wat die handvatsel soos 'n motor in poort B laat draai. Ons stel die ratverhouding van 'n tweestadium-rattrein met 'n aantal tande van onderskeidelik 20-12-28 in.

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

Ons konfigureer die hefmeganisme vir die handvatsel as 'n motor in poort C:

seesaw_motor = Motor(Port.C)

Ons konfigureer die giroskoop, wat die hellingshoek van die handvatsel meet, in poort 2:

gyro_sensor = GyroSensor(Port.S2)

Ons konfigureer die kleursensor in poort 3. Die sensor word gebruik om wit papier onder die tekenmasjien op te spoor:

color_sensor = ColorSensor(Port.S3)

Ons konfigureer die raaksensor in poort 4. Die robot begin teken wanneer die sensor gedruk word:

touch_sensor = TouchSensor(Port.S4)

Ons definieer die funksies wat die handvatsel verhoog en verlaag:

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)

Ons definieer 'n funksie om die handvatsel na 'n gegewe hoek of na 'n sekere hoek te draai:

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

As die teikenhoek groter is as die huidige gyrosensorhoek, gaan kloksgewys voort met 'n positiewe spoed:

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

As die teikenhoek kleiner is as die huidige gyrosensor, beweeg dan antikloksgewys:

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

Stop die roterende platform wanneer die teikenhoek bereik is:

  turntable_motor.stop(Stop.BRAKE)

Stel die aanvanklike posisie van die handvatsel in die boonste posisie:

pen_holder_raise()

Nou kom die hoofdeel van die program - 'n eindelose lus. EV3 wag eers vir die kleursensor om 'n wit papier of blou beginvierkant te bespeur en dat die raaksensor gedruk word. Dan teken hy 'n patroon, keer terug na die beginposisie en herhaal alles weer.

Wanneer die toestel nie gereed is nie, word die LED's op die kontroleerder rooi en 'n "duim-af"-beeld word op die LCD-skerm vertoon:

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

Ons wag totdat die kleursensor blou of wit tel, stel die LED-kleur op groen, vertoon 'n "thumbs up"-beeld op die LCD-skerm en rapporteer dat die toestel gereed is vir gebruik:

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

Ons wag dat die aanraaksensor gedruk word, ken die hoekwaarde 0 aan die gyroskopiese sensor toe en begin teken:

  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)

Lig die penhouer op en plaas dit terug na sy oorspronklike posisie:

  pen_holder_raise()
  pen_holder_turn_to(0)</i>

Dit is die eenvoudige program wat ons geskep het. En nou begin ons dit en kyk na die tekenrobot in aksie. 

Wat bied sulke voorbeelde?

LEGO MINDSTORMS Education EV3 + MicroPython: programmering van 'n kinderkonstruksiestel in volwasse taal

EV3 is 'n beroepsvoorligtingsinstrument vir STEM-loopbane en 'n toegangspunt tot ingenieursloopbane. Aangesien dit gebruik kan word om praktiese probleme op te los, doen kinders ervaring op in tegniese ontwikkeling en die skepping van industriΓ«le robotte, leer om werklike situasies te simuleer, programme te verstaan ​​en algoritmes te ontleed, en basiese programmeringskonstrukte te bemeester.

MicroPython-ondersteuning maak die EV3-platform geskik vir hoΓ«rskoolonderrig. Studente kan hulself as programmeerders in een van die gewildste moderne tale probeer, en kennis maak met beroepe wat met programmering en ingenieursontwerp verband hou. EV3-stelle wys dat kodering nie skrikwekkend is nie, berei jou voor vir ernstige ingenieursuitdagings en help jou om die eerste stap te neem om tegniese vaardighede te bemeester. En vir diegene wat in skole werk en met onderwys geassosieer word, het ons voorberei lesprogramme en opvoedkundige materiaal. Hulle beskryf in detail watter vaardighede ontwikkel word wanneer sekere take uitgevoer word, en hoe die verworwe vaardighede verband hou met opleidingstandaarde.

Bron: will.com

Koop betroubare hosting vir werwe met DDoS-beskerming, VPS VDS-bedieners πŸ”₯ Koop betroubare webwerfhosting met DDoS-beskerming, VPS VDS-bedieners | ProHoster