Stoppuhr: Unterschied zwischen den Versionen

Aus microbit - Das Schulbuch
Zur Navigation springen Zur Suche springen
Sabine.mader (Diskussion | Beiträge)
Martin.teufel (Diskussion | Beiträge)
 
(29 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== [[Datei:Icon_story.png|20px|Icon]] Welches Stopp-Faible hast du? ==
== [[Datei:Icon_story.png|20px|Icon]] Stoppe die Zeit! ==






[[File:Stoppuhren.jpg|300px|border|Stoppuhren]]
<!-- [[File:Stoppuhren.jpg|300px|border|Stoppuhren]] -->
 
[[File:Ampel.jpg|300px|border|Stoppuhren]]


Bernd und Lukas müssen auf ihrem gemeinsamen Schulweg mehrere Straßen überqueren, die von Ampeln geregelt sind.  
Bernd und Lukas müssen auf ihrem gemeinsamen Schulweg mehrere Straßen überqueren, die von Ampeln geregelt sind.  
Wie so oft ist die Ampel auf Rot und es dauert schier unendlich lang, bis die Straße überquert werden kann.
Wie so oft ist die Ampel auf Rot und es dauert schier unendlich lang, bis die Straße überquert werden kann.
* Lukas und Bernd wollen wissen, ob diese Rotphase der Ampeln immer gleich lang ist. Eine Stoppuhr ist gefragt.
Lukas und Bernd wollen wissen, ob diese Rotphase der Ampeln immer gleich lang ist. Eine Stoppuhr ist gefragt.
* Lässt sich mit dem BBC micro:bit eine Stoppuhr programmieren? Was meinst du?  
* Lässt sich mit dem BBC micro:bit eine Stoppuhr programmieren? Was meinst du?  
* Wie könnte das funktionieren?
* Wie könnte das funktionieren?
* Zum Zeitvertreib während des Wartens überlegen sie, wie lange es dauert, bis ein rotes Auto vorbeifährt.
* Wo könnte die BBC micro:bit-Stoppuhr im Schulalltag und im täglichen Leben eingesetzt werden?


== [[Datei:Icon_gluehbirne.png|20px|Icon]] Deine Aufgabe ==
== [[Datei:Icon_gluehbirne.png|20px|Icon]] Aufgabenstellung ==




* Entwickle den micro:bit zu einer Stoppuhr.
* Der micro:bit berechnet den Zeitunterschied zwischen Start und Stopp und gibt ihn aus.
* Der micro:bit soll den Zeitunterschied zwischen Start und Stopp berechnen und ausgeben.
* Starte die Stoppuhr durch die Taste A.
* Wenn die Taste A gedrückt wird, startet die Stoppuhr.
* Die Stoppuhr stoppt und gibt die Dauer der Zeitspanne bei erneutem Dücken der Taste A an.
* Wird die Taste A erneut gedrückt, stoppt die Stoppuhr und zeigt die Dauer der Zeitspanne an.
* Welche Materialien brauchst du, um dieses Projekt umzusetzen?
* Welche Materialien brauchst du, um dieses Projekt umsetzen zu können?
* Finde eine Möglichkeit, die micro:bit-Stoppuhr umzuhängen oder zu tragen.
* Überlege auch eine Möglichkeit, wie du die micro:bit-Stoppuhr umhängen oder tragen kannst.


[[File:Stoppuhrgrafik.png|100px|border|Stoppuhr]]
<!--[[File:Stoppuhrgrafik.png|100px|border|Stoppuhr]]-->


== [[Datei:Icon_story.png|20px|Icon]] Mögliche Materialliste  ==
== [[Datei:Icon_story.png|20px|Icon]] Materialien ==


   
   
 
* micro:bit  
* BBC micro:bit  
* Computer mit Internetanschluss
* Karton oder Bastelfilz  
* Karton oder Bastelfilz  
* doppelseitiges Klebeband
* doppelseitiges Klebeband
Zeile 45: Zeile 44:


== [[Datei:Icon_brain.png|20px|Icon]] Kompetenzen ==
== [[Datei:Icon_brain.png|20px|Icon]] Kompetenzen ==
Du solltest bereits
* den micro:bit mit dem Computer verbinden können.
* ein Programm auf den micro:bit übertragen können.


Du lernst
Du lernst
[[Datei:Kompetenzpuzzle.jpg|200px|]]
<!--[[Datei:Kompetenzpuzzle.jpg|200px|]]-->
* mit verschiedenen Materialien zu arbeiten
* mit verschiedenen Materialien zu arbeiten.
* eine mathematische Aufgabe zu analysieren und zu strukturieren  
* eine mathematische Aufgabe zu analysieren und zu strukturieren.
* eine Programmiersprache anzuwenden
* eine Programmiersprache anzuwenden.
* das Projekt zu reflektieren und zu präsentieren
* das Projekt zu reflektieren und zu präsentieren.


Programmierung:
Programmierung:
Du lernst bzw. übst  
Du lernst bzw. übst  
* das Verwenden logischer Funktionen
* das Verwenden logischer Funktionen.
* das Umrechnen von Millisekunden in Sekunden
* das Umrechnen von Millisekunden in Sekunden.
* das Ausführen einer Divisionen mit dem Computer
* das Ausführen einer Divisionen mit dem Computer.
* den Zugriff auf die innere Uhr des micro:bits.


== [[Datei:Icon faecher.png|20px|Icon]] Unterrichtsfächer ==
== [[Datei:Icon faecher.png|20px|Icon]] Unterrichtsfächer ==
Zeile 67: Zeile 72:
== [[Datei:Icon_hilfe.png|20px|Icon]] Tipps und Hilfestellungen ==
== [[Datei:Icon_hilfe.png|20px|Icon]] Tipps und Hilfestellungen ==


Programmiere den micro:bit als Stoppuhr, sodass die Zeitspanne vom ersten Tastendruck auf die Taste A bis zum zweiten Tastendruck auf die Taste A gemessen und am Display angezeigt wird.
Programmiere den micro:bit als Stoppuhr. Miss dazu die Zeit vom ersten Drücken der Taste A bis zum zweiten Drücken der Taste A. Zeige diese Zeit in Sekunden am Display an.
=== Elemente der Programmierung ===
 
[[Variable]], [[mathematische Operationen]], [[Logik-Funktionen]], [[Textausgabe]]


=== Eckpfeiler zur Umsetzung ===
=== Erforderliche Programmierblöcke ===


Folgende Programmierblöcke helfen dir bei der Umsetzung:
Folgende Programmierblöcke helfen dir bei der Umsetzung:


[[Datei:Knopf A.png|200px ]]
[[Variable]], [[mathematische Operationen]], [[Logik-Funktionen]], [[Textausgabe]]


* Wenn die Taste A die Stoppuhr starten soll, benötigst du das Ereignis „Wenn Knopf A gedrückt“.
* Um mit der Taste A die Stoppuhr zu starten, verwende das Ereignis „Wenn Knopf A gedrückt“.
* Außerdem benötigst du die logische Funktion „Wenn nicht... dann ... ansonsten“.
* Nutze die logische Funktion „Wenn ... dann ... ansonsten“ um festzustellen ob die Stoppuhr starten oder die gestoppte Zeit angezeigt werden soll.
* Für die Berechnung der Zeitdauer benötigst du die Zeit in Millisekunden.
<pre id="pre01">
input.onButtonPressed(Button.A, function () {
    if (true) {
   
    } else {
   
    }
})


</pre>
* Erhalte mit dem Block Laufzeit (ms) Zugriff auf die innere Uhr des micro:bit. Diese startet mit dem Start des micro:bit bei 0 und misst die Zeit seit dem Start in Millisekunden.
[[Datei:Laufzeit.png|200px ]]
[[Datei:Laufzeit.png|200px ]]


Zeile 87: Zeile 99:
  [[Datei:Textausgabe.png|200px ]]
  [[Datei:Textausgabe.png|200px ]]


Eine mögliche Lösung findest du hier: <spoiler text="Lösung">[[Datei:stoppuhr_neu.PNG|border|800px|]]</spoiler>
=== Eckpfeiler zur Programmierung ===
 
* Überlege wie der micro:bit die Zeitdauer zwischen dem ersten Tastendruck und dem zweiten Tastendruck berechnet. Der micro:bit merkt sich vergangene Werte mithilfe von Variablen.
* Erstelle zuerst ein Programm in dem du die Zeit mit der Taste A startest und mit der Taste B stoppst. Das ist einfacher zu Programmieren.
* Rechne die Laufzeit (ms) durch 1000 um Sekunden zu erhalten.
* Um die Stoppuhr nur mit der Taste A zu bedienen muss sich der micro:bit merken ob die Taste A bereits gedrückt wurde oder nicht. Je nachdem zeigt der micro:bit die Zeitdauer an oder speichert die Startzeit. Mithilfe von Variablen kann sich der micro:bit auch vergangene Ereignisse merken. <spoiler text="Beispiel">Erstelle zum Beispiel eine Variable "gestartet" und setze diese zu Beginn des Programms auf 0. Das bedeutet dann, das die Stoppuhr noch nicht gestartet ist. Wenn das erste Mal die Taste A gedrückt wurde setze diese Variable auf 1. Das bedeutet, dass die Stoppuhr bereits gestartet wurde. Damit weiß der micro:bit ob die Stoppuhr bereits gestartet wurde oder nicht. Eine "Wenn - ansonsten" Abfrage startet dann den richtigen Programmteil. Du kannst aber auch eine bereits vorhandene Variable verwenden, um ein eleganteres Ergebnis zu erhalten.</spoiler>
 
 
===[[Stoppuhr Lösung|Schritt für Schritt zur Lösung]]===
:Hinweise zur Lösungsfindung und auch eine mögliche, komplette Lösung findest du auf der [[Stoppuhr Lösung|Lösungsseite]] zu diesem Beispiel.


==[[Datei:icon_plus.png|20px|Icon]] Optionen und Erweiterungen ==
Eine mögliche Lösung findest du hier: <spoiler text="Lösung">
<pre id="pre01">
let start = 0
let d = 0
let sec = 0
let msec = 0
input.onButtonPressed(Button.A, function () {
    if (!(start)) {
        start = input.runningTime()
    } else {
        d = input.runningTime() - start
        start = 0
        sec = Math.idiv(d, 1000)
        msec = d % 1000
        basic.clearScreen()
        basic.showString("" + sec + "." + msec)
    }
})




* Programmiere deine Stoppuhr so, dass du die Tasten A und B verwendest.
* Erweitere deine Stoppuhr so, dass während des Stoppvorganges Zufallszahlen am Display erscheinen. <spoiler text="Hinweis"> Mögliche Lösung für die Anzeige von Zufallszahlen:[[Datei:Zufallszahlen.PNG|border|800px|]]</spoiler>
* Lasse nach der Anzeige der Stoppzeit am Display ein akustisches Signal ertönen.


==[[Datei:presentation.png|20px|Icon]] Reflexion und Präsentation==
 
</pre>
</spoiler>
 
==[[Datei:presentation.png|20px|Icon]] Präsentation und Reflexion ==


* Stelle deine Stoppuhr vor! Funktioniert sie wie gewünscht?
* Stelle deine Stoppuhr vor! Funktioniert sie wie gewünscht?
Zeile 103: Zeile 142:
* Erläutere, wie du dein Produkt programmiert hast!
* Erläutere, wie du dein Produkt programmiert hast!
* Was war bei dieser Aufgabe neu oder interessant für dich?
* Was war bei dieser Aufgabe neu oder interessant für dich?
* In welchen Situationen verwendest du gerne eine Stoppuhr? Lässt sich die micro:bit Stoppuhr hiefür einsetzen?
* In welchen Situationen verwendest du gerne eine Stoppuhr? Lässt sich die micro:bit-Stoppuhr hiefür einsetzen?
* Welche besonderen Stoppuhren mit Timerfunktionen tragen viele Menschen?
 
==[[Datei:icon_plus.png|20px|Icon]] Weiterentwicklung ==
 
* Programmiere deine Stoppuhr so, dass du die Tasten A und B verwendest.
* Erweitere deine Stoppuhr so, dass während des Stoppvorganges im Sekundentakt am Display ein Symbol erscheint. <spoiler text="Hinweis"> Mögliche Lösung für die Anzeige von Zufallszahlen:[[Datei:Zufallszahlen.PNG|border|800px|]]</spoiler>
* Lasse nach der Anzeige der Stoppzeit am Display ein akustisches Signal ertönen.
* Zeige Zwischenzeiten an, während die Stoppuhr im Hintergrund weiterläuft.
 
<htmlet>makecode_embed</htmlet>

Aktuelle Version vom 17. Mai 2022, 07:51 Uhr

Icon Stoppe die Zeit!

Stoppuhren

Bernd und Lukas müssen auf ihrem gemeinsamen Schulweg mehrere Straßen überqueren, die von Ampeln geregelt sind. Wie so oft ist die Ampel auf Rot und es dauert schier unendlich lang, bis die Straße überquert werden kann. Lukas und Bernd wollen wissen, ob diese Rotphase der Ampeln immer gleich lang ist. Eine Stoppuhr ist gefragt.

  • Lässt sich mit dem BBC micro:bit eine Stoppuhr programmieren? Was meinst du?
  • Wie könnte das funktionieren?
  • Wo könnte die BBC micro:bit-Stoppuhr im Schulalltag und im täglichen Leben eingesetzt werden?

Icon Aufgabenstellung

  • Der micro:bit berechnet den Zeitunterschied zwischen Start und Stopp und gibt ihn aus.
  • Starte die Stoppuhr durch die Taste A.
  • Die Stoppuhr stoppt und gibt die Dauer der Zeitspanne bei erneutem Dücken der Taste A an.
  • Welche Materialien brauchst du, um dieses Projekt umzusetzen?
  • Finde eine Möglichkeit, die micro:bit-Stoppuhr umzuhängen oder zu tragen.


Icon Materialien

  • micro:bit
  • Karton oder Bastelfilz
  • doppelseitiges Klebeband
  • Verschlüsse (Magnet, Klett,…)
  • Schlüsselband

Icon Zeitaufwand

  • 2 Unterrichtseinheiten

Icon Schwierigkeitsgrad

borderlessborderlessborderless

Icon Kompetenzen

Du solltest bereits

  • den micro:bit mit dem Computer verbinden können.
  • ein Programm auf den micro:bit übertragen können.

Du lernst

  • mit verschiedenen Materialien zu arbeiten.
  • eine mathematische Aufgabe zu analysieren und zu strukturieren.
  • eine Programmiersprache anzuwenden.
  • das Projekt zu reflektieren und zu präsentieren.

Programmierung: Du lernst bzw. übst

  • das Verwenden logischer Funktionen.
  • das Umrechnen von Millisekunden in Sekunden.
  • das Ausführen einer Divisionen mit dem Computer.
  • den Zugriff auf die innere Uhr des micro:bits.

Icon Unterrichtsfächer

  • Mathematik
  • Informatik
  • Deutsch (Kommunikation, Präsentation)

Icon Tipps und Hilfestellungen

Programmiere den micro:bit als Stoppuhr. Miss dazu die Zeit vom ersten Drücken der Taste A bis zum zweiten Drücken der Taste A. Zeige diese Zeit in Sekunden am Display an.

Erforderliche Programmierblöcke

Folgende Programmierblöcke helfen dir bei der Umsetzung:

Variable, mathematische Operationen, Logik-Funktionen, Textausgabe

  • Um mit der Taste A die Stoppuhr zu starten, verwende das Ereignis „Wenn Knopf A gedrückt“.
  • Nutze die logische Funktion „Wenn ... dann ... ansonsten“ um festzustellen ob die Stoppuhr starten oder die gestoppte Zeit angezeigt werden soll.
input.onButtonPressed(Button.A, function () {
    if (true) {
    	
    } else {
    	
    }
})

  • Erhalte mit dem Block Laufzeit (ms) Zugriff auf die innere Uhr des micro:bit. Diese startet mit dem Start des micro:bit bei 0 und misst die Zeit seit dem Start in Millisekunden.

  • Für die Ausgabe der Zeitdauer mit Komma benötigst du den folgenden Textausgabeblock:

Eckpfeiler zur Programmierung

  • Überlege wie der micro:bit die Zeitdauer zwischen dem ersten Tastendruck und dem zweiten Tastendruck berechnet. Der micro:bit merkt sich vergangene Werte mithilfe von Variablen.
  • Erstelle zuerst ein Programm in dem du die Zeit mit der Taste A startest und mit der Taste B stoppst. Das ist einfacher zu Programmieren.
  • Rechne die Laufzeit (ms) durch 1000 um Sekunden zu erhalten.
  • Um die Stoppuhr nur mit der Taste A zu bedienen muss sich der micro:bit merken ob die Taste A bereits gedrückt wurde oder nicht. Je nachdem zeigt der micro:bit die Zeitdauer an oder speichert die Startzeit. Mithilfe von Variablen kann sich der micro:bit auch vergangene Ereignisse merken. <spoiler text="Beispiel">Erstelle zum Beispiel eine Variable "gestartet" und setze diese zu Beginn des Programms auf 0. Das bedeutet dann, das die Stoppuhr noch nicht gestartet ist. Wenn das erste Mal die Taste A gedrückt wurde setze diese Variable auf 1. Das bedeutet, dass die Stoppuhr bereits gestartet wurde. Damit weiß der micro:bit ob die Stoppuhr bereits gestartet wurde oder nicht. Eine "Wenn - ansonsten" Abfrage startet dann den richtigen Programmteil. Du kannst aber auch eine bereits vorhandene Variable verwenden, um ein eleganteres Ergebnis zu erhalten.</spoiler>


Schritt für Schritt zur Lösung

Hinweise zur Lösungsfindung und auch eine mögliche, komplette Lösung findest du auf der Lösungsseite zu diesem Beispiel.

Eine mögliche Lösung findest du hier: <spoiler text="Lösung">

let start = 0
let d = 0
let sec = 0
let msec = 0
input.onButtonPressed(Button.A, function () {
    if (!(start)) {
        start = input.runningTime()
    } else {
        d = input.runningTime() - start
        start = 0
        sec = Math.idiv(d, 1000)
        msec = d % 1000
        basic.clearScreen()
        basic.showString("" + sec + "." + msec)
    }
})




</spoiler>

Icon Präsentation und Reflexion

  • Stelle deine Stoppuhr vor! Funktioniert sie wie gewünscht?
  • Was hat dir bei der Entwicklung deines Produkts gefallen?
  • Welche Schwierigkeiten sind aufgetreten? Wie konntest du sie lösen?
  • Erläutere, wie du dein Produkt programmiert hast!
  • Was war bei dieser Aufgabe neu oder interessant für dich?
  • In welchen Situationen verwendest du gerne eine Stoppuhr? Lässt sich die micro:bit-Stoppuhr hiefür einsetzen?
  • Welche besonderen Stoppuhren mit Timerfunktionen tragen viele Menschen?

Icon Weiterentwicklung

  • Programmiere deine Stoppuhr so, dass du die Tasten A und B verwendest.
  • Erweitere deine Stoppuhr so, dass während des Stoppvorganges im Sekundentakt am Display ein Symbol erscheint. <spoiler text="Hinweis"> Mögliche Lösung für die Anzeige von Zufallszahlen:</spoiler>
  • Lasse nach der Anzeige der Stoppzeit am Display ein akustisches Signal ertönen.
  • Zeige Zwischenzeiten an, während die Stoppuhr im Hintergrund weiterläuft.