Krok 1: Wykonaj to
Co to jest?
Użyj radia, aby wyczuć, jak blisko jest inny micro:bit, a następnie stwórz grę w poszukiwanie skarbów lub użyj go, aby pokazać ludziom, że znajdują się w bezpiecznej odległości społecznej.
Wprowadzenie
Przewodnik po kodowaniu
Jak to działa
- Potrzebujesz do tego co najmniej 2 micro:bity. Stworzymy dwa różne programy, jeden dla nadajnika (latarni), który stale wysyła wiadomość radiową o niskiej mocy. Drugi program działa na odbiorniku.
- Gdy odbiornik odbiera wiadomość z nadajnika, przechowuje jej siłę w zmiennej o nazwie sygnał (signal) i pokazuje ją na wyświetlaczu LED.
- Sygnały radiowe stają się silniejsze bliżej nadajnika, więc jeśli sygnał jest silny, oznacza to, że drugi micro:bit jest prawdopodobnie blisko.
- Jeśli sygnał radiowy jest słaby, drugi micro:bit prawdopodobnie będzie oddalony.
- Wyświetla wykres słupkowy, który powiększa się ze wzrostem siły sygnału i kiedy jesteś bliżej nadajnika. Wykorzystuje on blok przelicz z kategorii Matematyka, do przeliczenia siły sygnału radiowego z zakresu od -95 (słaby) do -42 (silny) na zakres od 0 do 9, który możemy użyć do narysowania wykresu słupkowego.
Wersja w Pythonie
- Python nie ma wbudowanego wykresu słupkowego ani funkcji przeliczania, działa więc nieco inaczej. Wszystkie diody LED włączają się, gdy znajdziesz się blisko nadajnika i im bliżej jesteś tym bardziej się świecą.
- Pobiera odczyty siły sygnału radiowego za pomocą polecenia
radio.receive_full()
. Zapewnia to komunikat, natężenia sygnału i znacznik czasu. Chcemy tylko znać natężenie sygnału, więc używamysygnal = message[1]
do rozpoznania tego i przechowywania go w zmiennej o nazwie sygnał. - Natężenie sygnału może mieścić się w zakresie od -98 (najsłabszy) do -45 (najsilniejszy), a program w Pythonie definiuje funkcję o nazwie map, aby przekonwertować liczby z tego zakresu na zakres 0 – 9, który możemy wykorzystać do zmiany jasności diod LED: 0 oznacza wyłączoną, 9 to najjaśniejsza dioda LED. (Możesz użyć tej funkcji w innych projektach Pythona, ponieważ działa podobnie, jak blok przelicz w MakeCode).
- Program w Pythonie tworzy pusty obrazek 5x5 o nazwie światło (light) używając polecenia
light = Image(5,5)
Jego jasność jest zmieniana za pomocą polecenialight.fill()
Czego potrzebujesz
- 2 micro:bity i pakiety baterii
- MakeCode lub edytor Pythona
- pakiet baterii (opcjonalnie)
Krok 2: Zakoduj to
Nadajnik / latarnia
Odbiornik
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
Krok 3: Ulepsz to
- Połącz kody nadajnika i odbiornika, aby jeden micro:bit wykonywał oba zadania.
- Stwórz opaski nadgarstka, aby móc nosić czujki zbliżeniowe.
- Jak silny jest sygnał, gdy jesteś oddalony o 1 lub 2 metry? Zmodyfikuj kod, aby uruchomić alarm wizualny lub dźwiękowy, gdy ktoś jest zbyt blisko.
- Użyj tych programów, aby stworzyć grę polowania na skarby: ukryj latarnię i umieść kod odbiornika na wielu micro:bitach
- Jeśli jesteś na zewnątrz lub w dużej przestrzeni, eksperymentuj poprzez zmianę mocy nadajnika. Może to być dowolna liczba między 0 a 7
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.