1. korak: Napravi
Što je to?
Pomoću radija ustanovi koliko ti je blizu neki drugi micro:bit pa onda zaigraj igru lova na skriveno blago ili iskoristi taj podatak da ljudima potvrdiš da se međusobno nalaze na sigurnoj udaljenosti.
Uvod
Vodič za kodiranje
Kako to radi
- Potrebna su ti najmanje 2 micro:bita. Napravit ćemo dva različita programa, jedan za signalni far koji neprestano šalje slabu radijsku poruku. Drugi program radi na prijamniku.
- Kada prijamnik primi poruku sa signalnog fara, on jačinu te poruke pohrani u varijablu signal i pokaže ju na LED zaslonu.
- Što si bliže predajniku, to je radijski signal jači, a to znači da što je signal jači, to je drugi micro:bit bliže.
- Ako je radijski signal slab, to znači da je drugi micro:bit vjerojatno dosta udaljen.
- On prikazuje grafikon u obliku stupca koji se povećava što je signal jači i što se nalaziš bliže. Koristi se blok matematičkog mapiranja u kojem se jačine radijskih signala raspona od -95 (slabi) do -42 (jaki) pretvaraju u vrijednosti od 0 do 9 iz kojih se može izraditi stupčasti grafikon.
Verzija u Pythonu
- Python nema ugrađene funkcije grafikona i mapiranja pa se tu proces odvija drukčije. Kada se približiš signalnom faru, sve se LED-ice upale i svijetle sve jače što se više približavaš.
- Putem komande
radio.receive_full()
očitavaju se vrijednosti jačine radijskog signala. Na taj se način dobije poruka, jačina signala i vremenska točka. Nas zanima samo jačina signala, a to izvučemo izsignal = poruka[1]
i pohranimo u varijablu signal. - Jačina signala može biti u rasponu od -98 (najslabiji) do -45 (najjači), a program u Pythonu definira funkciju koja se zove mapiranje i koja te vrijednosti pretvara u vrijednosti u rasponu od 0 do 9 pomoću kojih se određuje jačina svjetlosti LED-ica: 0 znači ugašeno, a 9 znači najsjajnije. (Ovu funkciju možeš iskoristiti i u drugim Pythonovim projektima jer se ona vrlo malo razlikuje od MakeCode bloka map).
- Program u Pythonu kreira praznu sliku veličine 5x5 koja se zove svjetlost koristeći naredbu
svjetlost = slika(5,5)
.
Jačina svjetlosti mijenja se naredbomsvjetlost.fill()
.
Što ti treba
- 2 micro:bita i kompleta baterija
- Uređivač MakeCode ili Python
- baterije (prema potrebi)
2. korak: Kodiraj
Predajnik / signalni far
Prijamnik
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
3. korak: Unaprijedi
- Spoji kôd za signalni far s onim za prijamnik tako da jedan micro:bit obavlja obje funkcije.
- Napravi narukvice tako da detektor blizine možeš nositi sa sobom.
- Koliko je signal jak kada si udaljen na 1 do 2 metra? Podesi program tako da se oglasi vizualni ili čujni alarm ako ti se netko previše približi.
- Iskoristi ove programe za igranje potrage za blagom: sakrij signalni far, a na mnogo micro:bitova stavi prijamnike.
- Ako se nalaziš na širokom vanjskom prostoru, pokušaj eksperimentirati s promjenama snage predajnika. Neka to bude neki broj od 0 do 7.
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.