Hallo habr Wir haben bereits über die LEGO MINDSTORMS Education EV3-Plattform gesprochen. Die Hauptziele dieser Plattform sind Schulungen an praktischen Beispielen, die Entwicklung von STEAM-Fähigkeiten und die Bildung von technischem Denken. Es kann Laborarbeiten durchführen, um Mechanik und Dynamik zu studieren. Laborstände aus LEGO-Blöcken und Hilfsmitteln zum Aufzeichnen und Verarbeiten von Daten machen die Experimente noch interessanter und visueller und helfen Kindern, die Physik besser zu verstehen. Beispielsweise können die Schüler Daten zur Schmelztemperatur sammeln und diese mithilfe der Anwendung organisieren und in einem Diagramm darstellen. Dies ist jedoch nur der Anfang: Heute werden wir Ihnen erklären, wie Sie dieses Set mit der MicroPython-Programmierumgebung ergänzen und damit Robotik unterrichten können.

Lernen Sie das Programmieren mit EV3
Moderne Studenten wollen ein farbenfrohes Ergebnis sehen. Ja, sie langweilen sich, wenn das Programm Zahlen in der Konsole anzeigt, und sie möchten Farbkarten und Diagramme betrachten und echte Roboter erstellen, die Befehle bewegen und ausführen. Regelmäßiger Code scheint auch für Kinder zu kompliziert zu sein. Es ist daher besser, mit dem Lernen zu beginnen.
Die Basisprogrammierumgebung EV3 basiert auf der Grafiksprache LabVIEW und ermöglicht es Ihnen, Algorithmen für den Roboter visuell festzulegen: Die Befehle werden in Form von Blöcken dargestellt, die gezogen und verbunden werden können.

Diese Methode funktioniert gut, wenn Sie zeigen müssen, wie die Algorithmen aufgebaut sind, ist jedoch nicht für Programme mit einer großen Anzahl von Blöcken geeignet. Wenn Sie die Szenarien komplizieren möchten, müssen Sie auf die Programmierung mit Code umsteigen, aber für Kinder ist es schwierig, diesen Schritt auszuführen.
Hier gibt es ein paar Tricks, die zeigen sollen, dass der Code die gleichen Aufgaben ausführt wie die Blöcke. In der EV3-Umgebung kann dies durch Integration in MicroPython erfolgen: Kinder erstellen dasselbe Programm in der Basisprogrammierumgebung mit Blöcken und Python in Microsoft Visual Studio Code. Sie sehen, dass beide Methoden gleich funktionieren, aber es ist bequemer, komplexe Probleme mit Code zu lösen.
Zu MicroPython gehen
Die EV3-Umgebung basiert auf dem ARM9-Prozessor, und die Entwickler haben die Architektur absichtlich offen gelassen. Mit dieser Lösung konnten wir alternative Firmware zusammenstellen, von denen eine das Image für die Arbeit mit MicroPython war. Mit Python können Sie EV3 programmieren, wodurch das Tippen noch realistischer wird.
Um zu beginnen, müssen Sie das
EV3 MicroPython-Image auf eine beliebige microSD-Karte herunterladen, es im EV3-Mikrocomputer installieren und einschalten. Dann müssen Sie die
kostenlose Erweiterung für Visual Studio installieren. Und du kannst dich an die Arbeit machen.
Wir programmieren den ersten Roboter auf MycroPython

