Das LEGO®-MINDSTORMS®-Roboter-Erfinder-Labor - Daniele Benedettelli - E-Book

Das LEGO®-MINDSTORMS®-Roboter-Erfinder-Labor E-Book

Daniele Benedettelli

0,0

Beschreibung

Baue deine eigenen Roboter!

  • Neue, exklusive Modelle mit dem neuen Mindstorms-Roboter-Erfinder-Set
  • Ohne Vorkenntnisse programmieren lernen
  • Erhalte das Rüstzeug für den Entwurf eigener Modelle

Mit seiner großen Auswahl an Steinen, Motoren und intelligenten Sensoren öffnet das LEGO-MINDSTORMS-Roboter-Erfinder-Set die Tür zu einer Welt, in der Physik und Digitales aufeinander treffen. Das LEGO®-MINDSTORMS®-Robot-Inventor-Labor erweitert diese Welt in ein ganzes Universum von lustigen, einzigartigen interaktiven Roboterkreationen! Mit dem Robot Inventor Set und einem Endgerät, auf dem die dazugehörige App läuft, lernst du, wie du Bots jenseits deiner kühnsten Träume bauen kannst - von einem magischen Monster, das Papier verschlingt und geschriebene Fragen beantwortet, bis hin zu einem ferngesteuerten Transformer-Auto, das du fahren, lenken und auf Knopfdruck in einen laufenden humanoiden Roboter verwandeln kannst.

Der Autor und MINDSTORMS-Meister Daniele Benedettelli, ein Robotik-Experte, verfolgt einen projektbasierten Ansatz und führt dich Kapitel für Kapitel durch eine immer ausgefeiltere Sammlung seiner fesselndsten Robotermodelle. Jedes Projekt enthält bebilderte Schritt-für-Schritt-Bauanleitungen sowie detaillierte Erklärungen zur Programmierung deiner Roboter über die MINDSTORMS App - Programmierkenntnisse sind nicht erforderlich.

Beim Bauen und Programmieren einer niedlichen Schildkröte, einer E-Gitarre, mit der du Soli schreddern kannst, eines voll funktionsfähigen Flippers und vielem mehr entdeckst du Dutzende von coolen Bau- und Programmiertechniken, die du auf deine eigenen LEGO Kreationen anwenden kannst - von der Arbeit mit Zahnrädern und Motoren über das Ausgleichen von Sensormessfehlern bis hin zum Speichern von Daten in Variablen und Listen und vielem mehr. Am Ende dieses Buches hast du alle Werkzeuge, das Wissen und die Inspiration, die du brauchst, um deine eigenen LEGO MINDSTORMS-Roboter zu bauen.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern
Kindle™-E-Readern
(für ausgewählte Pakete)

Seitenzahl: 198

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Daniele Benedettelli

Lektorat: Gabriel Neumann

Lektoratsassistenz: Anja Weimer

Übersetzung: Ralf J. Klumb

Copy-Editing: Claudia Lötschert, www.richtiger-text.de

Satz: Veronika Schnabel

Herstellung: Stefanie Weidner

Umschlaggestaltung: Helmut Kraus, www.exclam.de, nach Vorlage von No Starch Press Inc.

Bibliografische Information der Deutschen Nationalbibliothek

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

ISBN:

 

Print

978-3-86490-905-4

PDF

978-3-96910-840-6

ePub

978-3-96910-841-3

mobi

978-3-96910-842-0

1. Auflage 2022

Translation Copyright für die deutschsprachige Ausgabe © 2022 dpunkt.verlag GmbH

Wieblinger Weg 17

69123 Heidelberg

Copyright © 2021 by Daniele Benedettelli. Title of English-language original: LEGO MINDSTORMS Robot Inventor Activity Book: A Beginner’s Guide to Building and Programming LEGO Robots, ISBN 9781718501812, published by No Starch Press Inc. 245 8th Street, San Francisco, California United States 94103. The German-language edition Copyright © 2022 by dpunkt.verlag under license by No Starch Press Inc. All rights reserved.

Hinweis:

Der Umwelt zuliebe verzichten wir auf die Einschweißfolie.

Schreiben Sie uns:

Falls Sie Anregungen, Wünsche und Kommentare haben, lassen Sie es uns wissen: [email protected].

Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder die Verwendung in elektronischen Systemen.

Es wird darauf hingewiesen, dass die im Buch verwendeten Soft- und Hardware-Bezeichnungen sowie Markennamen und Produktbezeichnungen der jeweiligen Firmen im Allgemeinen warenzeichen-, marken- oder patentrechtlichem Schutz unterliegen. LEGO, LEGO-Figuren und LEGO-Bausteine sind Warenzeichen der LEGO-Gruppe. Dieses Buch ist von der LEGO-Gruppe weder unterstützt noch autorisiert worden.

