Корак 1: Уради
Групу 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 (најјачи).
Какав ефекат има промена снаге радија?
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.


