LEGO MINDSTORMS Education EV3 + MicroPython: programmazione di un set di costruzioni per bambini in linguaggio per adulti

Ciao, Habr! Abbiamo giΓ  detto sulla piattaforma LEGO MINDSTORMS Education EV3. Gli obiettivi principali di questa piattaforma sono l'apprendimento attraverso esempi pratici, lo sviluppo di competenze STEAM e la formazione del pensiero ingegneristico. PuΓ² essere utilizzata per svolgere attivitΓ  di laboratorio sullo studio della meccanica e della dinamica. Supporti da laboratorio realizzati con mattoncini LEGO e strumenti per la registrazione e l'elaborazione dei dati rendono gli esperimenti ancora piΓΉ interessanti e visivi e aiutano i bambini a comprendere meglio la fisica. Ad esempio, gli studenti possono raccogliere dati sul punto di fusione e utilizzare l'applicazione per sistematizzarli e presentarli sotto forma di grafico. Ma questo Γ¨ solo l'inizio: oggi vi spiegheremo come integrare questo set con l'ambiente di programmazione MicroPython e utilizzarlo per insegnare la robotica.

LEGO MINDSTORMS Education EV3 + MicroPython: programmazione di un set di costruzioni per bambini in linguaggio per adulti

Impara a programmare con EV3

Gli scolari moderni vogliono vedere un risultato colorato. Certo, si annoiano se il programma visualizza numeri sulla console, e vogliono guardare grafici e diagrammi colorati e creare veri robot che si muovono ed eseguono comandi. Anche il codice ordinario sembra troppo complicato per i bambini, quindi Γ¨ meglio iniziare a imparare con qualcosa di piΓΉ semplice.

L'ambiente di programmazione di base EV3 si basa sul linguaggio grafico LabVIEW e consente di impostare visivamente gli algoritmi per il robot: i comandi vengono presentati come blocchi che possono essere trascinati e collegati.

LEGO MINDSTORMS Education EV3 + MicroPython: programmazione di un set di costruzioni per bambini in linguaggio per adulti

Questo metodo funziona bene quando si vuole mostrare come vengono costruiti gli algoritmi, ma non Γ¨ adatto a programmi con un numero elevato di blocchi. Man mano che gli scenari diventano piΓΉ complessi, Γ¨ necessario passare alla programmazione con codice, ma i bambini trovano questo passaggio difficile. 

Ci sono alcuni trucchi per farlo, uno dei quali Γ¨ dimostrare che il codice fa la stessa cosa dei blocchi. L'ambiente EV3 lo fa attraverso l'integrazione con MicroPython: i bambini creano lo stesso programma nell'ambiente di programmazione di base usando i blocchi e in Python in Visual Studio Code di Microsoft. Vedono che entrambi i metodi funzionano allo stesso modo, ma il codice Γ¨ piΓΉ efficace nel risolvere problemi complessi.

Passaggio a MicroPython

L'ambiente EV3 Γ¨ basato sul processore ARM9 e gli sviluppatori hanno deliberatamente lasciato l'architettura aperta. Questa decisione ha permesso l'installazione di firmware alternativi, uno dei quali era un'immagine per lavorare con MicroPython. Permette di utilizzare Python per programmare EV3, il che rende l'utilizzo del kit ancora piΓΉ vicino alle attivitΓ  della vita reale. 

Per iniziare a lavorare, Γ¨ necessario scaricare Immagine EV3 MicroPython su qualsiasi scheda microSD, installala nel mattoncino EV3 e accendilo. Quindi devi installare estensione gratuita per Visual Studio. E puoi iniziare a lavorare. 

Programmazione del primo robot in MycroPython

LEGO MINDSTORMS Education EV3 + MicroPython: programmazione di un set di costruzioni per bambini in linguaggio per adulti

Sul nostro sito web Sono previste diverse lezioni per padroneggiare i concetti base della robotica. I modelli su EV3 introducono i bambini ai principi fondamentali utilizzati nelle auto a guida autonoma, nei robot di assemblaggio in fabbrica e nelle macchine CNC. 

Prendiamo come esempio una macchina da disegno a cui si puΓ² insegnare a disegnare motivi e forme geometriche. Questo caso Γ¨ una versione semplificata dei robot per saldatura o fresatura per adulti e mostra come EV3 possa essere utilizzato insieme a MicroPython per insegnare ai bambini in etΓ  scolare. La macchina da disegno puΓ² anche segnare i fori su un circuito stampato per il papΓ , ma questo Γ¨ un altro livello che richiede calcoli matematici.

Per il lavoro di cui abbiamo bisogno:

  • LEGO MINDSTORMS Education EV3 Set base; 
  • un grande foglio di carta a quadretti;
  • pennarelli colorati. 

