Stoppuhr: Unterschied zwischen den Versionen
(70 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
== [[Datei:Icon_story.png|20px|Icon]] | == [[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 | 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 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? | ||
* | * Wo könnte die BBC micro:bit-Stoppuhr im Schulalltag und im täglichen Leben eingesetzt werden? | ||
== [[Datei:Icon_gluehbirne.png|20px|Icon]] | == [[Datei:Icon_gluehbirne.png|20px|Icon]] Aufgabenstellung == | ||
* Der micro:bit berechnet den Zeitunterschied zwischen Start und Stopp und gibt ihn aus. | |||
* Der micro:bit | * 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? | ||
* Welche Materialien brauchst du, um dieses Projekt | * Finde eine Möglichkeit, die micro:bit-Stoppuhr umzuhängen oder zu tragen. | ||
* | |||
[[File:Stoppuhrgrafik.png|100px|border|Stoppuhr]] | <!--[[File:Stoppuhrgrafik.png|100px|border|Stoppuhr]]--> | ||
== [[Datei:Icon_story.png|20px|Icon]] | == [[Datei:Icon_story.png|20px|Icon]] Materialien == | ||
* micro:bit | * micro:bit | ||
* Karton oder Bastelfilz | * Karton oder Bastelfilz | ||
* doppelseitiges Klebeband | * doppelseitiges Klebeband | ||
* Verschlüsse (Magnet, Klett,…) | * Verschlüsse (Magnet, Klett,…) | ||
* Schlüsselband | * Schlüsselband | ||
Zeile 51: | Zeile 45: | ||
== [[Datei:Icon_brain.png|20px|Icon]] Kompetenzen == | == [[Datei:Icon_brain.png|20px|Icon]] Kompetenzen == | ||
Du | Du solltest bereits | ||
[[Datei:Kompetenzpuzzle.jpg|200px|]] | |||
* mit verschiedenen Materialien zu arbeiten | * den micro:bit mit dem Computer verbinden können. | ||
* eine mathematische Aufgabe zu analysieren und zu strukturieren | * ein Programm auf den micro:bit übertragen können. | ||
* eine Programmiersprache anzuwenden | |||
* das Projekt zu reflektieren und zu präsentieren | Du lernst | ||
<!--[[Datei:Kompetenzpuzzle.jpg|200px|]]--> | |||
* 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. | |||
== [[Datei:Icon faecher.png|20px|Icon]] Unterrichtsfächer == | == [[Datei:Icon faecher.png|20px|Icon]] Unterrichtsfächer == | ||
Zeile 72: | 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 | 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. | |||
<pre id="pre01"> | |||
input.onButtonPressed(Button.A, function () { | |||
if (true) { | |||
} else { | |||
} | |||
}) | |||
</pre> | |||
[[Datei: | * 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 ]] | |||
* Für die Ausgabe der Zeitdauer mit Komma benötigst du den folgenden Textausgabeblock: | |||
[[Datei:Textausgabe.png|200px ]] | |||
=== 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. | |||
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) | |||
} | |||
}) | |||
< | </pre> | ||
</spoiler> | </spoiler> | ||
==[[Datei:presentation.png|20px|Icon]] Reflexion | ==[[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 117: | Zeile 141: | ||
* Welche Schwierigkeiten sind aufgetreten? Wie konntest du sie lösen? | * Welche Schwierigkeiten sind aufgetreten? Wie konntest du sie lösen? | ||
* Erläutere, wie du dein Produkt programmiert hast! | * Erläutere, wie du dein Produkt programmiert hast! | ||
* Was war bei dieser | * 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
Stoppe die Zeit!
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?
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.
Materialien
- micro:bit
- Karton oder Bastelfilz
- doppelseitiges Klebeband
- Verschlüsse (Magnet, Klett,…)
- Schlüsselband
Zeitaufwand
- 2 Unterrichtseinheiten
Schwierigkeitsgrad
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.
Unterrichtsfächer
- Mathematik
- Informatik
- Deutsch (Kommunikation, Präsentation)
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>
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?
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.