LEGO MINDSTORMS Education EV3 + MicroPython: Programméiere vun engem Kannerbauset an Erwuessener Sprooch

Moien, Habr! Mir scho erzielt iwwer d'LEGO MINDSTORMS Education EV3 Plattform. D'Haaptziler vun dëser Plattform sinn d'Léieren duerch praktesch Beispiller, d'Entwécklung vun STEAM Fäegkeeten an d'Entwécklung vun engem Ingenieursdenken. Et kann fir Laboraarbecht benotzt ginn fir Mechanik an Dynamik ze studéieren. Laborbänken aus LEGO Zillen an Utilities fir Daten opzehuelen an ze veraarbecht maachen Experimenter nach méi interessant a visuell an hëllefen d'Kanner besser d'Physik ze verstoen. Zum Beispill kënnen d'Schüler Schmelzpunktdaten sammelen an d'App benotzen fir se ze organiséieren an an enger Grafik ze presentéieren. Awer dëst ass just den Ufank: haut wäerte mir Iech soen wéi Dir dëse Set mam MicroPython Programméierungsëmfeld ergänzt an et benotzt fir Robotik ze léieren.

LEGO MINDSTORMS Education EV3 + MicroPython: Programméiere vun engem Kannerbauset an Erwuessener Sprooch

Léiert Programméiere mat EV3

Modern Schoulkanner wëllen faarweg Resultater gesinn. Jo, si langweilen wann de Programm Zuelen op d'Konsol Dréckt, a si wëllen op Faarf Grafike kucken, Diagrammer an real Roboteren schafen déi Befehle plënneren an verfollegen. Regelméisseg Code schéngt och ze komplizéiert fir Kanner, also ass et besser mat eppes méi einfach ze léieren.

D'Basis EV3 Programméierungsëmfeld baséiert op der LabVIEW grafescher Sprooch an erlaabt Iech Algorithmen fir de Roboter visuell ze spezifizéieren: Kommandoen ginn a Form vu Blocken presentéiert, déi geschleeft a verbonne kënne ginn.

LEGO MINDSTORMS Education EV3 + MicroPython: Programméiere vun engem Kannerbauset an Erwuessener Sprooch

Dës Method funktionnéiert gutt wann Dir musst weisen wéi Algorithmen gebaut ginn, awer et ass net gëeegent fir Programmer mat enger grousser Zuel vu Blocken. Wéi Szenarie méi komplex ginn, ass et néideg fir mat Code ze programméieren, awer dëse Schrëtt ass schwéier fir Kanner ze huelen. 

Et ginn e puer Tricken hei, ee vun deenen ass ze weisen datt de Code déiselwecht Aufgaben ausféiert wéi d'Blöcke. Am EV3 Ëmfeld ass dëst méiglech duerch MicroPython Integratioun, sou datt d'Kanner deeselwechte Programm souwuel am Basisblockprogramméierungsëmfeld wéi och Python am Microsoft Visual Studio Code kënnen erstellen. Si gesinn datt béid Methoden d'selwecht funktionnéieren, awer komplex Probleemer mat Code ze léisen ass méi praktesch.

Wiessel op MicroPython

D'EV3 Ëmfeld ass op engem ARM9 Prozessor gebaut, an d'Entwéckler hunn d'Architektur bewosst opgemaach. Dës Léisung huet et méiglech gemaach alternativ Firmware auszerollen, eng vun deenen e Bild war fir mat MicroPython ze schaffen. Et erlaabt Iech Python ze benotzen fir Ären EV3 ze programméieren, de Kit nach méi no bei realen Aufgaben ze bréngen. 

Fir unzefänken, musst Dir eroflueden EV3 MicroPython Bild op all microSD Kaart, installéiert et am EV3 microcomputer an Tour et op. Da musst Dir installéieren fräi Erweiderung fir Visual Studio. An Dir kënnt ufänken ze schaffen. 

Programméiere vum éischte Roboter am MycroPython

LEGO MINDSTORMS Education EV3 + MicroPython: Programméiere vun engem Kannerbauset an Erwuessener Sprooch

Op eiser Site Et gi verschidde Lektioune fir d'Basiskonzepter vun der Robotik ze beherrschen. EV3 Modeller stellen d'Kanner d'Grondlage vir, déi an selbstfahrenden Autoen, Fabrécksmontageroboter a CNC Maschinnen benotzt ginn. 

Mir huelen d'Beispill vun enger Zeechemaschinn, déi geléiert ka ginn Musteren a geometresch Formen ze zéien. Dëse Fall ass eng vereinfacht Versioun vun erwuessene Schweess- oder Fräsroboter a weist wéi EV3 kann a Verbindung mat MicroPython benotzt ginn fir Schoulkanner ze léieren. An eng Zeechnen Maschinn kann Lächer an engem gedréckte Circuit Verwaltungsrot fir Papp Mark, mä dat ass en aneren Niveau datt Mathematik verlaangt.

Fir Aarbecht brauche mir:

  • LEGO MINDSTORMS Education EV3 Core Set; 
  • grousst Blat vu gescheckte Pabeier;
  • faarweg Markéierer. 

