Корак 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.