Skip to content

Gweithgaredd

Tywysydd agosrwydd

Uwch | MakeCode, Python | Dangosydd LED, Radio | Cyfathrebu, Gweithredwyr rhifyddeg, Tonnau radio

Cam 1: Gwneud

Beth yw e?

Defnyddio radio i synhwyro pa mor agos mae micro:bit arall ac wedyn gwneud gêm helfa drysor neu'i ddefnyddio i helpu i roi gwybod i bobl eu bod yn cadw pellter cymdeithasol diogel.

Cyflwyniad

Canllaw codio

Sut mae'n gweithio

  • Bydd angen o leiaf 2 micro:bit arnoch ar gyfer hyn. Byddwn yn creu dwy raglen wahanol, un ar gyfer y tywysydd sy'n anfon neges â phŵer isel dros radio'n barhaus. Mae'r rhaglen arall yn mynd ar y derbynnydd.
  • Pan fydd y derbynnydd yn derbyn neges gan y tywysydd, bydd yn storio ei chryfder mewn newidyn a elwir yn signal ac yn ei dangos ar ei ddangosydd LED.
  • Mae signalau radio'n dod yn gryfach wrth i chi ddod yn fwy agos at y trosglwyddydd, felly os bydd y signal yn gryf mae'n golygu bod y micro:bit arall yn agos, yn ôl pob tebyg.
  • Os bydd y signal radio yn wan, mae'r micro:bit arall yn fwy pell, yn ôl pob tebyg.
  • Mae'n dangos graff bar sy'n dod yn fwy wrth i'r signal ddod yn gryfach ac wrth i chi symud yn agosach. Mae'n defnyddio'r bloc map mathemateg i fapio rhifau cryfder signal radio o'r amrediad -95 (gwan) i -42 (cryf) i amrediad 0 i 9 y gallwn ei ddefnyddio i dynnu graff bar.

Fersiwn Python

  • Nid oes gan Python swyddogaeth fap neu graff barod, felly mae'n gweithio ychydig yn wahanol. Mae pob LED yn goleuo wrth i chi symud yn agos at y tywysydd, ac maent yn dod yn fwy disglair wrth i chi symud yn agosach.
  • Mae'n cymryd darlleniadau cryfder radio gan ddefnyddio'r gorchymyn radio.receive_full(). Mae hyn yn rhoi'r neges, cryfder y signal a stamp amser. Rydym eisiau gwybod cryfder y signal yn unig, felly rydym yn defnyddio signal = neges[1] i echdynnu hyn a'i storio mewn newidyn a elwir yn signal.
  • Efallai bod cryfder y signal yn yr amrediad -98 (gwannaf) i -45 (cryfaf), ac mae'r rhaglen Python yn diffinio swyddogaeth a elwir yn map i drosi'r rhifau yn yr amrediad hwn yn amrediad 0 – 9 y gallwn ei ddefnyddio ar gyfer newid disgleirdeb yr LEDs: mae 0 yn golygu eu bod wedi'u diffodd, a 9 yw disgleirdeb mwyaf LED. (Efallai byddwch eisiau ailddefnyddio'r swyddogaeth hon mewn prosiectau Python eraill gan ei bod yn gweithio fel y bloc map yn MakeCode).
  • Mae rhaglen Python yn creu delwedd 5x5 wag a elwir yn golau gan ddefnyddio'r gorchymyn golau = Delwedd(5,5)
    Newidir ei disgleirdeb gan ddefnyddio'r gorchymyn light.fill().

Beth sydd ei angen arnoch

  • 2 micro:bit a phecynnau batri
  • Golygydd MakeCode neu Python
  • pecyn batri (opsiynol)

Cam 2: Codio

Trosglwyddydd / tywysydd

1from microbit import *
2import radio
3radio.config(group=1, power=1)
4radio.on()
5
6while True:
7    radio.send('1')
8    sleep(200)
9

Derbynnydd

1from microbit import *
2import radio
3radio.config(group=1)
4radio.on()
5light = Image(5,5) # create an empty image
6
7# function to map signal stength to LED brightness
8def map(value, fromMin, fromMax, toMin, toMax):
9    fromRange = fromMax - fromMin
10    toRange = toMax - toMin
11    valueScaled = float(value - fromMin) / float(fromRange)
12    return toMin + (valueScaled * toRange)
13
14while True:
15    message = radio.receive_full()
16    if message:
17        signal = message[1]
18        brightness = map(signal, -98, -44, 0, 9)
19        light.fill(round(brightness))
20        display.show(light)
21

Cam 3: Gwella

  • Cyfuno codau'r tywysydd a'r derbynnydd fel bod gennych un micro:bit sy'n gwneud y ddwy dasg.
  • Gwneud bandiau arddwrn fel eich bod yn gallu gwisgo'ch synwyryddion agosrwydd.
  • Pa mor gryf yw'r signal pan fyddwch 1 neu 2 fedr ar wahân? Addasu'r cod i sbarduno larwm gweledol neu glywadwy pan fydd rhywun yn rhy agos.
  • Defnyddio'r rhaglenni hyn i wneud gêm helfa drysor: cuddio'r tywysydd a rhoi cod y derbynnydd ar lawer o micro:bits
  • Os byddwch yn yr awyr agored neu le mawr, arbrofi wrth newid pŵer y trosglwyddydd. Gall fod yn unrhyw rif rhwng 0 a 7.
Ariennir gan Lywodraeth Cymru / Funded by Welsh Government

Translation generously supported by the Welsh Government.