L'assemblaggio del robot stesso Γ¨ in istruzionee vedremo un esempio di programmazione.

Per prima cosa, inizializziamo la libreria EV3 Brick:

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

Abbiamo impostato la piattaforma che fa ruotare la maniglia come motore nella porta B. Abbiamo impostato il rapporto di trasmissione della trasmissione a due stadi con un numero di denti rispettivamente di 20-12-28.

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

Abbiamo impostato il meccanismo di sollevamento della maniglia come motore nella porta C:

seesaw_motor = Motor(Port.C)

Abbiamo installato il giroscopio che misura l'angolo di inclinazione dello stick nella porta 2:

gyro_sensor = GyroSensor(Port.S2)

Abbiamo installato il sensore di colore nella porta 3. Il sensore viene utilizzato per rilevare la presenza di carta bianca sotto la macchina da disegno:

color_sensor = ColorSensor(Port.S3)

Impostiamo il sensore tattile nella porta 4. Il robot inizia a disegnare quando si preme il sensore:

touch_sensor = TouchSensor(Port.S4)

Definiamo le funzioni che alzano e abbassano la maniglia:

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)

Definiamo una funzione per ruotare la maniglia di un dato angolo o di un certo angolo:

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

Se l'angolo target Γ¨ maggiore dell'angolo attuale del sensore giroscopico, continuare a muoversi in senso orario con velocitΓ  positiva:

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

Se l'angolo target Γ¨ inferiore all'angolo attuale del sensore giroscopico, allora ci muoviamo in senso antiorario:

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

Arrestare la piattaforma rotante quando viene raggiunto l'angolo desiderato:

  turntable_motor.stop(Stop.BRAKE)

Impostiamo la posizione iniziale della maniglia nella posizione superiore:

pen_holder_raise()

Ora arriva la parte principale del programma: un ciclo infinito. Innanzitutto, l'EV3 attende che il sensore di colore rilevi un foglio bianco o un quadrato di partenza blu e che venga premuto il sensore tattile. Quindi disegna uno schema, torna alla posizione di partenza e ripete l'operazione da capo.

Quando il dispositivo non Γ¨ pronto, i LED sul controller diventano rossi e sullo schermo LCD viene visualizzata un'icona a forma di "pollice verso":

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

Aspettiamo che il sensore di colore legga il blu o il bianco, impostiamo il colore dei LED su verde, visualizziamo l'immagine del "pollice in su" sullo schermo LCD e segnaliamo che il dispositivo Γ¨ pronto per l'uso:

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

Aspettiamo che venga premuto il sensore tattile, assegniamo al sensore giroscopico un valore angolare pari a 0 e iniziamo a disegnare:

  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)

Solleviamo il portapenne e lo riportiamo nella posizione originale:

  pen_holder_raise()
  pen_holder_turn_to(0)</i>

Questo Γ¨ il semplice programma che abbiamo ottenuto. Ora lanciamolo e osserviamo il robot disegnatore in azione. 

Cosa ci dicono questi esempi?

LEGO MINDSTORMS Education EV3 + MicroPython: programmazione di un set di costruzioni per bambini in linguaggio per adulti

EV3 Γ¨ uno strumento di orientamento professionale per le professioni STEM e un punto di accesso alle specializzazioni ingegneristiche. Grazie alla capacitΓ  di risolvere problemi pratici, i bambini acquisiscono esperienza nello sviluppo tecnico e nella creazione di robot industriali, imparano a modellare situazioni reali, a comprendere programmi e ad analizzare algoritmi e a padroneggiare i costrutti di programmazione di base.

Il supporto MicroPython rende la piattaforma EV3 adatta all'istruzione superiore. Gli studenti possono cimentarsi nel ruolo di programmatori in uno dei linguaggi moderni piΓΉ diffusi, familiarizzando con le professioni legate alla programmazione e alla progettazione ingegneristica. I set EV3 dimostrano che scrivere codice non fa paura, preparano a compiti ingegneristici impegnativi e aiutano a compiere il primo passo verso la padronanza di specializzazioni tecniche. E per coloro che lavorano nella scuola e sono coinvolti nell'istruzione, abbiamo preparato programmi di lezione e materiali di formazione. Descrivono in dettaglio quali competenze vengono sviluppate durante lo svolgimento di determinati compiti e come le competenze acquisite si relazionano agli standard di formazione.

Fonte: habr.com

Acquista hosting affidabile per siti con protezione DDoS, server VPS VDS πŸ”₯ Acquista un hosting web affidabile con protezione DDoS, server VPS e VDS | ProHoster