1. korak: Napravi
Od skupine micro:bitova s radijskom komunikacijom napravi čarobni roj svijetlećih krijesnica
Što ćeš naučiti
- kako koristiti radijsku komunikaciju micro:bitova kao okidača događanja
- kako micro:bitov LED zaslon jače ili slabije osvijetliti
- kako koristiti nasumične brojeve i slučajnost da imitiramo događanja oko nas
Što je to?
Krijesnice su kukci koji međusobno komuniciraju putem bioluminiscencije (svjetlosti koju stvaraju u tijelu).
Ovaj program imitira ponašanje krijesnica tako što koristi micro:bitovu mogućnost radijske komunikacije. Inačicu za Python razvio je Nicholas H. Tollervey, a na njoj se temelji inačica za MakeCode
Flashaj program na barem tri micro:bita u istoj prostoriji. Pritisni tipku A na bilo kojem i vidjet ćeš 'roj' micro:bitova kako se pale kad prime radijsku poruku. To će najbolje izgledati s mnogo micro:bitova u mračnoj sobi.
Kada micro:bit primi radijsku poruku, vjerojatnost je jedan prema deset da će on poslati vlastitu poruku i uključiti svjetlost na drugim micro:bitovima.
Kada se svjetlucanje zaustavi, pritisni tipku A na bilo kojem micro:bitu kako bi se komunikacija 'roja' ponovo uspostavila.
Kako to radi
- Program radi tako da putem radijske komunikacije pošalje poruku 'flash' kada se pritisne tipka A na jednom od micro:bitova.
- Svaki od micro:bitova koji prime poruku pričeka neko vrijeme, između 50 i 350 milisekundi. Zatim upali LED zaslon na najjače i postepeno smanjuje sjaj kao što to rade krijesnice.
- Zatim generira slučajni broj između 1 i 9. Ako taj broj bude 0, tada taj micro:bit šalje vlastitu radijsku poruku 'flash' i tako aktivira druge micro:bitove da zasvijetle. Dakle, njegova je šansa da će aktivirati druge micro:bitove 1 prema 10.
- Za ovo možeš koristiti i nove i stare micro:bitove zajedno, ali svi oni moraju imati u sebi ili MakeCodeovu ili Pythonovu verziju programa. (Radijska komunikacija različito funkcionira u raznim programskim jezicima. Program u MakeCodeu ne može putem radija komunicirati s programom u Pythonu i obratno.)
Što ti treba
- bar 3 micro:bita, što više to bolje
- komplet baterija za micro:bit (po želji)
2. korak: Kodiraj
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. korak: Unaprijedi
- Promijeni sliku koja zasvijetli na zaslonu
- Promijeni kôd tako da smanjiš ili povećaš vjerojatnost za aktivaciju ostalih micro:bitova. Broj vrijednosti za slučajni odabir može biti jednak broju micro:bitova koje imaš na raspolaganju: napravi da se vjerojatnost poveća ako ima manje micro:bitova
- Grupiraj krijesnice u manje skupine tako da im dodijeliš različite radijske brojeve. Međusobno će moći komunicirati samo micro:bitovi iz iste radijske grupe.
- Isprobaj kako djeluje kad mijenjaš snagu radijskoga signala.
Napravi to u bloku 'radio set transmit power' MakeCodea.
U Pythonu iskoristi naredburadio.config(power=7)
Izaberi neki broj između 0 (najslabiji radijski signal) i 7 (najjači).
Kako se očituje promjena snage radijskoga signala?
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.