Stap 1: Maak het
Wat is het?
Meet hoe rumoerig het om je heen is met behulp van de nieuwe micro:bit microfoonsensor en een eenvoudig staafdiagram.
Inleiding
Codeer instructies
Wat je gaat leren
- De ingebouwde microfooningangssensor van de nieuwe micro:bit gebruiken om te meten hoe hard geluiden om je heen zijn
- Hoe numerieke gegevens van invoer sensoren grafisch weer te geven op de LED display uitvoer
Zo werkt het
- De microfoon van de nieuwe micro:bit meet geluidsniveaus in getallen tussen 0 en 255. 0 is de stilste en 255 is de luidste geluidsmeting die het kan maken.
- De code gebruikt een eeuwigdurende lus om de microfoon de geluidsniveaus te laten meten en een staafdiagram op het LED display te plotten.
- Hoe harder de geluiden worden gemeten, hoe hoger de staafdiagrammen.
Benodigdheden
- nieuwe micro:bit met geluid (of MakeCode simulator)
- MakeCode of Python editor
- batterijpakket (optioneel)
Step 2: Codeer het
1from microbit import *
2
3# function to map any range of numbers to another range
4def map(value, fromMin, fromMax, toMin, toMax):
5 fromRange = fromMax - fromMin
6 toRange = toMax - toMin
7 valueScaled = float(value - fromMin) / float(fromRange)
8 return toMin + (valueScaled * toRange)
9
10# set of images for simple bar chart
11graph5 = Image("99999:"
12 "99999:"
13 "99999:"
14 "99999:"
15 "99999")
16
17graph4 = Image("00000:"
18 "99999:"
19 "99999:"
20 "99999:"
21 "99999")
22
23graph3 = Image("00000:"
24 "00000:"
25 "99999:"
26 "99999:"
27 "99999")
28
29graph2 = Image("00000:"
30 "00000:"
31 "00000:"
32 "99999:"
33 "99999")
34
35graph1 = Image("00000:"
36 "00000:"
37 "00000:"
38 "00000:"
39 "99999")
40
41graph0 = Image("00000:"
42 "00000:"
43 "00000:"
44 "00000:"
45 "00000")
46
47allGraphs = [graph0, graph1, graph2, graph3, graph4, graph5]
48
49# ignore first sound level reading
50soundLevel = microphone.sound_level()
51sleep(200)
52
53while True:
54 # map sound levels from range 0-255 to range 0-5 for choosing graph image
55 soundLevel = int(map(microphone.sound_level(), 0, 255, 0, 5))
56 display.show(allGraphs[soundLevel])
57
Stap 3: Verbeter het
- Maak je eigen manieren om te laten zien hoe luid een geluid is, bijvoorbeeld door verschillende emojis te laten zien, afhankelijk van hoe hard het is
- Maak een visueel geluidsalarm dat alleen knippert wanneer het geluid een bepaald niveau overschrijdt - je kunt dit gebruiken om je klas rustig te houden
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.