Alle Angaben und Programme in diesem Buch wurden mit größter Sorgfalt kontrolliert. Weder Autor noch Verlag noch Übersetzer können jedoch für Schäden haftbar gemacht werden, die in Zusammenhang mit der Verwendung dieses Buches stehen.

5 4 3 2 1 0

Copyright und Urheberrechte:

Die durch die dpunkt.verlag GmbH vertriebenen digitalen Inhalte sind urheberrechtlich geschützt. Der Nutzer verpflichtet sich, die Urheberrechte anzuerkennen und einzuhalten. Es werden keine Urheber-, Nutzungs- und sonstigen Schutzrechte an den Inhalten auf den Nutzer übertragen. Der Nutzer ist nur berechtigt, den abgerufenen Inhalt zu eigenen Zwecken zu nutzen. Er ist nicht berechtigt, den Inhalt im Internet, in Intranets, in Extranets oder sonst wie Dritten zur Verwertung zur Verfügung zu stellen. Eine öffentliche Wiedergabe oder sonstige Weiterveröffentlichung und eine gewerbliche Vervielfältigung der Inhalte wird ausdrücklich ausgeschlossen. Der Nutzer darf Urheberrechtsvermerke, Markenzeichen und andere Rechtsvorbehalte im abgerufenen Inhalt nicht entfernen.

Für Maria Sole und Libero

