LEGO MINDSTORMS Education EV3 + MicroPython: Programmierung des Kindersets in einer verständlichen Sprache für Erwachsene

Hallo, Habr! Wir sind bereits über die Plattform LEGO MINDSTORMS Education EV3 informiert. Die Hauptziele dieser Plattform sind das Lernen anhand praktischer Beispiele, die Entwicklung von STEAM-Fähigkeiten und die Förderung des ingenieurtechnischen Denkens. Sie ermöglicht es, Laborarbeiten zur Mechanik und Dynamik durchzuführen. Die Laborstände aus LEGO-Steinen und die Werkzeuge zur Datenerfassung und -verarbeitung machen Experimente noch interessanter und anschaulicher und helfen Kindern, Physik besser zu verstehen. Beispielsweise können Schüler Daten über den Schmelzpunkt sammeln und mithilfe einer App systematisieren und in Form eines Diagramms präsentieren. Doch das ist nur der Anfang: Heute erzählen wir, wie man dieses Set mit der Programmierumgebung MicroPython ergänzen und zur Robotik-Ausbildung nutzen kann. über Wir lernen Programmieren mit EV3

LEGO MINDSTORMS Education EV3 + MicroPython: Programmierung des Kindersets in einer verständlichen Sprache für Erwachsene

Moderne Schüler möchten ein farbenfrohes Ergebnis sehen. Ja, es ist ihnen langweilig, wenn das Programm Zahlen in die Konsole ausgibt, und sie wollen farbige Grafiken, Diagramme betrachten und echte Roboter bauen, die sich bewegen und Befehle ausführen. Gewöhnlicher Code erscheint den Kindern ebenfalls zu kompliziert, daher ist es besser, das Lernen mit etwas Einfacherem zu beginnen.

Moderne Schüler möchten ein farbenfrohes Ergebnis sehen. Ja, es ist ihnen langweilig, wenn das Programm Zahlen in der Konsole ausgibt; sie wollen farbige Grafiken, Diagramme betrachten und echte Roboter bauen, die sich bewegen und Befehle ausführen. Gewöhnlicher Code erscheint den Kindern auch zu kompliziert, daher ist es besser, das Lernen mit etwas Einfacherem zu beginnen.

Die grundlegende Programmierumgebung EV3 basiert auf der grafischen Sprache LabVIEW und ermöglicht es, Algorithmen für den Roboter visuell zu definieren: Die Befehle werden in Form von Blöcken dargestellt, die man ziehen und verbinden kann.

LEGO MINDSTORMS Education EV3 + MicroPython: Programmierung des Kindersets in einer verständlichen Sprache für Erwachsene

Diese Methode funktioniert gut, wenn man zeigen möchte, wie Algorithmen aufgebaut sind, aber sie ist nicht geeignet für Programme mit einer großen Anzahl von Blöcken. Bei komplexeren Szenarien muss man auf die Programmierung mit Code umsteigen, aber es fällt den Kindern schwer, diesen Schritt zu machen. 

Es gibt dabei einige Tricks, einer davon ist, zu zeigen, dass der Code die gleichen Aufgaben erfüllt wie die Blöcke. In der EV3-Umgebung kann dies durch die Integration mit MicroPython realisiert werden: Die Kinder erstellen dasselbe Programm in der grundlegenden Programmierumgebung mithilfe von Blöcken und in der Programmiersprache Python in Visual Studio Code von Microsoft. Sie sehen, dass beide Methoden gleich funktionieren, aber das Lösen komplexer Aufgaben mit Code ist bequemer.

Wir wechseln zu MicroPython

Die EV3-Plattform basiert auf einem ARM9-Prozessor, und die Entwickler haben die Architektur bewusst offen gelassen. Diese Entscheidung ermöglicht es, alternative Firmware zu installieren, eine davon ist das Image für die Verwendung mit MicroPython. Damit kann Python für die Programmierung von EV3 eingesetzt werden, was die Arbeit mit dem Set noch näher an reale Aufgaben bringt. 

Um zu beginnen, müssen Sie das EV3 MicroPython-Image auf eine beliebige microSD-Karte herunterladen, sie in den EV3-Mikrocomputer einsetzen und einschalten. Dann müssen Sie eine kostenlose Erweiterung für Visual Studio installieren. Und schon kann es losgehen. 

Programmieren des ersten Roboters mit MycroPython

LEGO MINDSTORMS Education EV3 + MicroPython: Programmierung des Kindersets in einer verständlichen Sprache für Erwachsene

Auf unserem Webseite finden Sie mehrere Lektionen, um die grundlegenden Konzepte der Robotik zu erlernen. Die Modelle auf EV3 führen Kinder in die Grundlagen ein, die bei selbstfahrenden Autos, Produktionsrobotern und CNC-Maschinen verwendet werden. 

Wir nehmen als Beispiel eine Zeichenmaschine, die imstande ist, Muster und geometrische Figuren zu zeichnen. Diese Anwendung ist eine vereinfachte Version für große Schweiß- oder Fräsroboter und zeigt, wie man EV3 zusammen mit MicroPython nutzen kann, um Schüler zu schulen. Zudem kann die Zeichenmaschine Löcher auf einer Platine für Papa markieren, aber das ist ein anderes Niveau, das mathematische Berechnungen erfordert.

