Skip to content

Активност

Свици

Напредно | MakeCode, Python | Лед екран, Радио | Комуникација, Одабир, Рандомизација

Корак 1: Уради

Групу micro:bit-ова претворите у магични ужарени рој свитаца користећи радио комуникацију

група micro:bit-ова се међусобно покрећу путем радио везе да би на кратко засијали

Шта сте научили

  • како користити радио комуникацију између micro:bit-ова за покретање догађаја
  • да micro:bit ЛЕД екран може да буде светлији или тамнији
  • како се користе случајни бројеви и каква је шанса за имитирање понашања у стварном свету

Шта је ово?

Свици су инсекти који користе биолуминисценцију (светлост која настаје у њиховим телима) да би међусобом комуницирали.

Овај пројекат имитира понашање стварних свитаца који користи комуникацијску функцију micro:bit уређаја. Python верзију је креирао Nicholas H., а верзија MakeCode је заснована на овоме.

Пребаците програм на најмање три micro:bit уређаја који се налазе у истој соби. Притисните тастер А на било ком micro:bit уређају и требало би да видите "рој" micro:bit-ова како се пале док примају радио поруку. Најбоље ради у мрачној соби са пуно micro:bit-ова.

Једном када micro:bit прими радио поруку, има једну од десет шанси да пренесе сопствену радио поруку и покрене нови талас ужарених лампица на другим micro:bit-овима.

Кад се светла на крају зауставе, притисните тастер А на било ком micro:bit-у да бисте поново покренули 'рој' комуникације.

Како то ради

  • Програм користи радио комуникацију за слање поруке 'флеш' када притиснете тастер А на једном од micro:bit-a.
  • Када сваки од micro:bit-ова прими поруку, чека случајну количину времена између 50 и 350 милисекунди. Прави да ЛЕД екран трепће светлије, а затим постепено пригушује како би опонашао сјај свитаца.
  • Затим генерише случајан број између 0 и 9. Ако је број 0, он тада шаље сопствену 'флеш' радио поруку, покрећући више micro:bit свитаца да засветле. Дакле, постоји шанса да сваки десети покрене више сјаја у другим micro:bit-овима.
  • Можете да користите и старе и нове micro:bit-oве, али сви они морају имати верзију или програма MakeCode или Python. (Радио комуникација функционише незнатно другачије у сваком програмском језику. MakeCode програми не могу да комуницирају путем радија са Python и обрнуто.)

Шта вам је потребно

  • најмање 3 micro:bit-а, што их је више то боље
  • micro:bit пакет батрија (опционо)

Корак 2: Програмирај

1# A micro:bit Firefly.
2# By Nicholas H.Tollervey. Released to the public domain.
3import radio
4import random
5from microbit import display, Image, button_a, sleep
6
7# Create the "flash" animation frames. Can you work out how it's done?
8flash = [Image().invert()*(i/9) for i in range(9, -1, -1)]
9
10# The radio won't work unless it's switched on.
11radio.on()
12
13# Event loop.
14while True:
15    # Button A sends a "flash" message.
16    if button_a.was_pressed():
17        radio.send('flash')  # a-ha
18    # Read any incoming messages.
19    incoming = radio.receive()
20    if incoming == 'flash':
21        # If there's an incoming "flash" message display
22        # the firefly flash animation after a random short
23        # pause.
24        sleep(random.randint(50, 350))
25        display.show(flash, delay=100, wait=False)
26        # Randomly re-broadcast the flash message after a
27        # slight delay.
28        if random.randint(0, 9) == 0:
29            sleep(500)
30            radio.send('flash')  # a-ha
31            
32

Корак 3: Унапреди

  • Промените слику која се приказује када екран трепери
  • Измените кôд да би било мање или више вероватно да ће се покренути други догађај треперења на другим micro:bit-у. Опсег случајних бројева може се подударати са бројем micro:bit-ова које имате: то ће бити вероватније ако имате мање micro:bit-ова
  • Направите мање групе свитаца користећи различите бројеве радио група. Само micro:bit-ови са истим бројем групе моћи ће међусобно да комуницирају.
  • Експериментишите са променом снаге радио сигнала.
    Користите блок 'подеси снагу преноса радио уређаја' у MakeCode.
    У Python се користи radio.config(power=7)
    Одаберите број између 0 (најслабији радио сигнал) и 7 (најјачи).
    Какав ефекат има промена снаге радија?