Sonnenuhr Lösung: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Zeile 11: | Zeile 11: | ||
; Was muss beim Starten des Programms festgelegt werden?[[Datei: Startbild1.jpg|border|right|300px|Unser Startbildschirm]] | ; Was muss beim Starten des Programms festgelegt werden?[[Datei: Startbild1.jpg|border|right|300px|Unser Startbildschirm]] | ||
: Wir weisen allen [[Variablen]] den Startwert 0 zu. <spoiler>Wir haben vier Variablen, die wir alle auf '''0''' setzen: RICHTUNG, STUNDE, MINUTE und SOMMERZEIT. | : Wir weisen allen [[Variablen]] den Startwert 0 zu. <spoiler>Wir haben vier Variablen, die wir alle auf '''0''' setzen: RICHTUNG, STUNDE, MINUTE und SOMMERZEIT. | ||
: ALs Startbild wird eine Sonnenuhr gezeigt, damit man weiß, dass das Programm läuft. Du | : ALs Startbild wird eine stilisierte Sonnenuhr gezeigt, damit man weiß, dass das Programm läuft. Du könntest aber auch ein anderes Startbild gestalten! | ||
; Was soll passieren, wenn zB die Taste A gedrückt wird? | ; Was soll passieren, wenn zB die Taste A gedrückt wird? |
Version vom 5. Mai 2018, 19:08 Uhr
Grundsätzliche Überlegungen
- Die Voraussetzung für unser Programm ist die Erkenntnis bzw. das Verständnis, dass die Erde sich in 24 Stunden einmal um sich selbst dreht, also um 360 Grad.
- Daraus leitet sich die Rotation von 15 Grad pro Stunde und weiter die Drehung um 1 Grad alle 4 Minuten ab.
Kalibrieren des Compass-Sensors - Wichtig nach jedem Hochladen des Programmes auf den Micro:Bit!!!
- Zunächst erscheint auf dem Micro:Bit folgender Text in als Laufschrift: DRAW A CIRCLE
- Nun durch Neigen in alle Richtungen einen Kreis auf der 5x5 LED Matrix zeichnen.
- Jetzt ist der Kompass-Sensor startbereit und das Programm wird gestartet.
Tipps und Tricks
- Was muss beim Starten des Programms festgelegt werden?
- Wir weisen allen Variablen den Startwert 0 zu. <spoiler>Wir haben vier Variablen, die wir alle auf 0 setzen: RICHTUNG, STUNDE, MINUTE und SOMMERZEIT.
- ALs Startbild wird eine stilisierte Sonnenuhr gezeigt, damit man weiß, dass das Programm läuft. Du könntest aber auch ein anderes Startbild gestalten!
- Was soll passieren, wenn zB die Taste A gedrückt wird?
- Zur Erinnerung: Jakob will ja, dass bei A für ihn gezählt wird!
- Zur Sicherheit müssen wir aufpassen, ob nicht gerade für Lea gezählt wird. Dafür brauchen wir den Merker für gerade für Lea gezählt wird.
- OK, wir zählen nicht für Lea. Nun kann das Drücken von A zwei Bedeutungen haben. Weißt du welche? <spoiler>Wenn das Zählen noch nicht läuft, soll gestartet werden. Wenn wir schon zählen, soll gestoppt werden.</spoiler>
- Wenn wir schon für Jakob zählen, hören wir damit auf und merken uns das.
- Wenn nicht, merken wir uns, dass ab jetzt für Jakob gezählt wird!
- (Beim Drücken von B passiert eigentlich das gleiche. Es sind nur die Rollen vertauscht. Formuliere es richtig um?)
- Wenn nun geputzt wird, und der Micro:bit merkt, dass er dabei geschüttelt wird ...
- Was müssen wir prüfen, bevor wir einen Putzzähler erhöhen können? <spoiler>Richtig: für wen wir eigentlich zählen, muss mit einer Abfrage unterschieden werden</spoiler>
- Wenn wir für Jakob zählen, erhöhen wir seinen Zähler um eins.
- Sonst, wenn wir für Lea zählen, erhöhen wir ihren Zähler.
- Und falls wir für niemanden zählen erhöhen wir gar nichts ... :)
- Wenn die Tasten A und B gleichzeitig gedrückt werden, soll ja angezeigt werden, wer gewonnen hat. Was müssen wir dazu (der Reihe nach) wissen?
- Ist überhaupt schon etwas gezählt worden? Für beide? Wie können wir das überprüfen?
- Wenn ja, hat Jakob mehr geputzt als Lea? Dann haben wir einen Gewinner und wir sollten das Ergebnis verkünden!
- Sonst, hat vielleicht Lea mehr geputzt als Jakob? Auch hier haben wir eine Gewinnerin!
- Sonst? Ja, was könnte noch sein? <spoiler>Beide haben gleich viel geputzt: unentschieden!</spoiler>
- Wenn das Ergebnis gezeigt wurde, könnte es sein, dass die beiden vielleicht nochmal probieren wollen. Was müssen wir dafür noch berücksichtigen? <spoiler>Dass alle Variablen, wie beim Programmstart wieder zurückgesetzt werden, sonst würde einfach bei der bisherigen Anzahl von Schrubbungen weitergezählt werden! Außerdem könnten wir auch wieder unsere Startgrafik anzeigen</spoiler>
Flussdiagramme
Könnten bei Bedarf auch noch hier als Zwischenteil eingebaut werden.
Komplettlösungen
- Beim Starten des Programms, was müssen wir alles festlegen?
- Eine mögliche Lösung für den Start? <spoiler text="Lösung"></spoiler>
- Wenn die Taste A gedrückt wird, können verschiedene Dinge passieren, je nachdem was das Programm gerade macht!
- Wenn wir auch einige Sicherheitsabfragen einbauen, kann eine Lösung so aussehen: <spoiler text="Lösung">Was passieren könnte, wenn A gedrückt wird</spoiler>
- Wenn die Taste B gedrückt wird, sollte etwas ähnliches geschehen wie beim Drücken von A, nur mit vertauschten Rollen!
- Das sieht zB so aus: <spoiler text="Lösung">Was passieren könnte, wenn B gedrückt wird</spoiler>
- Wenn nun ein Schrubben (Schütteln) erkannt wird ...
- ... teilen wir das wie folgt richtig zu: <spoiler text="Lösung">Was passieren könnte, wenn das Programm startet</spoiler>
- Wenn die Tasten A und B gleichzeitig gedrückt werden, soll ja angezeigt werden, wer gewonnen hat. Was müssen wir dazu (der Reihe nach) wissen?
- Der Programmteil könnte zB so aussehen: <spoiler text="Lösung">Was passieren könnte, wenn die Tasten A und B gleichzeitig gedrückt werden</spoiler>