Skip to content

Activiteit

Aanraak stopwatch

Gevorderd | MakeCode, Python | Aanraak logo, Knoppen, LED scherm | Boolean logica, Invoer/Uitvoer, Meting, Variabelen, Wiskundige operatoren

Stap 1: Maak het

Wat is het?

Maak een echte stopwatch met de nieuwe micro:bit aanraak logo sensor als extra knop.

Inleiding

Codeer instructies

Wat je gaat leren

  • Hoe de nieuwe micro:bit's touch logo sensor te gebruiken als extra knop in een praktisch project
  • Hoe variabelen en wiskundige operators gebruiken om tijd te meten
  • Hoe wiskundige operators gebruiken om eenheden te converteren (milliseconden naar seconden)
  • Wat is een Booleaanse variabele en hoe ze kunnen worden gebruikt om de stroom van een programma te beheren

Hoe het te gebruiken

  • Flash het programma op een nieuwe micro:bit met ingebouwde luidspreker.
  • Druk op knop A om de stopwatch te starten. Tijdens de timing wordt een geanimeerd kloppend hart weergegeven op het LED display.
  • Druk op knop B om het te stoppen. Je kunt het zo vaak starten en stoppen als je wilt, en het zal blijven optellen, net als een echte stopwatch.
  • Druk op het gouden touch-logo op de voorkant van de micro:bit om de gemeten tijd in seconden te tonen.
  • Om de tijd terug te zetten naar nul, druk op de reset-knop aan de achterkant van de micro:bit.

Zo werkt het

  • De micro:bit volgt hoe lang het actief is in milliseconden (duizendsten van een seconde). Dit wordt de lopende tijd genoemd.
  • Wanneer je op knop A drukt, wordt een variabele genaamd start ingesteld op de huidige looptijd.
  • Wanneer je op knop B drukt, wordt de start tijd afgetrokken van de nieuwe looptijd om te berekenen hoeveel tijd er is verstreken sinds je de stopwatch startte. Dit verschil wordt opgeteld bij de totale tijd, die wordt opgeslagen in een variabele die tijd wordt genoemd.
  • Als je op het aanraaklogo drukt, toont het programma de totale verstreken tijd op het LED-scherm. het zet de tijd van milliseconden (duizendsten van een seconde) om naar seconden door het te delen door 1000. Het gebruikt de integer delings operator om een resultaat in gehele getallen (integers) te geven.
  • Het programma gebruikt ook een Booleaanse variabele genaamd Run om het programma te beheren. Booleaanse variabelen kunnen slechts twee waarden hebben: waar of onwaar. Als hardlopen waar is, is de stopwatch gestart. Als hardlopen onwaar is, is de stopwatch niet gestart of gestopt.
  • Als hardlopen waar is, zorgt een lus ervoor dat de hartanimatie op het LED display verschijnt.
  • Het toont alleen de tijd wanneer je op het logo drukt als de stopwatch is gestopt, als hardlopen niet waar is.
  • De code voorkomt foutieve aflezingen door ervoor te zorgen dat de tijdvariabele alleen wordt gewijzigd wanneer je op knop B drukt als de stopwatch al is gestart, als hardlopen waar is.

Benodigdheden

  • nieuwe micro:bit met geluid (of MakeCode simulator)
  • MakeCode of Python editor
  • batterijpakket (optioneel)

Step 2: Codeer het

1from microbit import *
2time = 0
3start = 0
4running = False
5
6while True:
7    if running:
8        display.show(Image.HEART)
9        sleep(300)
10        display.show(Image.HEART_SMALL)
11        sleep(300)
12    else:
13        display.show(Image.ASLEEP)
14    if button_a.was_pressed():
15        running = True
16        start = running_time()
17    if button_b.was_pressed():
18        if running:
19            time += running_time() - start
20        running = False
21    if pin_logo.is_touched():
22        if not running:
23            display.scroll(int(time/1000))

Stap 3: Verbeter het

  • Pas het programma aan zodat je de tijd kunt resetten door de micro:bit te schudden.
  • Maak de timer nauwkeuriger door breuken van getallen te gebruiken in plaats van integers (hele getallen).
  • Voeg een ronde tijd functie toe, zodat als je het logo aanraakt terwijl de stopwatch loopt, de tijd op dat moment wordt weergegeven. Vergeet niet om ervoor te zorgen dat dit niet wordt opgeteld bij de variabele totale tijd.