D'Versammlung vum Roboter selwer ass an Instruktiounen, a mir wäerten op engem programméiere Beispill kucken.

Als éischt initialiséieren mir d'EV3 Modulbibliothéik:

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

Mir setzen eng Plattform op, déi de Grëff rotéiert wéi e Motor am Hafen B. Mir setzen de Gangverhältnis vun engem Zweestufege Gangzuch mat enger Zuel vun Zänn vun 20-12-28, respektiv.

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

Mir konfiguréieren den Hebemechanismus fir de Grëff als Motor am Hafen C:

seesaw_motor = Motor(Port.C)

Mir konfiguréieren de Gyroskop, deen den Neigungswénkel vum Grëff moosst, am Hafen 2:

gyro_sensor = GyroSensor(Port.S2)

Mir konfiguréieren de Faarfsensor am Hafen 3. De Sensor gëtt benotzt fir Wäisspabeier ënner der Zeechnenmaschinn z'entdecken:

color_sensor = ColorSensor(Port.S3)

Mir konfiguréieren den Touch Sensor am Hafen 4. De Roboter fänkt un ze zéien wann de Sensor gedréckt gëtt:

touch_sensor = TouchSensor(Port.S4)

Mir definéieren d'Funktiounen déi de Grëff erhéijen an erofsetzen:

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)

Mir definéieren eng Funktioun fir de Grëff zu engem bestëmmte Wénkel oder zu engem bestëmmte Wénkel ze rotéieren:

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

Wann den Zilwénkel méi grouss ass wéi den aktuellen Gyrosensorwénkel, fuert weider mat enger positiver Geschwindegkeet no der Auer:

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

Wann den Zilwénkel manner ass wéi den aktuelle Gyrosensor, da beweegt sech géint d'Auer:

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

Stop d'rotéierend Plattform wann den Zilwénkel erreecht ass:

  turntable_motor.stop(Stop.BRAKE)

Setzt d'Ufankspositioun vum Grëff an der ieweschter Positioun:

pen_holder_raise()

Elo kënnt den Haaptdeel vum Programm - eng endlos Loop. EV3 waart fir d'éischt op de Faarfsensor fir e wäisse Pabeier oder e bloe Startplatz z'entdecken a fir den Touchsensor gedréckt ze ginn. Duerno zitt hien e Muster, geet zréck an d'Startplaz a widderhëlt alles erëm.

Wann den Apparat net fäerdeg ass, ginn d'LEDs um Controller rout an e "Daumen erof" Bild gëtt um LCD Bildschierm ugewisen:

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

Mir waarden bis de Faarfsensor blo oder wäiss zielt, setzen d'LED Faarf op gréng, weisen e "Daumen erop" Bild um LCD Bildschierm a mellen datt den Apparat prett ass fir ze benotzen:

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

Mir waarden bis den Touch Sensor gedréckt gëtt, gitt de Wénkelwäert 0 un de gyroskopesche Sensor a fänkt un ze zéien:

  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)

Huelt de Penhalter op a gitt en zréck op seng ursprénglech Positioun:

  pen_holder_raise()
  pen_holder_turn_to(0)</i>

Dëst ass den einfachen Programm dee mir erstallt hunn. An elo lancéiere mir et a kucken den Draft Roboter an Aktioun. 

Wat bidden esou Beispiller?

LEGO MINDSTORMS Education EV3 + MicroPython: Programméiere vun engem Kannerbauset an Erwuessener Sprooch

EV3 ass e Karriärleitungsinstrument fir STEM Karriären an en Entrée an d'Ingenieurkarriere. Well et ka benotzt ginn fir praktesch Problemer ze léisen, kréien d'Kanner Erfahrung an der technescher Entwécklung an der Schafung vun industrielle Roboteren, léiere real Situatiounen ze simuléieren, Programmer ze verstoen an Algorithmen ze analyséieren, a beherrschen Basisprogramméierungskonstruktiounen.

MicroPython Ënnerstëtzung mécht d'EV3 Plattform gëeegent fir Lycée Léier. Studente kënne sech als Programméierer an enger vun de populäersten modernen Sprooche probéieren, a mat Beruffer am Zesummenhang mat Programméierung an Ingenieursdesign kennenzeléieren. EV3 Kits weisen datt d'Kodéierung net grujeleg ass, bereet Iech op sérieux Ingenieursfuerderungen vir, an hëllefen Iech den éischte Schrëtt a Richtung technesch Fäegkeeten ze beherrschen. A fir déi, déi an der Schoul schaffen a mat der Educatioun verbonne sinn, hu mir bereet Stonneplang Programmer a pädagogesch Material. Si beschreiwen am Detail wéi eng Fäegkeeten entwéckelt ginn wann Dir verschidden Aufgaben ausféiert, a wéi déi erfuerene Fäegkeete mat Trainingsnormen bezéien.

Source: will.com

Kaaft zouverlässeg Hosting fir Site mat DDoS Schutz, VPS VDS Server 🔥 Kaaft zouverléissegt Websäithosting mat DDoS-Schutz, VPS VDS Server | ProHoster