Cam 1: Gwneud
Beth yw e?
Amseru pa mor hir y gadewir eich goleuadau ymlaen i olrhain eich defnydd o ynni. Gallech hefyd ddefnyddio'r prosiect hwn i olrhain oriau o heulwen mewn prosiect gorsaf dywydd.
Mae'r prosiect hwn yn rhan o gyfres a grëwyd i gynnig gweithgareddau datrys problemau a phrototeipio i archwilio technoleg fel ateb i heriau'r Nodau Byd-eang ar gyfer Datblygiad Cynaliadwy.
Beth fyddwch yn ei ddysgu
- sut i ddefnyddio synwyryddion a chod i fonitro digwyddiadau'r byd go iawn
- gosod cofnodydd data i gofnodi data dibynadwy
- casglu a choladu data dros amser i nodi patrymau mewn defnydd ynni
- dehongli a dadansoddi data er mwyn sicrhau newidiadau mewn ymddygiad
- sut y gellir newid newidynnau gan ddefnyddiwr i ffurfweddu system cyn ei defnyddio
Sut i'w ddefnyddio
- Yn gyntaf, defnyddiwch brosiect Mesurydd ynni golau i ganfod y darlleniadau pan fydd eich goleuadau ymlaen ac wedi'u diffodd. Sicrhewch eich bod yn gwneud hyn yn yr un lle ac amodau goleuo y byddwch yn gosod eich micro:bit monitro ynddo, a sicrhau nad yw golau dydd yn sbarduno darlleniad ffug bod eich goleuadau ymlaen.
- Rhoi eich darlleniad golau yn y cod lle mae'r newidyn LIGHT wedi'i osod. Rydym wedi rhoi'r rhif 100 i chi ond siŵr o fod bydd angen i chi ei newid cyn fflachio'r cod ar eich micro:bit.
- Cysylltu pecyn batri a gosod eich micro:bit dan y golau rydych eisiau ei fonitro. Dylech weld dot ar y dangosydd pan fydd y golau wedi'i ddiffodd, a bydd y dangosydd yn goleuo pan fydd eich golau ymlaen. Os nad yw hyn yn gweithio, ystyried defnyddio'r prosiect Mesurydd golau eto i ddod o hyd i lefel y golau pan fydd y golau ymlaen, neu symud y micro:bit.
- Bydd y micro:bit yn parhau i amseru a phan fyddwch yn gwasgu botwm B bydd yn dangos am ba mor hir mae'r golau wedi bod ymlaen mewn munudau.
Sut mae'n gweithio
- Mae'r rhaglen yn defnyddio newidyn Boolean a elwir yn timing i reoli'r rhaglen. Gall fod gan newidynnau Boolean ddau werth yn unig: gwir neu gau.
- Os yw darlleniad y synhwyrydd golau'n uwch na'r lefel a osodwyd gennych, mae'n dechrau'r amserydd ac yn goleuo'r dangosydd LED. Os yw'n disgyn yn is na'r lefel hon, mae'n stopio'r amserydd ac yn dangos dot ar y dangosydd.
- Mae'r prosiect hwn yn defnyddio hysteresis i sicrhau nad yw'r amserydd yn troi ymlaen ac yn diffodd yn rhy aml pan fydd lefel y golau'n newid ychydig o amgylch y trothwy ar gyfer sbarduno'r amserydd. Mae'n creu cylch mwy o amgylch y trothwy y mae'n rhaid ei groesi cyn i'r amserydd gael ei droi ymlaen neu'i ddiffodd.
- Mae hysteresis yn nodwedd gyffredin mewn systemau rheoli sy'n defnyddio synwyryddion, er enghraifft mewn systemau gwresogi sydd â thermostat. Os ydych yn gosod eich thermostat i dymheredd penodol, nid ydych am i'r gwres droi ymlaen ac i ffwrdd drwy'r amser yn gyflym iawn pan fydd y tymheredd yn hofran o amgylch y rhif rydych wedi'i osod. Mae hysteresis yn atal hyn rhag digwydd.
Beth sydd ei angen arnoch
- micro:bit
- Golygydd MakeCode neu Python
- pecyn batri (argymhellir)
Cam 2: Codio
1from microbit import *
2display.show('L')
3
4LIGHT = 100 # <<< Enter your 'measured' reading here
5
6HYSTERESIS = 8
7LIGHT -= (HYSTERESIS/2)
8DARK = LIGHT - HYSTERESIS
9ON_IMAGE = Image('99999:99999:99999:99999:99999')
10OFF_IMAGE = Image('00000:00000:00900:00000:00000')
11timing = False
12start_time = 0
13total_time = 0
14reading = display.read_light_level()
15sleep(1000)
16
17def show_number(n):
18 # Make number display the same as MakeCode
19 if len(str(n)) == 1:
20 display.show(n)
21 else:
22 display.scroll(n)
23
24while True:
25 reading = display.read_light_level()
26 if reading < DARK:
27 if timing:
28 # it has just gone dark, update timer for 'on' time
29 end_time = running_time()
30 total_time += (end_time - start_time)
31 timing = False
32
33 elif reading >= LIGHT:
34 if not timing:
35 # it has just gone light, start the timer
36 start_time = running_time()
37 timing = True
38
39 if button_b.was_pressed():
40 # calculate and display cumulative time in minutes
41 minutes = total_time / 60000
42 if timing:
43 # adjust live for current ON time
44 minutes += (running_time() - start_time) / 60000
45 display.clear()
46 show_number(round(minutes)) # whole numbers only
47 sleep(500)
48
49 # update the display with the ON/OFF state
50 if timing:
51 display.show(ON_IMAGE)
52 else:
53 display.show(OFF_IMAGE)
54 sleep(1000)
55
56
Cam 3: Gwella
- Newid y patrymau a ddangosir ar y dangosydd LED i wneud i'r batrïau bara'n hirach, neu bylu'r dangosydd.
- Defnyddio'r amser a gofnodwyd i gyfrifo faint o drydan rydych wedi'i ddefnyddio a faint y gallai gostio. Mae manylion yn ein prosiect Cyfrifiannell cost ynni
- Defnyddio'r un cod i fesur oriau golau'r haul. Defnyddio'r prosiect Mesurydd golau i gyfrifo gwerth y golau pan fydd yr haul yn tywynnu ar y micro:bit a phan bydd yn gymylog. Efallai y bydd angen i chi wneud cynhwysydd ar gyfer eich micro:bit gyda chaead tryloyw i wasgaru'r golau a diogelu'r micro:bit rhag glaw, er enghraifft hen gynhwysydd bwyd plastig.
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.
Translation generously supported by the Welsh Government.