Ein Projekt hat meistens mehrere Programme. Dieses sind wie Tabs in einem Browser oben nebeneinander aufgelistet. Wenn du ein neues Projekt geöffnet hast, siehst du unten die Programmierblöcke. Sie sind farblich in 6 verschiedene Gruppen eingeteilt.
Eigene Blöcke sind noch nicht vorhanden, da diese ja erst vom Benutzer erstellt werden können.
Um zu programmieren musst du einfach einen Block von unten auswählen und an den Start-Block, der schon vorgegeben ist und für jedes Programm absolut notwendig ist anhängen. Am besten probierst du die einzelnen Blöcke selbst aus, dadurch versteht man ihre Funktion am besten. Unterhalb werden aber alle Blöcke noch einmal einzeln erklärt.
Jeder Block hat verschiedene Modi und verschiedene Ein-und Ausgaben. Das "n" bei den Modi ist eine Variable, die bei Auswahl des Modus festgelegt werden kann:
Bei jedem Block, der einen Motor steuert, musst du oben den Ausgang festlegen, mit dem der Motor verbunden ist.
Im Aktionsmodus haben Motoren keine Ausgaben. In anderen Bereichen können Motoren auch Ausgaben haben, also als Sensoren verwendet werden.
Modi | Eingaben | Erklärung |
---|---|---|
Aus | Am Ende bremsen:wahr/falsch | Stoppt alle durch den Mittleren Motor Block gestarteten Blöe. |
An | Leistung:-100 - 100 | Startet den mit dem Mittleren Motor verbundenen Motor: |
An f&uunl;r n Sekunden | Leistung:-100 - 100Sekunden:Alle ganzen Zahlen moöglich(Z)Am Ende bremsen:wahr/falsch | Motorbewegung für eine bestimmte Zeit. |
An für n Grad | Leistung:-100 - 100Gradzahl:-360 - 360Am Ende bremsen:wahr/falsch | Motorbewegung für eine kleine Gradzahl |
An für n Umdrehungen | Leistung:-100 - 100Umdrehungen:Alle ganzen Zahlen möglichAm Ende bremsen:wahr/falsch | Motorumdrehungen für ein vorher eingestellte Anzahl. |
Besonderheiten: Der typische Motorausgang f&uunl;r der Mittleren Motor ist A. |
Modi | Eingaben | Erklärung |
---|---|---|
Aus | Am Ende bremsen:wahr/falsch | keine |
An | Leistung:-100 - 100 | keine |
An f&uunl;r n Sekunden | Leistung:-100 - 100Sekunden:Alle ganzen Zahlen moöglich(Z)Am Ende bremsen:wahr/falsch | keine |
An für n Grad | Leistung:-100 - 100Gradzahl:-360 - 360Am Ende bremsen:wahr/falsch | keine |
An für n Umdrehungen | Leistung:-100 - 100Umdrehungen:Alle ganzen Zahlen möglich(Z)Am Ende bremsen:wahr/falsch | keine |
Besonderheiten: Der typische Motorausgang f&uunl;r den Großen Motor ist D. |
Modi | Eingaben | Erklärung |
---|---|---|
Aus | Am Ende bremsen:wahr/falsch | Stoppt alle vorher durch Standartsteuerung gestartete Motoren |
An | Lenkung:-100 - 100Leistung:-100 - 100 | Startet die eingegebenen Motoren für unbestimmte Zeit. |
An f&uunl;r n Sekunden | Lenkung:-100 - 100Leistung:-100 - 100Sekunden:Alle ganzen Zahlen moöglich(Z)Am Ende bremsen:wahr/falsch | Motorbewegung für eine eingestellte Zeit. |
An für n Grad | Lenkung:-100 - 100Leistung:-100 - 100Gradzahl:-360 - 360Am Ende bremsen:wahr/falsch | Motorbewegung für eine eingestellte Gradzahl. |
An für n Umdrehungen | Lenkung:-100 - 100Leistung:-100 - 100Umdrehungen:Alle ganzen Zahlen möglich(Z)Am Ende bremsen:wahr/falsch | Motorbewegung für eine eingestellte Anzahl an Umdrehungen. |
Besonderheiten: Die typischen Motorausgänge f&uunl;r die Standartsteuerung sind B+C. |
Modi | Eingaben | Erklärung |
---|---|---|
Aus | Am Ende bremsen:wahr/falsch | Stoppt alle vorher durch Hebelsteuerung gestartete Motoren<./td> |
An | Leistung links:-100 - 100Leistung rechts:-100 - 100 | Startet die eingegebenen Motoren für unbestimmte Zeit. |
An f&uunl;r n Sekunden | Leistung links:-100 - 100Leistung rechts:-100 - 100Sekunden:Alle ganzen Zahlen moöglich(Z)Am Ende bremsen:wahr/falsch | Bewegen der eingegebenen Motoren für eine vorher festgelegte Zeit. |
An für n Grad | Leistung links:-100 - 100Leistung rechts:-100 - 100Gradzahl:-360 - 360Am Ende bremsen:wahr/falsch | Bewegen der eingegebenen Motoren für eine vorher festgelegte Gradzahl. |
An für n Umdrehungen | Leistung links:-100 - 100Leistung rechts:-100 - 100Umdrehungen:Alle ganzen Zahlen möglich(Z)Am Ende bremsen:wahr/falsch | Bewegen der eingegebenen Motoren für eine vorher festgelegte Anzahl von Umdrehungen: |
Besonderheiten: Die typischen Motorausgänge f&uunl;r die Hebelsteuerung sind B+C. Im Unterschied zur Standartsteuerung müssen bei der Hebelsteuerung die Geschwindigkeiten der beiden fahrenden Motoren angegeben werden. Standart-und Hebbelsteuerung können sich gegenseitig ersetzen |
Modi | Eingaben | Erklärung |
---|---|---|
Text->Pixel | Bildschirm löschenx:-177 - 177y:-127 - 127Farbe:weiß/schwarzSchriftart0,1,2 | Einfügen von Schrift |
Text->Raster | Bildschirm löschenSpalte:alle ganzen Zahlen Möglich(Z)Zeile:alle ganzen Zahlen Möglich(Z)Farbe:weiß/schwarzSchriftart0,1,2 | Einfügen von Schrift |
Formen->Linie | Bildschirm löschenx1:177y1:127x2:177y2:127Farbe:weiß/schwarz | Eine Linie wird erzeugt, die vom Punkt P1(x1/y1) zum Punkt P2(x2/y2) führt. |
Formen->Kreis | Bildschirm löschenx:-177 - 177y:-127 - 127Radius:alle positive ganze Zahlen möglichAusfüllen:wahr/falschFarbe:weiß/schwarz | Erzeugt einen Kreis;der durch den Radius und die x und y Eingabe positioniert und eingestellt wird. |
Formen->Rechteck | Bildschirm löschenx:-177 - 177y:-127 - 127Breite:alle ganzen Zahlen möglichHöhe:alle ganzen Zahlen möglichAusfüllen:wahr/falschFarbe:weiß/schwarz | Erzeugt ein Rechteck auf dem Bildschirm des Steins. |
Formen->Punkt | Bildschirm löschenx:-177 - 177y:-127 - 127Farbe:weiß/schwarz | Erzeugt einen Punkt, der durch die x und y Eingabe positioniert wird. |
Bild | Bildschirm löschenx:-177 - 177y:-127 - 127 | Erlaubt das Einfügen von Bildern |
Bildschirm zurücksetzen | keine | Löscht alle vorher geladenen Bilder und Formen: |
Besonderheiten: |
Modi | Eingaben | Erklärung |
---|---|---|
Stopp | keine | Stoppt das Abspielen von Noten, Tönen und Dateien. |
Datei abspielen | Lautstärke:0 - 100Typ abspielen:0,1,2 | Aus den eigenen Dateien kann ein Lied abgespielt werden(hö,chstens 10 sek. pro Block: |
Ton abspielen | Frequenz:261,63 - 2093 (nebenstehend die Noten zur Orientierung)Dauer:alle ganzen Zahlen möglichLautstärke:0 - 100Typ abspielen:0,1,2 | Einzelne Töne werden abgespielt. Man könnte ein Lied komponieren. |
Note abspielen | Note:C4 - B6Dauer:alle ganzen Zahlen möglichLautstärke:0 - 100Typ abspielen:0,1,2 | Ähnlich wie "Ton abspielen". |
Besonderheiten: |
Modi | Eingaben | Erklärung |
---|---|---|
Aus | keine | Schaltet die Stein-Statusleuchte aus |
An | Farbe:0,1,2Pulsieren:wahr/falsch | Schaltet die Stein-Statusleuchte für unbestimmte Zeit an |
Zurücksetzen | keine | Löscht die Farbe der Stein-Statusleuchte und zeigt stattdessen den Akkustand des Steins durch Farben an. |
Besonderheiten: |
Der Start-Block hat keine Ein-und Ausgaben. Er ist aber Grundbestandteil jedes Programms, da alle Programme durch ihn gestartet werden. Es kann auch vorkommen, dass in einem Programm mehrere Start-Böcke erscheinen.
Dieser Block pausiert das Programm solange, bis eine bestimmte, vorher festgelegte Bedingung erfüt wird.
Das Beispiel-Programm Warten.ev3
Jede Schleife hat einen Index(links, am Anfang des Blocks), der die Anzahl der Schleifendurchläufe angibt, und eine Bedingung, wann die Schleife beendet werden soll(rechts). Es ist möglich, dass eine Schleife endlos durchlaufen wird, was vermieden werden sollte, oder aber, dass eine Schleife nach einem Durchlauf beendet ist.
Lade dir Schleife.ev3 herunter. Das Programm besteht aus einer Schleife, die nach jeder Sekunde einen neuen Schleifendurchlauf beginnt und anzeigt, wie viele Durchläfe bereits geschehen sind. Denn wenn die Schleife 10 mal ausgeführt wurde, wird das Programm beendet. Der Index wird dabei verwendet.
Der Schalter-Block funktioniert wie "if" in php oder "Wenn..., dann..., sonst" in einer Tabellen Kalkulation. Links auf dem Block wird die Bedingung(Wenn) festgelegt. in das obere Feld mit dem Haken kommen die Blöcke, die "dann" passieren, und in das untere Feld kommen die Blöcke die "sonst", wenn die Bedingung nicht erfüllt wird, ausgeführt werden sollen.
Schalter beeinhaltet den Schalter, der folgendermaßen funktioniert:
WENN der Roboter mithilfe des Infrarotsensors einen Gegenstand vor sich erkennt,
DANN dreht er um 90° nach rechts,
SONST tut er nichts(fährt er weiter geradeaus).
Das ganze ist in einer Schleife verpackt.
Der Schleifen-Interrupt Block kann eine Schleife vorzeitig beenden. Wenn man zum Beispiel auf den Warten-Block verzichten möchte, so kann man eine endlos Schleife mit einem Schleifen-Interrupt benutzen. Wichtig ist, dass du oben rechts den Namen der Schleife angibst, die abgebrochen wird, dess wenn man ein Schleifen-Interrupt Block benutzen will, sollte man vorher allen Schleifen individuelle Namen geben, damit Verwechselungen zwischen den Schleifen vermeiden kann. Wird ein Schleifen-Interrupt ausgeführt, überspringt der Roboter den Rest der Schleife und führt erst wieder die Blöcke aus, die nach der Schleife kommen.
Sieh dir dazu auch folgendes Programm an: Schleifen-Interrupt.ev3.
Das Programm prüft in einer Unendlichkeitsschleife, ob die mittlere Steintaste gedrückt wird. Wenn dies der Fall ist, wird die Schleife durch den Block Schleifen-Interrupt abgebrochen und auf dem Bildschirm erscheint "Danke!!!" und die Reaktionszeit.
Alle Sensor-Blöcke haben mindestens die Modi "Vergleichen" und "Messen". Wenn der Modus "Messen" ausgewählt ist, gibt es meistens nur eine Ausgabe, die je nach Sensor einen numerischen Wert ausgibt. Bei "Vergleichen" wird nicht nur der Wert des entsprechenden Sensors aufgreufen, sondern auch verarbeitet.
Der Sensorblock Stein-Tasten misst und vergleicht, ob eine oder mehrere Tasten auf dem EV3-Stein gedrückt, angedrückt oder ausgelassen wurde.
Ob zum Beispiel der Boden blau ist, kann mit dem Farbsensor überprüft werden.
Fährt der Roboter gerade gegen eine Mauer? Um soetwas zu verhindern dient der Infrarotsensor, der zum Beispiel vorne am Roboter angebracht die Entfernung zum nächsten Gegenstand messen kann und in Verbindung mit einem Schalter einen Unfall verhindern kann.
Dieser Sensorblock ist der einzige, der seine Werte von einem Motor bezieht, den wir bis jetzt erst als Ausgabe und nicht als Eingabe kennengelernt haben. Eine Beispielanwendung ist ein Windrad. Baut man ein Windrad aus Lego und verbindet die Stange der Flügel mit einem beliebigen Motor kann man mithilfe von Motorumdrehung/Vergleichen/Stromstärke die Stromstärke des Windrades ermitteln.
Diesen Sensor kannst du nicht sehen. Er bestimmt die Zeitabstände zwischen bestimmten Ereignissen. Willst du diesen Block verwenden musst du beachten, dass du zunächst einen Block Zeitgeber/Zurücksetzen, dann einen Block Zeitgeber/Messen oder Vergleichen/Zeit und am Ende, wenn du die Zeit bis zum jetzigen Augenblick wissen willst, den erneut den Block Zeitgeber/Messen oder Vergleichen/Zeit. Zwischen den beiden Blöcken Zeitgeber/Messen oder Vergleichen/Zeit, wird die Zeit gemessen. Ist dazwischen der Block Zeitgeber zurücksetzen, wird die Zeit auf 0 Sekunden resetet.
Der Berührungssensor misst und vergleicht wie schon der Name sagt die Werte des Berührungssensors.
Variablen sind Platzhalter. In einer Variable kannst du zum Beispiel Sensorwerte abspeichern. Bevor du eine Variable lesen willst, musst du sie zunaächst geschrieben haben.
Konstante haben einen festgelegten Wert, der sich im Gegensatz zu Werten bei einer Variablen nicht ändern kann.
Ein Array ist vergleichbar mit einer Tabelle. Bei einem numerischen Array kannst du jedem Index eine Zahl zuweisen. Arrays können mit diesem Block verändert werden.
Die "Logische Verknüpfung" ist eine Überprüfung, die einen logischen Wert(wahr/falsch) ausgibt. Der Modus "Und" überpfüft, ob die Eingaben A UND B beide wahr sind. Bei "Oder" muss dagegen nur A ODER B wahr sein, um eine wahre Ausgabe zu bekommen. Beim "EXKLUSIVEN Oder" darf nur 1 Eingabe wahr sein, um eine wahre Ausgabe zu bekommen, im Gegensatz zum "Oder", wo 1 und 2 wahre Eingaben eine wahre Ausgabe erzeugen.
Der Block "Mathe" ist für die mathematischen Funktionen Addieren, Subtrahieren, Multiplizieren, Dividieren, Betrag, Radizieren, Quadrieren zuständig. Der Modus "ADV Großer Funktionsumfang" beinhaltet auch trigonometrische Funktionen sowie Gleichungen.
Das Runden eines numerischen Wertes erfolgt durch den Block "Runden".
Dieser Block vergleicht zwei numerische Werte, ob der 1. Wert gleich, ungleich, größer als, größer gleich, kleiner als oder kleiner gleich dem 2. Wert ist.
Überpüfung, ob ein numerischer Wert innerhalb oder außerhalb eines bestimmten Bereichs liegt.
Der Text-Block ist in der Lage Texte, Wörter und Zahlen aneinander zu hängen, die durch eine Leitung mit dem Block verbunden sind. Dabei sollte beachtet werden, dass der EV3-Stein nur einen kleinen Bildschirm hat und den Text nicht in die nächste Zeile umbricht und je nach Schriftgröe der Text nicht vollständig angezeigt wird.
Wenn du eine zufällig ausgewählte Zahl für deine Programmierung benötist, kannst du den Zufalls-Block benutzen. Gib einen Bereich ein, in dem die Zufallszahl liegen soll und verbinden die Ausgabe des Blocks.
Dieser Block bietet die Möglichkeit Dateien des EV3-Steins zu lesen oder neue anzufertigen. Wichig ist, dass du zunächst eine Datei schreibst, diese dann schließt, bevor du die lesen kannst.
Der Block "Nachrichtenart" stellt die Kommunikation zwischen verschiedenen Steinen oder zwischen deinem Stein und deinem Handy her. Dein Stein kann Texte, Zahlen oder logische Werte von anderen Steinen empfangen oder an sie senden. Wenn du die App "EV3 Mailbox Remote" benutzt, kannst du auch von deinem Handy Daten an deinen Stein senden, die dann bestimmte Aktionen auslösen könnten.
Eine Verbindung zu einem anderen Stein(oder dem Handy/tablet) kann durch diesen Block erstellt werden. Beachte, dass du den Namen des Steins richtig eingeben musst und Bluetooth mehr Strom verbraucht.
Wenn der Roboter längere Programme ausführen soll und nicht nach der automatischen Abschaltzeit ausgehen soll, kannst du diesen Block in dein Programm einbinden. Die Batterieleistung sollte beachtet werden!
Dieser Block ermöglicht dir Sensoren von anderen Herstellern zu benutzen und zu verwenden. Außerdem kannst du ihn als Ersatz für die meisten Sensorblöcke nutzen. Du musst nur den Eingang angeben, an dem der Sensor mit dem Stein verbunden ist, und der Block gibt dir einen numerischen Wert zwischen 0 und 1023 aus.
Der Block "Ungeregelter Motor" hat nur die einzige Eingabe Leistung. Doch mit Leistung lassen sich Motorrichtung und Geschwindigkeit steuern. Der Block kann sich Energiesparend auf die Batterie auswirken.
Ist es nicht lästig immer einen Motorblock von Leistung über Geschwindigkeit und Zeit komplett einzustellen, wenn man nur die Richtung der Umdrehungen ändern will? Zum Glü hat man sich da etwas einfallen lassen. "Motor umkehren" ist ein Block mit nur einer Eingabe, aber der einfachen Funktion den ausgewählten Motor in die jeweils andere Richtung drehen zu lassen.
Dieser Block beendet das Programm endgültig, ist aber nicht unbedingt in jedem Programm notwending, da das Programm auch beendet wird, wenn keine weiteren Blöcke programmiert sind. Dennoch gehöhrt dieser Block, genauso wie der Start-Block, einfach zum Programm dazu.
Wenn du in deinem Programm eine Stelle hast, die sehr schwierig für dich und andere verständlich ist, kannst du durch einen Kommentar Hilfen und Erjkärungen ergänzen.
Eigene Blöcke sind noch nicht vorhanden, da diese der Benutzer erst selbst hinzufügen muss. Erstellst du einen Eigenen Block, so ist dieser Block nur in dem Projekt, wo du ihn erstellt hast.
Aktuelle Challenge:
Baue einen Roboter der Emotionen von Menschen und Tieren ausdrückt.
Mehr Infos
Neue Roboter:
Hier siehst du die neuesten Roboter.
Mehr Infos
Roboter der Woche:
Hier siehst du bald den Roboter der Woche.
Mehr Infos