LEGO®-MINDSTORMS®-Roboter-Erfinder-Set (#51515) Teileliste

Elementdiagramm in realer Größe

Über den Autor

Daniele Benedettelli ist ein italienischer Robotik-Ingenieur und in aller Welt für seine innovativen LEGO-Mindstorms-Roboter bekannt, darunter der erste NXT-Rubik-Würfel-Löser, verschiedene humanoide Roboter und funktionsfähige Autofabrikmodelle. Von 2006 bis 2013 unterstützte er Tests der LEGO-Gruppe und entwickelte Software für die LEGO-Mindstorms-Produktreihe. Er arbeitet als selbstständiger LEGO-Designer, hält Robotik-Vorträge und -Workshops in aller Welt und lehrt Robotik an Sekundarschulen.

Über den Fachgutachter der Originalausgabe

Xander Soldaat ist ehemaliger Mindstorms-Community-Partner für LEGO Mindstorms. Er war 18 Jahre lang IT-Infrastruktur-Architekt und -Ingenieur, bevor er begann, sich in Vollzeit als Softwareentwickler zu betätigen. Er hat vor Kurzem den Kreis ganz geschlossen und ist bei Red Hat zu seinen Linux-Wurzeln zurückgekehrt. In seiner Freizeit bastelt er an Robotern, beschäftigt sich mit 3D-Druck und selbstgebauten Retrorechnern.

Inhaltsübersicht

Danksagungen

1Los geht’s

2Baseballschläger

3Der Gobbler

4SARKIAP-1, der Transformer

5Shelly, die Schildkröte

6Whac-A-Mole!

7Flipper

8Gitarre

9Wie geht’s weiter?

Anhang: Kurzübersicht zu Textblöcken

Index

Inhaltsverzeichnis

1

Los geht’s

Was ist im Karton?

Der Hub

Die Motoren und Sensoren

Die App

So nutzt du dieses Buch

Zusammenfassung

2

Baseballschläger

Den Baseballschläger bauen

Den Schläger programmieren

Einführung zur App

Ein erstes Programm schreiben

Das Programm speichern undder Ablauf des Programms

Das Programm verstehen

Was hast du gelernt?

3

Der Gobbler

Den Gobbler bauen

Den Gobbler programmieren

Das Grundprogramm schreiben

Das Grundprogramm verstehen

Das Grundprogramm verbessern

Das verbesserte Programm verstehen

Den Gobbler Fragen beantworten lassen

Was hast du gelernt?

4

SARKIAP-1, der Transformer

Den Kerns des aufrecht gehenden Roboters bauen

Den aufrecht gehenden Roboter programmieren

Eigene Blöcke

Das Programm des aufrecht gehenden Roboters verstehen

Bau des Transformers

Den Roboterkörper aufrichten

Letzte Arbeiten am Transformer

Eine benutzerdefinierte Fernsteuerungsschnittstelle erstellen

Reaktion auf Fernsteuerungseingaben

Die Ausrichtung des Hubs im Raum feststellen

Start des gleichzeitigen Ablaufs mehrerer Stapel

Den Transformer programmieren

Eigene Blöcke für Umwandlung in Zweifüßer und Auto

Eigene Blöcke, damit der Roboter geht und wendet

Eigene Blöcke für Auto- und Zweifüßer-Fernsteuerung

Programmstapel zur Verwaltung der Widget-Ereignisse

Was hast du gelernt?

5

Shelly, die Schildkröte

Die Schildkröte bauen

Die Schildkröte programmieren

Benutzerdefinierte Muster auf dem Hub-Display erstellen

Komplexe logische Bedingungen erstellen

Die Blöcke zum Gehen und Bewegen des Kopfs verstehen

Einsatz des Zeitgebers

Interessantere Verhaltensweisen erzeugen

Variablen einsetzen

Das erweiterte Programm verstehen

Was hast du gelernt?

6

Whac-A-Mole!

Das Whac-A-Mole-Spiel bauen

Das Whac-A-Mole-Spiel programmieren

Spielen

Den Hauptstapel verstehen

Die Blöcke für die Auf- und Abwärtsbewegung verstehen

Die Spiellogik verstehen

Was hast du gelernt?

7

Flipper

Den Flipper bauen

Listen einsetzen

Das Hub-Display steuern mit Zeichenfolgen

Das Flipper-Grundprogramm schreiben

Spielen

Das Grundprogramm verstehen

Den Flipper fertigstellen

Das Licht des Abstandssensors steuern mit Zeichenfolgen

Das Flipper-Programm verbessern

Die Schlagtürme programmieren

Zusätzliche Bälle gewinnen

Eine Schräglagenüberwachung hinzufügen

Was hast du gelernt?

8

Gitarre

Die Gitarre bauen

Soli spielen

Das Programm schreiben

Die Gitarre spielen

Das Gitarren-Solo-Programm verstehen

Akkorde spielen

Das Programm schreiben

Berühmte Songs auf der Gitarre spielen

Das Gitarren-Akkorde-Programm verstehen

Die Reglerknöpfe hinzufügen

Die Transpositionssteuerung zum Solo-Programm hinzufügen

Die Transpositions- und Temposteuerung zum Akkorde-Programm hinzufügen

Spielvariationen

Was hast du gelernt?

9

Wie geht’s weiter?

Erweiterung der Software

Erweiterung der Hardware

Knüpfe Kontakte

Was kommt als Nächstes?

A

Anhang: Kurzübersicht zu Textblöcken

Motoren

Bewegung

Licht

Soundeffekte

Ereignisse

Steuerung

Sensoren

Operatoren

Fernsteuerung

Variablen

Mehr Bewegung (Erweiterung)

Mehr Motoren (Erweiterung)

Index

Danksagungen

Ich habe einfach meine Energie und Ideen gesammelt, während ich auf das Erscheinen dieses neuen LEGO-Mindstorms-Sets wartete, da ein neues LEGO-Mindstorms-Set bedeutet, dass ich ein neues Buch schreiben muss! Es gibt viele Menschen, denen ich danken muss, dass dieses möglich wurde.

Zuerst gilt der Dank meiner Familie: meiner Frau Lucia für ihre Geduld mit mir, meiner Tochter Maria Sole, die alle Modelle des Buchs mit stetig steigendem Interesse und hilfreichem Feedback dem Beta-Test unterzog, meinem sehr jungen Sohn Libero, der immer noch nicht versteht, welche LEGO-Spielsachen seine sind und welche meine (ihm fällt es schwer, bei all den verfügbaren LEGO-Roboter-Sachen bei seinen DUPLO-Steinen zu bleiben!).

Ein Dankeschön geht auch an die Großeltern, die sich um die Kinder kümmerten und mir für die Arbeit an diesem Buch einige Stunden am Tage gaben (der Rest bestand leider aus Nachtstunden). Ein großes Dankeschön an meinen Bruder Alessandro, ein talentierter Gitarrist und Musiklehrer, für seine exzellenten Hinweise, die Gitarren-Tonleitern und -Techniken allen zu eröffnen, selbst auf einer LEGO-Gitarre ohne Saiten.

Danke auch an das Team von No Starch Press, insbesondere an Nathan Heidelberger, einen präzisen, kreativen und zuverlässigen Redakteur, sowie Bill Pollock für seine stetige und resolute Führung.

Ein riesiges Dankeschön gilt Xander Soldaat – Mann, ich stelle fest, dass du seit 2006 keine Chance ausgelassen hast, mich mit deinen exzentrischen Genuine Italian™-Gerichten zu sticheln! –, der ein ebenso wertvoller, ernsthafter technischer Rezensent ist wie beim Abhängen ein geistreicher Freund, in den vergangenen Jahren leider nur in der Ferne. Danke an Maureen, eine liebe Freundin, die nie aufgehört hat, mich im Laufe dieses Projekts zu ermutigen (bitte entschuldige mein gelegentliches Jammern!).

Ich möchte der lieben Amelia für ihren unschätzbaren frühen Beitrag zur allgemeinen Stimmung des Buchs und den darin erforderlichen Spaßfaktor danken. Danke an all die Kinder in meiner lockeren Fokusgruppe, die sich im Sommerurlaub von allein bildete, als das Buch nur aus einigen gekritzelten Seiten bestand. Danke an Adele für ihr Feedback zur Projektliste.

Danke an meinen Fotografen und Freund Matteo Neri (https://matteoneriphoto.com/) für das wundervolle Foto auf der Titelseite des Buchs.

Ein großes Dankeschön an all die Mitglieder der LDraw-Community, die die Kleinigkeiten und Werkzeuge entwickelten, die zur Schaffung der hochwertigen Bauanleitungen beitrugen. Ein besonderer Dank gilt Master Builder und Buchautor Philippe Hurbain (Philo), ein Meister der Modellierung von 3D-LEGO-Elementen, Roland Melkert für seine fantastische LDCad-Software und Trevor Sandy für seine Arbeit an der Entwicklung von LPub3D.

1

Los geht’s

»Let’s go already!«

Bender, Futurama

Alle Modelle in diesem Buch lassen sich mit einem einzigen LEGO-Set bauen: dem LEGO-MINDSTORMS-Roboter-Erfinder-Set mit der Nummer 51515. Mit diesem LEGO-Set und einem Gerät, auf dem die LEGO-Mindstorms-App laufen kann, bist du bereit, jeden beliebigen Roboter zu kreieren, den du dir vorstellen kannst.

Von einem ferngesteuerten Auto, das sich in einen gehenden humanoiden Roboter verwandelt, bis hin zu einer Gitarre, die du tatsächlich spielen kannst, sind deinem Erfindungseifer keine Grenzen gesetzt!

Was ist im Karton?

Das LEGO-Mindstorms-Roboter-Erfinder-Set enthält fast 1.000 LEGO-Technic-Elemente, darunter große Technic-Rahmen, Räder und Verbinder, die es ganz einfach machen, schnell richtig funktionierende Roboter zu bauen, die alle möglichen coolen Dinge machen können. Neben einfachen LEGO-Technic-Elementen umfasst das Set einige elektronische Bausteine, die in Abbildung 1-1 dargestellt sind: vier Medium-Motoren mit eingebauten Rotationssensoren, ein Farbsensor, ein Abstandssensor und der Hub (kurz für den großen LEGO Technic Large Hub), der das Gehirn aller von dir geschaffenen Roboter sein wird.

Der Hub

Der Hub ist ein Computer, ein programmierbarer LEGO-Stein, der deine Roboter in Funktion setzt. Du kannst den Hub zum Ausführen von Programmen verwenden, Anweisungen, die du für die von dir gebauten Roboter schreibst. Die Programme sagen dem Hub, wie er die Motoren und Sensoren steuern soll, die du an den sechs Ein-/Ausgängen des Hubs (drei auf jeder Seite, wir nennen sie in diesem Buch port, englisch für Anschluss) anschließen kannst. Der Hub ist schlau genug, zu wissen, welche Art von Motor oder Sensor an jedem Port angeschlossen ist, ohne dass ihm das gesagt werden muss.

Der Hub hat ein 5×5-Matrix-Display, bestehend aus fünf Reihen und Spalten mit Licht emittierenden Dioden (LEDs), und einen eingebauten Lautsprecher. Er hat eine sechsachsige Inertialnavigationseinheit (IMU), die aus einem dreiachsigen Beschleunigungsmesser und einem dreiachsigen Gyroskop besteht. Eine IMU ist dieselbe Art von Einrichtung, die einem Smartphone oder Tablet sagt, wo oben ist, und du kannst die IMU des Hubs ebenso zum Feststellen der Rotation oder der Orientierung des Hubs im Raum verwenden.

Abbildung 1-1: Die im LEGO-Mindstorms-Set enthaltenen elektronischen Elemente: (von links) der Hub, einer der vier Medium-Motoren, der Abstandssensor und der Farbsensor

Der Hub verfügt zudem über drei Tasten für die Menünavigation und eine Taste zum Aktivieren der Bluetooth-Verbindung. Du kannst den Hub mit anderen Geräten zur Programmierung und Fernsteuerung mittels USB oder Bluetooth verbinden.

Schließlich hat der Hub einen Akku, der sich durch Anschließen des Hubs an einer USB-Stromversorgung mit dem im Set enthaltenen Micro-USB- auf USB-Kabel laden lässt. Das ist echt praktisch und umweltfreundlich!

Die Motoren und Sensoren

Mit den vier Medium-Motoren kann man dank ihrer kompakten Form und der vielen Montagelöcher sehr gut arbeiten. Sie sind Servomotoren, das heißt, du kannst sie in bestimmte Positionen drehen und ihre Geschwindigkeit steuern. Jeder Motor hat eine Null-Position, die auf dem Motorgehäuse mit einem Kreis markiert ist. Der im Motor eingebaute Rotationssensor misst die Position der Motorwelle (der Teil des Motors, der sich dreht) relativ zu dieser Null-Position. Dieses praktische Merkmal bedeutet, dass du den Motor nicht in eine erste bekannte Position bringen musst.

Der Abstandssensor misst den Abstand eines vor ihm angeordneten, bis zu 2 Meter entfernten Objekts. Er kann in Zentimetern oder Zoll messen. Er misst Abstände genauso wie Fledermäuse es tun. Der Sensor sendet von seinem Sender-»Auge« einen Impuls mit Ultraschallwellen (sehr hohe Töne, die das menschliche Ohr nicht hören kann) und misst die Zeit, die der Ton benötigt, um von einem Objekt reflektiert zu werden und zum anderen »Auge«, dem Empfänger, zurückzukommen.

Der Sensor berechnet den Abstand anhand dieser Zeitmessung und der Geschwindigkeit des Schalls in der Luft. Die Abstandsmessungen sind bei flachen, harten Objekten ziemlich präzise, aber gegenüber Stoffen oder anderen weichen Objekten, die Schallwellen absorbieren, ist der Sensor blind. Der Sensor besitzt vier programmierbare Leuchten rund um die Augen. Cool – du kannst deine Roboter zwinkern lassen!

Der Farbsensor kann von seiner LED aus Licht auf ein rund 2 Zentimeter (etwas weniger als 1 Zoll) vor ihm angeordnetes Objekt scheinen lassen und den Prozentsatz des von diesem Objekt reflektierten Lichts messen. Diese Art der Graustufenmessung ist zum Beispiel nützlich, um die Kante einer schwarzen Linie auf einer weißen Oberfläche zu erkennen. Der Sensor kann auch die Farbe eines Objekts erkennen und eine Zahl wiedergeben, die einer der LEGO-Farben entspricht (Weiß, Blau, Schwarz, Grün, Gelb, Rot, Dunkeltürkis, Violett oder keine Farbe).

Die App

Die LEGO-Mindstorms-App verwendest du zum Programmieren deiner Roboter. Die App kann auf vielen Geräten laufen, darunter Computer mit Windows 10, mit macOS sowie Smartgeräte mit Android und iOS (sowohl Smartphones als auch Tablets). Prüfe vor dem Kauf des Roboter-Erfinder-Sets, dass dein Gerät die für den Betrieb der App nötigen Mindestanforderungen erfüllt. Die Informationen zur Gerätekompatibilität und Mindestanforderungen findest du auf der offiziellen Supportseite von LEGO: https://www.lego.com/de-de/service/device-guide/mindstorms-robot-inventor.

Selbst wenn du die App schon mit den fünf Robotern verwendet hast, die Teil des Roboter-Erfinder-Sets sind, könntest du manches Detail oder Merkmal der App übersehen haben, oder du hast vielleicht selbst noch kein Programm in der App geschrieben. Daher beschreibe ich die Programmierblöcke und die Eigenschaften der App, wie wir sie in den folgenden Kapiteln verwenden.

So nutzt du dieses Buch

Dieses Buch hat einen projektbasierten Ansatz. In jedem Kapitel erstellst du einen vollständigen Roboter. Ich habe die spannendsten, unterhaltsamsten und interaktivsten Modelle gewählt, die ich mir vorstellen konnte, von einem Transformer über einen Flipper bis zu einer elektrischen Gitarre, und noch ein paar mehr. Jedes Projekt baut auf den in den vorhergehenden Kapiteln gewonnenen Kenntnissen auf, weshalb ich empfehle, die Kapitel der Reihe nach durchzugehen.

Teil eines jeden Kapitels sind schrittweise Anleitungen für den Bau des jeweiligen Roboters. Beim Befolgen der Anleitungen lernst du viele coole Bautechniken, die du auf deine eigenen LEGO-Kreationen anwenden kannst. Der andere Teil jedes Kapitels erläutert, wie du dem Roboter mittels der Programmiersprache Scratch sagst, was er tun soll. Wir sprechen jedes Programm im Detail durch, damit du siehst, wie es funktioniert und wie du deine eigenen Programme schreiben kannst. Wenn du es aber eilig hast oder einfach nicht abwarten kannst, mit den Robotern aus dem Buch zu spielen, dann kannst du alle Programme für die Roboter (ihren Quellcode) unter https://www.nostarch.com/lego-mindstorms-robot-inventor-activity-book/ herunterladen. Vergiss nicht, für Updates und ergänzende Materialien zu diesem Buch und LEGO Mindstorms im Allgemeinen meine Website https://robotics.benedettelli.com/ mit einem Lesezeichen zu versehen.

Zusammenfassung

Das LEGO-Mindstorms-Roboter-Erfinder-Set schließt alles ein, was du für den Bau starker, origineller Roboter benötigst. Es umfasst viele LEGO-Technic-Elemente aus Kunststoff, aber das wahre Herz – oder eher das Gehirn – des Sets ist der Hub, ein programmierbarer Baustein, den du zum Steuern der Motoren und Sensoren des Sets verwenden kannst.

Im nächsten Kapitel erfährst du, wie du einen Baseball spielenden Roboter von Grund auf programmierst.

2

Baseballschläger

»Take me out to the ball game …«J. Norworth & A. Von Tilzer

Die einfache Vorrichtung, die du gleich bauen wirst, ist ein Baseball spielender Roboter (Abbildung 2-1). Dieses Projekt führt dich an die drei Stufen eines jeden Robotersystems heran: Eingabe, Verarbeitung und Ausgabe.

Eingaben sind Daten aus der Welt außerhalb des Roboters. In diesem Fall erfolgt die Eingabe durch die LEGO-Sensoren, die erkennen, wenn sich der Ball nähert. Verarbeitung erfolgt, wenn wir diese Eingabe nehmen und damit etwas tun. Die Verarbeitung erfolgt im Hub, der ein Programm laufen lassen wird, das wir schreiben werden. Das Programm wird dem Roboter sagen, auf den Ball zu warten und dann den Schläger zu schwingen.

Abbildung 2-1: Der Baseballschläger ist eine einfache Vorrichtung, die dir bei deinen ersten Schritten zur Programmierung von Robotern hilft.

Ausgabe ist das, was der Roboter als Resultat der Verarbeitung tut. Unsere Ausgabe wird eine Handlung sein: Der Motor schwingt den Schläger, um den Ball zu schlagen. Wir können noch mehr Spaß mit dem Roboter haben, indem wir weitere Ausgaben hinzufügen, wie zum Beispiel das Abspielen eines Soundeffekts und die Anzeige einer netten Animation auf dem Hub-Display.

Den Baseballschläger bauen

In diesem Abschnitt findest du die schrittweise Anleitung zum Bau des Baseballschlägers. In jedem Schritt zeigt der erste Kasten die Teile, die du für diesen Schritt benötigst.

Die weißen Punkte helfen dir, die schwarzen Technic-Pins in die richtigen Löcher zu stecken. Die dunkeltürkisfarbene Technic-Grundplatte wird in der Teileliste nicht angezeigt, um Platz zu sparen.

Schließe den Motor an Port F des Hubs an.

Im Verlauf des Buchs siehst du manchmal neben einem Teil eine Zahl in einem Kreis (für Achsen oder Paneele) oder in einem Kästchen (für Balken). Diese Zahl nennt dir die Länge des Teils in LEGO-Einheiten oder Noppen. Du kannst die Länge eines Balkens durch Zählen seiner Löcher ermitteln. Du kannst die Länge von Achsen ermitteln, indem du sie neben einen Balken legst und die Löcher im Balken zählst. Abbildung 2-2 zeigt zum Beispiel eine 5 Noppen lange Achse (5L) neben einem 9L-Balken.

Abbildung 2-2: Du kannst die Länge eines Balkens durch Zählen seiner Löcher ermitteln. Zum Ermitteln der Länge einer Achse halte sie neben einen Balken und zähle die Löcher im Balken.

Wenn du ein Submodell in seinem eigenen Kasten wie hier siehst, dann baue es zusammen, bevor du es an das Hauptmodell montierst.

Schließe den Abstandssensor an Port B und den Farbsensor an Port D an.

Das Modell ist vollständig!

Den Schläger programmieren

Jetzt, da du den Roboter gebaut hast, ist es an der Zeit, ihm zu sagen, was er tun soll. Mit anderen Worten: Du musst ihn programmieren. Vielleicht kennst du eine andere Bezeichnung für das Programmieren: Codieren. Beim Programmieren schreibst du Code mit Anweisungen, die eine Maschine wie ein Roboter verstehen kann. Ich führe dich schrittweise durch den Ablauf des Programmierens des Baseballschlägers, damit du siehst, wie man in der Mindstorms-App Code schreibt. Denke dran, dass du den gesamten in diesem Buch verwendeten Code unter https://nostarch.com/lego-mindstorms-robot-inventor-activity-book/ herunterladen kannst.

HINWEIS Wenn du bereits Experte in der Anwendung der Mindstorms-App bist, dann kannst du dir das vollständige Programm in Abbildung 2-5 ansehen, bevor du direkt zu »Das Programm verstehen« auf Seite 12 gehst.

Einführung zur App

Starte die LEGO-Mindstorms-App mit einem Doppelklick oder Antippen ihres Symbols, je nachdem, welches Gerät du verwendest. Nach wenigen Augenblicken sollte der Lobby-Bildschirm erscheinen. Auf einem Computer sollte es wie in Abbildung 2-3 aussehen. Auf kleineren Bildschirmen siehst du nur jeweils einen Roboter. In jedem Fall solltest du am unteren Bildschirmrand vier Tasten sehen und eine oben rechts.

Die unteren Schaltflächen von links nach rechts: Die Startseite-Schaltfläche bringt dich zur Lobby, Community zeigt eine Liste von Erfindungen, die von LEGO-Fans ausgetüftelt wurden, Projekte zeigt dir eine Liste der von dir erstellten Projekte, und Programmieren führt dich direkt in die Programmierumgebung. Die Einstellungen-Taste in Gestalt eines Zahnrads in der oberen rechten Ecke des Bildschirms zeigt Einstellungen daneben führt ein Knopf mit einem Fragezeichen zum Hilfe-Center.

Abbildung 2-3: Die LEGO-Mindstorms-App-Lobby. Von hier aus kannst du die Aktivitäten der fünf im Kasten enthaltenen Roboter starten, deine Projekte und Einstellungen verwalten oder ein neues Programm starten. Das Aussehen der App kann je nach Gerät, auf dem sie läuft, variieren.

Klicke auf die Taste Programmieren am unteren rechten Rand des Bildschirms und öffne den Programmierbereich. Das sollte aussehen wie in Abbildung 2-4.

Die Textblöcke

Mit der LEGO-Mindstorms-App kannst du deine Roboter mit Scratch 3.0, einer blockbasierten visuellen Programmiersprache, programmieren. Auf der linken Seite deines Bildschirms siehst du alle Textblöcke, die Bausteine deiner Programme. Jeder Textblock repräsentiert eine Anweisung, die dein Roboter ausführen soll. Die Blöcke sind in Paletten gruppiert, auf ihren Funktionen basierend. So hat zum Beispiel eine Palette Blöcke allein zur Steuerung der Motoren, ein anderer Blöcke für die Sensoren und so weiter.

Du kannst Blöcke von der Palette in den Programmierbereich nach rechts ziehen. Durch das Kombinieren von Blöcken zu Stapeln kannst du Programme bauen, die deinen Roboter anweisen, allerlei Dinge zu tun. Jeder Stapel aus Blöcken wird von oben nach unten ausgelesen.

Verbindung mit dem hub

Zum Steuern deines Roboters muss du deinen Computer, dein Handy oder Tablet mit dem Hub verbinden. Du kannst ein USB-Kabel oder Bluetooth verwenden. Wenn der Hub per USB mit deinem Computer verbunden ist, dann findet die App den Hub automatisch. Wenn du eine Verbindung via Bluetooth herstellen möchtest, klicke auf die Taste Hub-Verbindung öffnen und folge den Anweisungen auf dem Bildschirm.

HINWEIS Solltest du Probleme haben, den Hub via Bluetooth zu verbinden, sieh dir die offizielle LEGO-Support-Seite an: https://education.lego.com/en-us/product-resources/spike-prime/troubleshooting/bluetooth-connectivity/. Diese Seite bezieht sich auf SPIKE Prime, einen anderen LEGO-Robotik-Bausatz. Der SPIKE-Prime-Hub ist genau der gleiche wie der Roboter-Erfinder-Hub, nur in Gelb.

Sobald der Hub verbunden ist, wird der Punkt am Hub-Symbol oben rechts in der App grün, und neben diesem Symbol erscheinen Sensor-Angaben in Echtzeit . Diese Angaben sagen dir ganz genau, was jeder Sensor in jedem Moment erfasst. Wenn du deine Hand vor dem Abstandssensor vor und zurück bewegst, sollte sich die auf dem Bildschirm angegebene Zahl ändern.

Ein erstes Programm schreiben

Wenn du den Programmierbereich öffnest oder ein neues Projekt erstellst, solltest du bereits einen Block auf der Programmieroberfläche sehen: wenn das Programm startet. Das ist ein Beispiel für einen Kopfblock. Wie ein Kopf oben auf einem Körper sitzt, gehört auch der Kopfblock oben auf andere Blöcke. Jeder Blockstapel muss mit einem Kopfblock beginnen, der dem Roboter sagt, wann dieser Stapel ablaufen soll. Im Moment findest du alle Kopfblöcke in der gelben Ereignisse-Palette. (Später, wenn wir eine Fernsteuerung erstellen, erscheinen weitere Kopfblöcke in der Fernbedienung-Palette.)

Abbildung 2-4: Der Programmierbereich, dargestellt am PC-Monitor. Mit der LEGO-Mindstorms-App kannst du durch Stapeln von Blöcken Programme erstellen, genau wie du LEGO-Steine aufeinandersetzt.

Alle mit wenn das Programm startet verbundenen Blöcke werden automatisch ablaufen, sobald das Programm beginnt. Du kannst in deinem Programm mehr als einen wenn das Programm startet-Block haben. In diesem Fall startet jeder dieser Stapel gleichzeitig.

Lass uns das Programm für den Baseballschläger Schritt für Schritt erstellen. Wir wollen erreichen, dass der Roboter den Schläger schwingt, wenn er den Ball kommen sieht. Abbildung 2-5 zeigt das vollständige Programm. Wir gehen den Bau blockweise durch.

Abbildung 2-5: Das vollständige Programm für den Baseballschläger verwendet den Farbsensor zum Erkennen des Balls.

1. Öffne die Palette

Motoren

, ziehe den Block

Motorgeschwindigkeit einstellen

auf die Programmieroberfläche und platziere ihn unter dem gelben Kopfblock. Beachte, wie der Block in der Position einrastet, auch wenn du ihn nur nahe am gelben Block ablegst.

Dieser Block schaltet aber keine Motoren ein. Er sagt ihnen nur, wie schnell sie sich drehen sollen, sobald sie eingeschaltet werden. Du kannst jede Geschwindigkeit zwischen –100 % und 100 % wählen. Negative Zahlen lassen die Motoren rückwärtslaufen. Ohne diesen Block werden die Motoren versuchen, standardmäßig mit 75 % Geschwindigkeit zu laufen.

Wenn nur ein Motor am Hub und der Hub an der App angeschlossen ist, dann sollte der Block Motorgeschwindigkeit einstellen bereits den Port anzeigen, an dem der Motor angeschlossen ist. Wenn im Block der Port-Buchstabe F noch nicht ausgewählt ist, wähle ihn mit dem Aufklappmenü zur Auswahl des Anschlusses, wie in Abbildung 2-6 dargestellt. Dann stelle die Geschwindigkeit auf 100 % ein. Jetzt sollte der Motor mit vollem Tempo laufen, sobald das Programm startet.

Abbildung 2-6: Jeder Motorblock hat ein Port-Eingabe-Menü, in dem du festlegen kannst, an welchem Port der zu steuernde Motor angeschlossen ist. Du kannst einen einzelnen Port oder mehrere Ports wählen.

2. Ziehe aus derselben Palette den Block

Motor auf Position bewegen

und leg ihn unter dem vorigen blauen Block ab und stelle den Port auf

F

ein. Dieser Block sagt dem Motor, dass er sich drehen soll, bis die Markierung auf der Welle einen bestimmten Winkel relativ zur runden Markierung auf dem Motorgehäuse erreicht. Ein Winkel von 0 richtet sich an der Markierung aus. Danach steigt der Winkel im Uhrzeigersinn bis 359.

Um den angegebenen Winkel zu erreichen, kannst du dem Motor sagen, er soll sich im Uhrzeigersinn, gegen den Uhrzeigersinn oder in der Richtung drehen, die den kürzesten Weg ergibt, wie in Abbildung 2-7 dargestellt. In unserem Fall wähle kürzester Weg und stelle die Position auf 0