Für die Arbeit benötigen wir:

  • das Basis-Set LEGO MINDSTORMS Education EV3; 
  • ein großes Blatt kariertes Papier;
  • farbige Marker. 

Der Zusammenbau des Roboters ist in Anleitung, aber wir betrachten ein Beispiel für die Programmierung.

Zuerst initialisieren wir die EV3-Modulbibliothek:

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

Wir konfigurieren die Plattform, die den Hebel wie einen Motor an Port B dreht. Wir legen das Übersetzungsverhältnis des zweistufigen Zahnradgetriebes mit 20-12-28 Zähnen fest.

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

Wir konfigurieren den Hebemechanismus für den Hebel als Motor an Port C:

seesaw_motor = Motor(Port.C)

Wir konfigurieren den Gyrosensor, der den Neigungswinkel des Hebels an Port 2 misst:

gyro_sensor = GyroSensor(Port.S2)

Wir konfigurieren den Farbsensor an Port 3. Der Sensor wird verwendet, um das weiße Papier unter der Zeichnungsmaschine zu erkennen:

color_sensor = ColorSensor(Port.S3)

Wir konfigurieren den Berührungssensor an Port 4. Der Roboter beginnt zu zeichnen, wenn der Sensor gedrückt wird:

touch_sensor = TouchSensor(Port.S4)

Wir definieren Funktionen, die den Stift heben und senken:

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)

Wir definieren eine Funktion zum Drehen des Stifts auf einen bestimmten Winkel oder bis zu einem bestimmten Winkel:

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

Wenn der Zielwinkel größer ist als der aktuelle Winkel des Gyrosensors, bewegen wir uns im Uhrzeigersinn mit positiver Geschwindigkeit:

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

Wenn der Zielwinkel kleiner ist als der aktuelle Winkel des Gyrosensors, bewegen wir uns gegen den Uhrzeigersinn:

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

Wir stoppen die drehbare Plattform, wenn der Zielwinkel erreicht ist:

  turntable_motor.stop(Stop.BRAKE)

Wir setzen die Anfangsposition des Halters auf die obere Position:

pen_holder_raise()

Jetzt folgt der Hauptteil des Programms — eine unendliche Schleife. Zunächst wartet der EV3 darauf, dass der Farbsensor weißes Papier oder das blaue Startfeld erkennt und der Berührungssensor gedrückt wird. Dann malt er ein Muster, kehrt in die Ausgangsposition zurück und wiederholt alles von neuem.

Wenn das Gerät nicht bereit ist, leuchten die LEDs am Controller rot, und auf dem LCD-Bildschirm wird das Bild „Daumen nach unten“ angezeigt:

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

Wir warten, bis der Farbsensor Blau oder Weiß erkennt, setzen die Farbe der LEDs auf Grün, zeigen auf dem LCD-Bildschirm das Bild „Daumen nach oben“ an und melden, dass das Gerät bereit ist:

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

Wir warten auf das Drücken des Berührungssensors, setzen den Winkel des Gyrosensors auf 0 und beginnen mit dem Zeichnen:

  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)

Wir heben den Stift-Halter an und bringen ihn in die Ausgangsposition zurück:

  pen_holder_raise()
  pen_holder_turn_to(0)

So ein einfaches Programm haben wir erstellt. Jetzt starten wir es und sehen den Konstruktionsroboter in Aktion. 

Was bringen solche Beispiele?

LEGO MINDSTORMS Education EV3 + MicroPython: Programmierung des Kindersets in einer verständlichen Sprache für Erwachsene

EV3 ist ein Instrument zur Berufsorientierung im Bereich STEM und ein Zugang zu Ingenieursberufen. Da mit ihm praktische Aufgaben gelöst werden können, sammeln die Kinder Erfahrung in der technischen Entwicklung und im Bau industrieller Roboter, lernen reale Situationen zu modellieren, Programme zu verstehen und Algorithmen zu analysieren sowie grundlegende Programmierkonstrukte zu beherrschen.

Die Unterstützung von MicroPython macht die EV3-Plattform geeignet für den Unterricht in den oberen Klassen. Die Schüler können sich als Programmierer in einer der beliebtesten modernen Programmiersprachen erproben, lernen Berufe im Zusammenhang mit Programmierung und technischer Projektierung kennen. EV3-Sets zeigen, dass Programmieren keine Angst machen muss, bereiten sie auf ernsthafte ingenieurtechnische Aufgaben vor und helfen, den ersten Schritt zur Beherrschung technischer Berufe zu machen. Für diejenigen, die in Schulen arbeiten und mit Bildung verbunden sind, haben wir Unterrichtsprogramme vorbereitet und Lehrmaterialien. Diese beschreiben detailliert, welche Fähigkeiten durch die Durchführung bestimmter Aufgaben entwickelt werden und wie die erlernten Fähigkeiten mit den Bildungsstandards in Verbindung stehen.

Quelle: habr.com

Erwerben Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster