Calliope mini - Spaß durch Programmieren

Entwicklungsumgebungen

Zeitgeber

Ziel: Der Zeitgeber steuert die LED und kann als Stoppuhr benutzt werden..

Der Calliope mini enthält eine Uhr (Zeitgeber). Dieser Zeitgeber startet mit dem Einschalten des Calliope mini und zählt die vergangene Zeit im Hintergrund völlig unbemerkt immer weiter und weiter und weiter... Das macht der Zeitgeber so lange, bis man den Calliope mini wieder ausschaltet oder ihn mit einem Befehl wieder zurücksetzt.
Dann beginnt er wieder bei 0 zu zählen usw.

Der Zeitgeber zählt in Millisekunden (ms). Eine Sekunde sind 1000 ms. Ist der Calliope mini also 10 s lang in Betrieb, steht im Zeitgeber die Zahl 10 000. Drei Sekunden später steht dann 13 000 drin.

Sekunden anzeigen

Der aktuelle Wert im Zeitgeber kann einfach angezeigt werden.

Calliope mini-Zeitgeber

Jetzt werden ununterbrochen große Zahlen angezeigt. Das ist nicht sinnvoll! Besser ist es, nur die seit dem Start des Calliope mini vergangenen Sekunden anzuzeigen. Dazu muss der Wert, der gerade im Zeitgeber steht

  • durch 1000 geteilt werden
  • auf eine ganze Zahl gerundet werden.

Aus 24 567 wird dann 24,567 (durch 1000) und dann 25 (gerundet). Steht im Zeitgeber 24 567, sind seit dem Start etwa 25 s vergangen.

Aufgabe: Das Programm funktioniert nicht richtig. Es fehlen einige Sekundenwerte. Überlege, wo die fehlenden Werte hin sind!
Calliope mini-Zeitgeber

Programm verkürzen

Die drei Zeilen für das Bearbeiten der Variablen zeit lassen sich natürlich auch in einer Zeile schreiben. Selbst die Variable zeit könnte weggelassen werden.

Calliope mini-Zeitgeber

Calliope mini-Zeitgeber

Sekundenblinklicht

Aufgabe: Erweitere das Programm so, dass die RGB-LED im Sekundentakt ihre Farbe zwischen rot und grün wechselt.

Dazu wird getestet, ob der Inhalt der Variablen zeit eine gerade oder eine ungerade Zahl ist. Diesen Test macht die mathamtische Funktion

Calliope mini-Zeitgeber

Calliope mini-Zeitgeber

einfache Stoppuhr

Aufgabe: Schreibe ein Programm für eine einfache Stoppuhr. Taste A startet die Uhr. Taste B hält die Uhr wieder an und zeigt die vergangene Zeit an.

Calliope mini-Zeitgeber

Zusätzlich kann die LED den jeweiligen Zustand der Stoppuhr anzeigen.

Hinweis: Die Startzeit wird solange geändert, wie die Taste A gedrückt ist. Der Start beginnt also nicht mit dem Drücken von A, sondern mit dem Loslassen. Der gleiche Effekt tritt beim Drücken von B auf. Das kann man verhindern, in dem man die Tasten sofort nach dem Drücken für weitere Eingaben sperrt. Beschrieben wird das Verfahren in Warten ist doof.

Der Calliope mini enthält eine Uhr (Zeitgeber). Dieser Zeitgeber startet mit dem Einschalten des Calliope mini und zählt die vergangene Zeit im Hintergrund völlig unbemerkt immer weiter und weiter und weiter... Das macht der Zeitgeber so lange, bis man den Calliope mini wieder ausschaltet oder ihn mit einem Befehl wieder zurücksetzt.
Dann beginnt er wieder bei 0 zu zählen usw.

Der Zeitgeber zählt in Millisekunden (ms). Eine Sekunde sind 1000 ms. Ist der Calliope mini also 10 s lang in Betrieb, steht im Zeitgeber die Zahl 10 000. Drei Sekunden später steht dann 13 000 drin.

Sekunden anzeigen

Der aktuelle Wert im Zeitgeber kann einfach angezeigt werden.

Calliope mini-Zeitgeber

Jetzt werden ununterbrochen große Zahlen angezeigt. Das ist nicht sinnvoll! Besser ist es, nur die seit dem Start des Calliope mini vergangenen Sekunden anzuzeigen. Dazu muss der Wert, der gerade im Zeitgeber steht

  • durch 1000 geteilt werden
  • auf eine ganze Zahl gerundet werden.

Aus 24 567 wird dann 24,567 (durch 1000) und dann 25 (gerundet). Steht im Zeitgeber 24 567, sind seit dem Start etwa 25 s vergangen.

Aufgabe: Das Programm funktioniert nicht richtig. Es fehlen einige Sekundenwerte. Überlege, wo die fehlenden Werte hin sind!
Calliope mini-Zeitgeber

Programm verkürzen

Die drei Zeilen für das Bearbeiten der Variablen zeit lassen sich natürlich auch in einer Zeile schreiben. Selbst die Variable zeit könnte weggelassen werden.

Calliope mini-Zeitgeber

Calliope mini-Zeitgeber

Sekundenblinklicht

Aufgabe: Erweitere das Programm so, dass die RGB-LED im Sekundentakt ihre Farbe zwischen rot und grün wechselt.

Dazu wird getestet, ob der Inhalt der Variablen zeit eine gerade oder eine ungerade Zahl ist. Diesen Test macht die mathamtische Modulo-Funktion. Sie liefert den nicht das Ergebnis einer Division, sondern den Rest. Das ist ein bischen wie die Division in der Grundschule. Man hat 12 Äpfel, die auf 5 Kinder verteilt werden sollen. Sind alle gerecht verteilt, bleiben 2 Äpfel übrig. 12 Modulo 5 ist 2.

Alle geraden Zahlen liefert bei der Division durch 2 eine Null und alle ungeraden Zahlen eine 1. Genau das wird in der Entscheidung gefragt.

Calliope mini-Zeitgeber

einfache Stoppuhr

Aufgabe: Schreibe ein Programm für eine einfache Stoppuhr. Taste A startet die Uhr. Taste B hält die Uhr wieder an und zeigt die vergangene Zeit an.

Calliope mini-Zeitgeber

Zusätzlich kann die LED den jeweiligen Zustand der Stoppuhr anzeigen.

Hinweis: Die Startzeit wird solange geändert, wie die Taste A gedrückt ist. Der Start beginnt also nicht mit dem Drücken von A, sondern mit dem Loslassen. Der gleiche Effekt tritt beim Drücken von B auf. Das kann man verhindern, in dem man die Tasten sofort nach dem Drücken für weitere Eingaben sperrt. Beschrieben wird das Verfahren in Warten ist doof.

Der Calliope mini enthält eine Uhr (Zeitgeber). Dieser Zeitgeber startet mit dem Einschalten des Calliope mini und zählt die vergangene Zeit im Hintergrund völlig unbemerkt immer weiter und weiter und weiter... Das macht der Zeitgeber so lange, bis man den Calliope mini wieder ausschaltet oder ihn mit einem Befehl wieder zurücksetzt.
Dann beginnt er wieder bei 0 zu zählen usw.

Der Zeitgeber zählt in Millisekunden (ms). Eine Sekunde sind 1000 ms. Ist der Calliope mini also 10 s lang in Betrieb, steht im Zeitgeber die Zahl 10 000. Drei Sekunden später steht dann 13 000 drin.

Sekunden anzeigen

Der aktuelle Wert im Zeitgeber kann einfach angezeigt werden.

Die Anzeige erfolgt im seriellen Fenster, da der Bildschirm für die schnelle Anzeige von großen Zahlen nicht so gut geeignet ist.

Calliope mini-Zeitgeber

Nutzt man die Simulation, kann man unten rechts unter dem Calliope mini die seriellen Daten einblenden. Mit den Browsern Chrom, Opera und Edge werden die Daten auch vom Calliope mini an den Browser zurückgeschickt und im seriellen Monitor unter dem Programmtext angezeigt. Der Firefox kann das nicht!

Calliope mini-Zeitgeber

Jetzt werden ununterbrochen große Zahlen angezeigt. Das ist nicht sinnvoll! Besser ist es, nur die seit dem Start des Calliope mini vergangenen Sekunden anzuzeigen. Dazu muss der Wert, der gerade im Zeitgeber steht

  • durch 1000 geteilt werden
  • auf eine ganze Zahl gerundet werden.

Aus 24 567 wird dann 24,567 (durch 1000) und dann 25 (gerundet). Steht im Zeitgeber 24 567, sind seit dem Start etwa 25 s vergangen.

Im Gegensatz zur Blockprogrammierung funktioniert das Programm wirklich. Auf dem Bildschirm des Calliope mini werden die Sekunden ohne merkliche Verzögerung angezeigt. Nach einiger Zeit merkt man aber, dass die Zahlen auf dem Bildschirm keinen Sinn mehr ergeben. Das machen wir gleich schöner.

Calliope mini-Zeitgeber

Programm verkürzen

Die drei Zeilen für das Bearbeiten der Variablen zeit lassen sich natürlich auch in einer Zeile schreiben.

Calliope mini-Zeitgeber

 

Nur Änderungen anzeigen

Nun muss man die Sekunden nicht ununterbrochen anzeigen. Es reicht auch, auf jede Änderung der Zahl zu regieren. Aber auch das bringt nur Ruhe in der seriellen Anzeige und nicht auf dem Bildschirm selber.

Calliope mini-Zeitgeber

 

Sekundenblinklicht

Aufgabe: Erweitere das Programm so, dass die RGB-LED im Sekundentakt ihre Farbe zwischen rot und grün wechselt.

Dazu wird getestet, ob der Inhalt der Variablen zeit eine gerade oder eine ungerade Zahl ist. Diesen Test macht die mathamtische Modulo-Funktion. Sie liefert nicht das Ergebnis einer Division, sondern den Rest. Das ist wie die Division in der Grundschule. Man hat 12 Äpfel, die auf 5 Kinder verteilt werden sollen. Sind alle gerecht verteilt, bleiben 2 Äpfel übrig. 12 Modulo 5 ist 2.

Alle geraden Zahlen liefert bei der Division durch 2 eine Null und alle ungeraden Zahlen eine 1. Genau das wird in der Entscheidung gefragt.

Calliope mini-Zeitgeber

einfache Stoppuhr

Aufgabe: Schreibe ein Programm für eine einfache Stoppuhr. Taste A startet die Uhr. Taste B hält die Uhr wieder an und zeigt die vergangene Zeit an.

Calliope mini-Zeitgeber

Zusätzlich kann die LED den jeweiligen Zustand der Stoppuhr anzeigen.

Hinweis: Die Startzeit wird solange geändert, wie die Taste A gedrückt ist. Der Start beginnt also nicht mit dem Drücken von A, sondern mit dem Loslassen. Der gleiche Effekt tritt beim Drücken von B auf. Das kann man verhindern, in dem man die Tasten sofort nach dem Drücken für weitere Eingaben sperrt. Beschrieben wird das Verfahren in Warten ist doof.

zurück