Einführung
Um den Planeten zu schützen, erstelle ein Programm mit den "Leuchten-" und "Summer"-Modulen, das Deinen Roboter in einen Polizeiroboter verwandelt!
-
-
Wir werden viele Module verwenden, um unseren Roboter in ein Polizeiauto zu verwandeln!
-
Baue den Roboter wie im Bild zusammen. Die Anschlüsse:
-
Summer-Modul > P2
-
Schalter-Modul > P1
-
Leuchten-Modul > P0
-
Linker Motor > M1
-
Rechter Motor > M2
-
-
-
Wir wissen ja, wie man das Leuchten-Modul programmiert. Starten wir nun damit, alle Leuchten rot und blau wie bei einem (amerikanischen) Polizeiauto blinken zu lassen.
-
Dein Programm sollte ...
-
alle Leuchten in rot einschalten,
-
dann eine halbe Sekunde warten,
-
danach alle Leuchten in blau einschalten,
-
wieder eine halbe Sekunde warten
-
und dieses Programm endlos wiederholen!
-
Ach ja - Vergiss nicht, das Programm zu testen! Falls Du Hilfe brauchst - in der Abbildung findest Du einige Hinweise zu den Blöcken, die benötigt werden.
-
-
-
Fügen wir nun die Summer als Sirene zu den blinkenden Leuchten hinzu.
-
Ergänze einige Blöcke zu Deinem Programm, sodass der Summer ...
-
summt, wenn die Leuchten rot sind
-
und ruhig ist, wenn die Leuchten blau sind.
-
Noch einmal der Tipp: Es gibt Hinweise im Bild, falls Du Dich nicht mehr genau erinnern kannst, welche Blöcke Du verwenden kannst.
-
-
-
Es scheint wenig sinnvoll, dass Polizeiautos ihre Lichter und Sirenen die ganze Zeit eingeschaltet lassen.
-
Lass uns deshalb eine Schalterfunktion hinzufügen, sodass der Polizeiroboter nur blinkt und brummt, wenn ein Taster auf dem Schalter-Modul gedrückt wird.
-
Füge einen wenn-dann-Block ein, der prüft, ob der Taster gedrückt ist!
-
Setze Dein neues Programm in eine während-Schleife aus dem Schleifen-Menü ein. Füge dies dann in einen wenn-dann-Block ein!
-
Auf diese Weise startet das Blinken und Summen erst, wenn der Taster auf "Ein!" steht. Es gibt noch einige weitere Hinweise über die benötigen Blöcke im Bild.
-
Achte darauf, dass der wenn-dann-Block innerhalb der Forever-Schleife eingesetzt wird, damit der Zustand des Tasters nicht nur einmal überprüft wird!
-
-
-
Jetzt können wir den Polizeiroboter mit dem Taster aktivieren, können ihn aber leider noch nicht ausschalten.
-
Das Problem lösen wir, indem wir die während-Schleife (while loop) ändern.
-
Bisher haben wir die während-Schleife ähnlich wie die forever-Scheife verwendet. Aber sie ist viel nützlicher als diese.
-
Während-Schleifen funktionieren ähnlich wie ein wenn-dann-Block mit einer Bedingung. Das Programm wird immer dann ausgeführt, wenn die Bedingung zutrifft.
-
Eine während-Schleife bei der lediglich "erfüllt" als die Bedingung angegeben wird, würde einfach ewig laufen!
-
Ändere die Bedingung der während-Schleife in "während" digital P1 = 0. Auf diese Weise wird das Programm in der Schleife so lange laufen, wie der Taster nicht gedrückt ist!
-
Jetzt sollte unser Programm dafür sorgen, dass die Sirene anfängt, wenn wir den Taster drücken und aufhört, wenn wir ihn erneut drücken. Teste das Programm!
-
-
-
Wahrscheinlich hast Du festgestellt, dass wir die Sirene nicht mehr einschalten können!
-
Unser Problem ist, dass der Roboter das Programm sehr, sehr schnell ausführt
-
Selbst wenn wir nur auf den Taster tippen, rechnet der Roboter so schnell, dass er davon ausgeht, der Taster wird festgehalten.
-
Sieh Dir die vereinfachte Version des Programms im Bild an!
-
Sobald wir den Taster drücken, wird die Programmierung des wenn-dann-Blocks ausgeführt.
-
Der Roboter prüft den Zustand der während-Schleife allerdings schon, bevor wir überhaupt Zeit gehabt haben, unseren Finger vom Taster zu nehmen. Die Schleife stoppt also und das Programm kehrt zum roten Pfeil zurück (Digital P1 = 1).
-
Das bedeutet: Die Sirene wird nie aktiviert!
-
-
-
Das ist vielleicht schwierig zu verstehen! Lass uns daher ein weiteres kurzes Programm erstellen, um das Problem anhand eines Beispiels zu verstehen.
-
Lege Dein Polizeiprogramm zur Seite, lösche es aber nicht, und erstelle das Programm im Bild.
-
Dieses Programm stellt die Lichter auf rot, wenn wir den Taster drücken, und dann auf blau, wenn wir ihn erneut drücken. Teste es aus!
-
Da der Roboter so schnell ist, ist es unmöglich, die Lichter präzise auf rot oder blau einzustellen. Um das Problem zu lösen, müssen wir ihn deshalb so programmieren, dass er wartet, bis wir den Taster loslassen.
-
-
-
Wir können eine während-Schleife nutzen, um das zu bewirken.
-
Wenn wir eine leere Schleife haben und die "Bedingung" des Tasters "gedrückt" nicht erfüllt ist, wird die Schleife solange ausgeführt bis der Taster nicht mehr gedrückt ist.
-
Da in der Schleife keine weiteren Befehle enthalten sind, wird dies das Programm anhalten, bis wir den Taster loslassen.
-
Ziehe dieses Programm in das ursprüngliche Programm zurück und füge zwei während-Schleifen hinzu, wie im Bild gezeigt! Warte, bis der Taster wieder losgelassen ist, bevor die Sirene neu gestartet und wieder ausgeschaltet wird!
-
Teste das Programm und stelle sicher, dass Du es verstehst, bevor Du weitermachst!
-
-
-
Du hast bestimmt bemerkt, dass die Leuchten blau bleiben, nachdem die Polizeilichter und die Sirene ausgeschaltet wurden. Lass uns das ändern, sodass sie stattdessen grün werden!
-
Füge weitere Leuchten-Zeige-Blöcke hinzu, damit...
-
... die Lichter am Anfang grün strahlen
-
und dann wieder nach dem Ausschalten der Sirene.
-
-
-
Der letzte Teil unseres Polizeiprogramms besteht darin, den Roboter so zu programmieren, dass er eine Verfolgungsjagd machen kann.
-
Schau Dir das Bild an. So sollte Dein Programm nun aussehen.
-
Füge einige Blöcke hinzu, um Deinen Roboter mit blinkenden Leuchten mit Vollgas vorwärts fahren zu lassen, wenn der Taster gedrückt wird! Wenn der Taster erneut gedrückt wird, soll der Roboter anhalten!
-
-
-
Für eine weitere Herausforderung musst Du nun einige zusätzliche Aufgaben erledigen.
-
Ändere das Programm, damit der Summer früher piept, als sich die Lichter die Farbe ändern, damit es realistischer wirkt!
-
Wenn Dein Roboter den Verbrecher jagt, lass ihn nach links und nach rechts in einer hin-und-her-Bewegung fahren, anstatt nur vorwärts!
-