This is an old revision of the document!
Template für Brühl
Videolektion
Gutes Zeug, das ich für Brühl erstellt hatte (jedoch "too advanced/optimistic")
Ideen
- WIEDER PER Problem, dann FLUSSDIAGRAMM? DANN (gemeinsam?) PROGRAMMIEREN???
- Rasenmäh-Roboter? Als Simulation sicher gut, sonst kostet es viel Zeit…
- Turtle: zeichnet was nettes und erhöht Stiftdicke jeweils um Eins, jedoch wird sie zurückgesetzt, falls grösser als 10…; oder dann jeweils um 1 verkleinert! oszillierend; oder Farbe verändern
- Zwei Schildkröten? je nachdem, welche Farbe am Boden, wird etwas gemacht…
- if keyPressed …: Turtle-Fernsteuerung mit Tastatur! Zeichenprogramm. getKeyCode oder so… ferngesteuerte Turtle; Cursortasten für Bewegung, r und g und b für Farbwechsel, ESC für Abbruch - dann sollte wohl
while
verwenden. Werte der Tasten einfach angeben (bzw. Mini-Programm)! Andere Taste: Piepston. - Billard
- Spass mit Robotern; Sensoren?
- Ab hier noch Planungschaos…
- Zeichne Zick-Zack-Linie vorgegebener Länge
- Zeichne Haus vom Nikolaus (mit Linie davor und danach)? Übergabeparameter: Grösse, Farbe, Liniendicke?
- Erste Schritte Richtung Rekursion? Zeichne HvN in sich selbst ein? Wohl besser mit Koch-Kurve als “Linie”
- Was ist die beste Reihenfolge?
- textbasiert: Wer bist du? Hallo … Dein Name ist … Zeichen lang.
- “Rechnen” mit Zeichenketten. Dreieck im Textmodus aus Sternen erstellen.
- ?? turtle-basiert: Haus des Nikolaus in variabler Grösse Zeichnen. Liniendicke, Farbe eingeben lassen
- “Debugging” nicht vergessen!
- Zeichne Haus vom Nikolaus mehrfach, in unterschiedlichen Grössen
- Simuliere: Corona mit Wachstumsfaktor 2 pro Woche.
- Quiz?
- Roboter?
Altes Material
Informatik
Brühl 2022
Erste Schritte mit dem Roboter
Roboter in Betrieb nehmen
Je zwei Leute bekommen einen Roboter. Bitte sorgsam behandeln!
- Roboter zusammenbauen, falls noch nicht geschehen: Räder anbringen, Abstandssensor einstecken (das Teil mit den beiden Metallröhren, “Blick nach vorne”), Batterien einlegen und die Batteriebox am Roboter anschliessen (und nicht an der Steckkarte; dies ist der Mikrocontroller)
- Den Mikrocontroller/Mikroprozesser micro:bit in die Steckleiste des Roboters einsetzen. Schrift “micro:bit” nach hinten, Seite mit 25 LEDs und den beiden Druckknöpfen nach vorne (so wie Abstandssensor und rote LEDs).
- Computer per USB-Kabel mit micro:bit verbinden.
- In Tigerjython über das Menü “Tools” → “Devices” wähle “micro:bit/Calliope”.
- In Tigerjython über das Menü “Tools” wähle “Flash Target”.
Partnerarbeit
Kopiere das folgende Python-Programm in Tigerjython.
Es gibt zwei Ausführungsarten:
Probiere beide aus. Im Robotermodus sollte sich der Roboter bewegen. Er kann dann auch ausgesteckt werden und das Programm kann mit dem Knopf neben der USB-Buchse am micro:bit gestartet werden.
from mbrobot import * forward() delay(2000) right() delay(400) forward() delay(2000) stop()
Aufgabe 5
Partnerarbeit
Am obigen Programm siehst du, dass sich die Befehle für den Roboter von den Befehlen für die Schildkröte unterscheiden. Statt Längen oder Winkel direkt anzugeben, führt der Roboter die aktuelle Bewegung so lange durch, bis eine neuer Befehl kommt. Der Befehl delay(2000)
steht beispielsweise für “2000 Millisekunden abwarten (und dabei weiterhin die aktuelle Bewegung durchführen)”.
Finde durch Experimentieren heraus:
- Wieviele Millisekunden braucht der Roboter, um eine Strecke von 10 cm abzufahren.
- Wieviele Millisekungen braucht der Roboter für eine Bewegung um $90^\circ$.
Verwende diese Erkenntnisse, um dein Turtle-Programm für die quadratische Spirale in ein Roboter-Programm umzuschreiben (zuerst 10 cm vorwärts, dann nach jedem rechtwinkligen Abbiegen 10 cm weiter fahren als zuvor).
Aufgabe 6
Lies Befehle aus dem Abstandssensor aus und gib diese per print
aus.
Mit while True:
-Schleife? Bereits if
verwenden?
Rasenmäher-Roboter?
Halte konstanten Abstand.
Als Ausblick auf das nächste Mal.
Eher keine Hausaufgabe…
Alte Zusammenfassung
Alter Anfang if-Selektion
Oft sollen gewisse Programmteile nur unter gewissen Bedingungen ausgeführt werden.
In unserem Kuchenback-Flussdiagramm wird im grünen Bereich abgefragt, ob der Kuchen schmeckt: Abhängig von der Antwort geht es weiter im Flussdiagramm.
Das geht in Python durch if
-Selektion.
Aufgabe 5, Funktionen ohne Parameter und mit Rückgabewert definieren
Einzelarbeit, ca. 5 Minuten
Der folgende Code definiert eine Funktion richtung()
. Er gibt die aktuelle Ausrichtung der Schildkröte in Grad an.
from gturtle import * # In der folgenden Zeile beginnt die Definition der Funktion def richtung(): w = heading() while r < 0: w = w + 360 while r >= 360: w = w - 360 return w # In der folgenden Zeile beginnt das Hauptprogramm makeTurtle() repeat 10: print(richtung()) right(100)
Besser?
import datetime def zeitInMinuten(): jetzt = datetime.datetime.now() minute = jetzt.minute return minute print(zeitInMinuten())
Aufgabe 5, Funktionen ohne Parameter und mit Rückgabewert definieren
Einzelarbeit, ca. 5 Minuten
Der folgende Code definiert eine Funktion spielfeld()
. Das Schlüsselwort return
macht den rechts davon stehenden Ausdruck zum Rückgabewert.
Beachte:
- Mit
+
werden zwei Strings (= Texte, deren Beginn und Ende mit Anführungszeichen markiert sind) “hintereinandergehängt”. - Die Zeichenkombination “\n” bedeutet “new line”: Bei der Ausgabe findet an dieser Stelle ein Zeilenumbruch statt.
# In der folgenden Zeile beginnt die Definition der Funktion def spielfeld(): s1 = "+-+-+-+\n" s2 = "| | | |\n" s3 = "+-+-+-+\n" s4 = "| | | |\n" s5 = "+-+-+-+\n" s6 = "| | | |\n" s7 = "+-+-+-+\n" return s1 + s2 + s3 + s4 + s5 + s6 + s7 # In der folgenden Zeile beginnt das Hauptprogramm b = spielfeld() print(spielfeld())
Schreibe eine Funktion, die den Anfangsbuchstaben deines Vornamens als “Bild aus Buchstaben” zurückgibt.