micro:bit - mikrokomputer na start
micro:bit to niewielki mikrokomputer mieszczący się na jednej płytce drukowanej, pozwalający uczniom i hobbystom wprowadzać w życie projekty na styku elektroniki i programowania. Połączenie bogatego zestawu komponentów z prostotą pisania aplikacji i szerokim wachlarzem dodatków jest idealnym rozwiązaniem dla osób zaczynających przygodę z programowaniem. Jeśli znane są ci takie urządzenia jak Raspberry Pi lub Arduino i myślisz o tym, by w przyszłości realizować projekty w oparciu o nie lub podobne urządzenia, to micro:bit będzie świetnym wprowadzeniem do ich świata.
Komponenty
Po rozpakowaniu z pudełka urządzenie może wydawać się niepozorne, ale niech cię to nie zmyli! Na powierzchni płytki o rozmiarach 4 x 5 cm twórcom udało się umieścić zaskakująco dużo:
- mikroprocesor,
- 25 diod LED,
- dwa przyciski,
- akcelerometr,
- kompas,
- moduł Bluetooth,
- złącze krawędziowe do podłączenia urządzeń zewnętrznych,
- złącze USB,
- czujnik temperatury,
- czujnik światła.
Bogate wyposażenie to nie jedyna zaleta. micro:bit oprócz programowania za pomocą bloczków podobnych do tych znanych ze Scratch (który ma swoje rozszerzenie dla micro:bit) pozwala na programowanie za pomocą m.in. takich języków programowania jak JavaScript, Python, C++ czy C#.
Ilustracja 1. Porównanie rozmiaru micro:bit do baterii AA
#Ciekawostka
Poprzednikiem micro:bit jest komputer BBC Micro udostępniony w latach .80 dzięki projektowi BBC Computer Literacy Project. Komputerowi towarzyszył program telewizyjny, samouczki, aplikacje i kurs programowania w języku BASIC. Dzięki BBC Micro Wielka Brytania stała się jednym z najbardziej zinformatyzowanych krajów na świecie.
Środowiska programistyczne
Jeśli cię to zainteresowało, to możesz spróbować pracy z micro:bit, nawet go nie posiadając. Istnieją strony WWW pozwalające skorzystać z symulatora, który programuje się identycznie jak prawdziwe urządzenie. W przypadku gdy chcesz spróbować swoich sił w programowaniu bloczkami, przejdź na stronę https://makecode.microbit.org/, która udostępnia również możliwość programowania w JavaScript. Jeśli wolisz Pythona, udaj się na stronę https://create.withcode.uk/. Oba te środowiska pozwalają zarówno na pisanie i testowanie programów bez posiadania micro:bit, jak i umożliwiają ściągnięcie programu na dysk komputera w celu skopiowania do pamięci fizycznego urządzenia.
Dla osób, które posiadają micro:bit i chcą używać do jego programowania języka Python, polecany jest edytor Mu (dostępny na stronie https://codewith.mu/). Jedną z jego zalet jest to, że potrafi bez pomocy użytkownika wykryć podłączone do komputera urządzenie i skopiować program do jego pamięci.
Pierwszy program
No dobrze, a jak stworzyć program z wykorzystaniem opisywanego mikrokomputera? Napiszmy prosty skrypt w języku Python, wyświetlający na matrycy LED napis „Hello World!", posługując się edytorem Mu. W oknie aplikacji wpisz następujący kod
from microbit import *
display.scroll('Hello World!')
Listing 1. Program „Hello World!"
Następnie podłącz micro:bit za pomocą przewodu USB do komputera (w dolnym pasku Mu pojawi się informacja, że wykrył podłączony sprzęt), a następnie naciśnij klawisz Flash ((lub Fleszuj, jeśli pracujesz w polskiej wersji). Spowoduje to przesłanie programu do pamięci urządzenia i jego natychmiastowe wykonanie. W rezultacie napis „Hello World!" zostanie wyświetlony za pomocą diod LED.
Co składa się na nasz program? Pierwsza linijka powyższego programu jest niezbędna, aby jakikolwiek program tworzony na micro:bit zadziałał. Informuje ona Pythona, że skrypt wykorzystuje funkcje znajdujące się w module microbit (moduł to stworzony wcześniej przez innych programistów kod, z którego możemy skorzystać w swoich programach).
W drugiej linijce wybieramy urządzenie, z którego skorzystamy (display, czyli wyświetlacz) i jakiej jego funkcji chcemy użyć (scroll, czyli przewijanie). W nawiasach umieszczamy tekst, jaki ma zostać na ekranie pokazany.
Jak zostało wcześniej wspomniane, program, jaki napisaliśmy, zostanie uruchomiony od razu po załadowaniu do pamięci. Zmodyfikujemy go zatem w taki sposób, aby uruchamiał się dopiero wtedy, kiedy naciśniemy klawisz A. W edytorze Mu napisz następujący kod i ponownie naciśnij Flash.
1. from microbit import *
2. while True:
3. if button_a.is_pressed():
4. display.scroll('Hello World!')
Listing 2. Wykorzystanie klawisza w programie „Hello World!"
W naszym programie zaszły dwie zmiany. Po pierwsze, w drugiej linii pojawiła się pętla nieskończona, która jest niezbędna, gdyż w przeciwnym wypadku program po załadowaniu do pamięci micro:bit wykonałby się tak szybko, że nie zdążylibyśmy zareagować, zanim ulegnie zakończeniu. W linii czwartej znajduje się instrukcja sprawdzająca, czy klawisz A został naciśnięty. Jeśli to nastąpiło, na ekranie zostanie wyświetlony nasz napis. Jeśli nie, to program dzięki pętli nieskończonej będzie oczekiwał na jego wciśnięcie, raz za razem sprawdzając, czy to nastąpiło.
Ilustracja 2. Program HelloWorld.py w edytorze Mu
#Warto wiedzieć
Aby móc skorzystać z edytora Mu, musisz przestawić go w tryb micro:bit za pomocą ikony Tryb dostępnej z lewej strony menu głównego.
Pomiar natężenia światła
Do tego momentu wyświetlacz służył nam wyłącznie w celu wyświetlenia informacji, ale ma jeszcze jedną funkcjonalność: wykrywania natężenia światła, jakie na niego pada. Napisz w Mu następujący skrypt
1. from microbit import *
2. while True:
3. if button_a.is_pressed():
4. intensity = display.read_light_level()
5. display.scroll(intensity)
Listing 3. Pomiar natężenia światła
W większości program wygląda podobnie do poprzedniego, różnica pojawia się w linii nr 4. Po naciśnięciu klawisza A pobieramy z wyświetlacza zmierzone natężenie światła, zapisując je do zmiennej intensity, a następnie w linii nr 5 wyświetlamy jej wartość za pomocą diod LED. Ponieważ program działa w pętli nieskończonej, możesz przeprowadzić test przy różnym oświetleniu. Po każdym naciśnięciu klawisza A na ekranie znajdzie się wartość odpowiadająca aktualnemu natężeniu światła. Należy pamiętać, że micro:bit informuje o natężeniu światła, korzystając z zakresu wartości 0–255. Uwaga: powyższy program nie zadziała w emulatorze.
Elektroniczna kostka do gry
Oczywiście wyświetlacz to tylko jedno z kilku wbudowanych w micro:bit urządzeń. Poniżej znajduje się przykład wykorzystania go jako elektronicznej kostki do gry
1. from microbit import *
2. import random
3. display.show('-')
4. while True:
5. if accelerometer.was_gesture("shake"):
6. display.clear()
7. sleep(1000)
8. display.show(str(random.randint(1, 6)))
Listing 4. Elektroniczna kostka do gry
Korzystając z wbudowanego w micro:bit akcelerometru oraz bazy gestów, jaką ma, wykrywamy potrząśnięcie urządzeniem i jeśli ono nastąpi, losujemy wartość z zakresu 1–6.
Przedstawione wyżej przykłady to tylko wierzchołek góry lodowej, jeśli chodzi o możliwe zastosowania micro:bit. Poczynając od prostego detektora metali, przez alarm antywłamaniowy, aż po samobieżne roboty i kontroler do gier lub pilot do smartfona, jest wiele obszarów, w których znajdzie swoje zastosowanie.
Co dalej?
Jeśli zainteresowała cię tematyka związana z micro:bit, to polecam odwiedzenie strony https://microbit.org/, która jest znakomitym punktem wyjściowym do dalszej przygody z tym małym, ale wszechstronnym mikrokomputerem.
#Warto wiedzieć
Językiem używanym w przykładach jest specjalna wersja języka Python – MicroPython. Jest to język przygotowany na podstawie Pythona 3 specjalnie z myślą o mikrokomputerach takich jak micro:bit.
Autor: Krzysztof Wojnicki. Na co dzień DevOps zajmujący się rozwiązaniami w chmurze publicznej oraz instruktor w szkole programowania dla dzieci i młodzieży Młodzi Koderzy (https://www.mlodzikoderzy.pl/).
powrótGaleria Gawra, lok.29. I p.
ul. Warszawska 58C
02-496 Warszawa
© Młodzi Koderzy - All Rights Reserved