Auf unserer
Website finden Sie mehrere Lektionen zum Erlernen der grundlegenden Konzepte der Robotik. Modelle auf EV3 führen Kinder in die Grundlagen ein, die in selbstfahrenden Autos, werksseitigen Montagerobotern und CNC-Maschinen verwendet werden.
Als Beispiel nehmen wir eine Zeichenmaschine, mit der man lernen kann, Muster und geometrische Formen zu zeichnen. Dieser Fall ist eine vereinfachte Version von erwachsenen Schweißrobotern oder Fräsmaschinen und zeigt, wie Sie EV3 zusammen mit MicroPython zum Unterrichten von Schülern verwenden können. Und eine Zeichenmaschine kann für Papa Löcher in einer Leiterplatte markieren, aber dies ist eine andere Ebene, die mathematische Berechnungen erfordert.
Für die Arbeit brauchen wir:
- LEGO MINDSTORMS Education EV3 Basisset
- ein großes Blatt kariertes Papier;
- farbige Markierungen.
Die Montage des Roboters selbst ist in der
Anleitung enthalten , und wir werden ein Beispiel für die Programmierung betrachten.
Initialisieren Sie zunächst die EV3-Modulbibliothek:
Wir haben eine Plattform eingerichtet, die den Griff wie einen Motor in Anschluss B dreht. Wir stellen das Übersetzungsverhältnis des zweistufigen Getriebes mit der Anzahl der Zähne 20-12-28 ein.
turntable_motor = Motor(Port.B, Direction.CLOCKWISE, [20, 12, 28])
Wir konfigurieren den Hebemechanismus für den Griff als Motor in Anschluss C:
seesaw_motor = Motor(Port.C)
In Port 2 haben wir ein Gyroskop aufgestellt, das den Winkel des Griffs misst:
gyro_sensor = GyroSensor(Port.S2)
Konfigurieren Sie den Farbsensor in Port 3. Mit dem Sensor wird weißes Papier unter der Zeichenmaschine erkannt:
color_sensor = ColorSensor(Port.S3)
Konfigurieren Sie den Berührungssensor in Anschluss 4. Der Roboter beginnt zu zeichnen, wenn der Sensor gedrückt wird:
touch_sensor = TouchSensor(Port.S4)
Definieren Sie die Funktionen zum Anheben und Absenken des Griffs:
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 bestimmen die Funktion zum Drehen des Griffs um einen bestimmten Winkel oder bis zu einem bestimmten Winkel:
def pen_holder_turn_to(target_angle): if target_angle > gyro_sensor.angle():
Ist der Zielwinkel größer als der aktuelle Winkel des Kreiselsensors, fahren Sie mit einer positiven Geschwindigkeit im Uhrzeigersinn fort:
turntable_motor.run(70) while gyro_sensor.angle() < target_angle: pass elif target_angle < gyro_sensor.angle():
Wenn der Zielwinkel kleiner als der aktuelle Kreiselsensor ist, bewegen Sie sich gegen den Uhrzeigersinn:
turntable_motor.run(-70) while gyro_sensor.angle() > target_angle: pass
Wir stoppen die rotierende Plattform, wenn der Zielwinkel erreicht ist:
turntable_motor.stop(Stop.BRAKE)
Stellen Sie die Ausgangsposition des Griffs in die obere Position:
pen_holder_raise()
Nun kommt der Hauptteil des Programms - eine Endlosschleife. Zunächst wartet EV3 darauf, dass der Farbsensor weißes Papier oder eine blaue Startzelle erkennt, und der Berührungssensor wird gedrückt. Dann zeichnet er ein Muster, kehrt an seine ursprüngliche Position zurück und wiederholt alles noch einmal.
Wenn das Gerät nicht bereit ist, leuchten die LEDs am Controller rot und das Finger-Down-Bild wird auf dem LCD-Bildschirm angezeigt:
while True: brick.light(Color.RED) brick.display.image(ImageFile.THUMBS_DOWN)
Wir warten, bis der Farbsensor Blau oder Weiß erkennt, stellen die Farbe der LEDs auf Grün ein, zeigen den Daumen nach oben auf dem LCD-Bildschirm an und informieren, dass das Gerät betriebsbereit 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, bis der Berührungssensor gedrückt wird, weisen dem Kreiselsensor den Wert des Winkels 0 zu 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)
Heben Sie den Stifthalter an und bringen Sie ihn wieder in seine ursprüngliche Position:
pen_holder_raise() pen_holder_turn_to(0)</i>
Hier haben wir ein so einfaches Programm. Und jetzt starten wir es und schauen uns den Roboterzeichner in Aktion an.
Was geben solche Beispiele?

EV3 ist ein Berufsberatungsinstrument für MINT-Berufe und ein Einstieg in technische Fachgebiete. Da es möglich ist, praktische Probleme zu lösen, sammeln Kinder Erfahrungen in der technischen Entwicklung und der Entwicklung von Industrierobotern, lernen, reale Situationen zu simulieren, Programme zu verstehen und Algorithmen zu analysieren, die grundlegenden Programmierkonstrukte zu beherrschen.
Durch die Unterstützung von MicroPython eignet sich die EV3-Plattform für die High School. Die Schüler können sich als Programmierer in einer der beliebtesten modernen Sprachen versuchen und sich mit Berufen im Bereich Programmierung und Ingenieurdesign vertraut machen. EV3-Kits zeigen, dass das Schreiben von Code nicht unheimlich ist, sie bereiten auf schwerwiegende technische Probleme vor und helfen, den ersten Schritt zur Beherrschung technischer Besonderheiten zu machen. Und für diejenigen, die in der Schule arbeiten und mit Bildung verbunden sind, haben wir Schulungsprogramme und Schulungsmaterialien vorbereitet. Sie beschreiben detailliert, welche Fähigkeiten bei der Ausführung bestimmter Aufgaben entstehen und in welchem Verhältnis die erworbenen Fähigkeiten zu den Ausbildungsstandards stehen.