KursyPoradnikiInspirujące DIYForum

micro:bit (BBC micro:bit) - co warto wiedzieć?

micro:bit to popularny zestaw do nauki elektroniki i programowania, dzięki któremu dzieci mogą poznać świat technologii. Ten oryginalny moduł, który powstał z inicjatywy BBC, okazał się świetnym narzędziem do nauki zgodnie z filozofią STEM (ang. Science, Technology, Engineering, Mathematics). 

Czym jest micro:bit?

BBC micro:bit jest małą płytką elektroniczną (wielkości połowy karty kredytowej), której sercem jest mikrokontroler Nordic nRF51822 z rdzeniem ARM Cortex-M0. Premiera płytki miała miejsce w 2015 roku i od tamtej pory jest ona wykorzystywana do promowania nauki elektroniki oraz programowania.

Zestaw BBC micro:bit

Zestaw BBC micro:bit

Osoby zainteresowane poznaniem tej popularnej platformy powinny sprawdzić nasz kurs microbita - ta darmowa seria artykułów wprowadzi każdego w świat omawianej płytki:

Kurs micro:bit – #0 – czym jest micro:bit? Dla kogo jest kurs?
Kurs micro:bit – #0 – czym jest micro:bit? Dla kogo jest kurs?

Mały micro:bit to popularna płytka, dzięki której miliony młodych majsterkowiczów rozpoczęło już swoją przygodę z elektroniką i... Czytaj dalej »

Specyfikacja micro:bit

Obok głównego układu sterującego (odpowiadającego również za komunikację przez Bluetooth BLE), na płytce można znaleźć układ KL26Z umożliwiający komunikację przez USB oraz układy 2 czujników (magnetometr oraz akcelerometr). W sprzedaży dostępne są 2 wersje płytki - 1.3 oraz 1.5 (z 2019 roku). W nowszej wersji płytki micro:bita dwa czujniki zostały zastąpione jednym układem, który zawiera w sobie oba sensory. Dla większości użytkowników końcowych nie ma to jednak żadnego znaczenia.

Czym wyróżnia się micro:bit?

Charakterystycznym elementem płytki micro:bit jest wyświetlacz z diod świecących, który umieszczono na przodzie płytki. Równo 25 LEDów ułożonych w matrycę 5x5 diod pozwala na wyświetlanie symboli, wskazań czujników oraz prostych tekstów.

Drugim charakterystycznym elementem jest złącze rozszerzeń, które składa się z 50 padów (po 25 na każdą stronę PCB). Wyglądem przypomina ono złącze kart SO-DIMM, ale nie jest zdefiniowane przez żaden konkretny standard. Dodatkowo 5 z tych wyprowadzeń łączy się z dużymi przelotkami (4 mm), do których można się podłączyć za pomocą złącz bananowych lub popularnych krokodylków.

Płytka rozszerzeniowa dla micro:bit

Płytka rozszerzeniowa dla micro:bit

Za wyjątkiem wspomnianych sposobów połączenia, do wyprowadzenia sygnałów z micro:bit stosuje się dedykowane gniazdo, które pozwala na łatwy dostęp do wszystkich pinów GPIO. Przykładowe złącze tego typu widoczne jest na powyższej fotografii.

Przy okazji warto wspomnieć, że płytka rozszerzająca możliwości micro:bita (ze zdjęcia powyżej) jest częścią zestawu edukacyjnego, który zawiera w sobie dodatkowe moduły elektroniczne oraz książeczkę z prostymi projektami. Od niedawna, dzięki naszemu tłumaczeniu, zestaw ten pojawił się w polskiej wersji językowej - szczegóły na stronie dystrybutora: BBC micro:bit Grove Inventor Kit PL. Zestaw ten jest również używany w naszym kursie programowania micro:bita.

Dla kogo jest micro:bit?

Płytka micro:bit została zaprojektowana w celu promowania nauki programowania i elektroniki wśród uczniów szkół podstawowych. Za grupę docelową projektu wybrano dzieci w wieku szkolnym, gdyż zauważono, że są one chętne do samodzielniej realizacji zadań poza zajęciami szkolnymi. 

Logo projektu micro:bit

Logo projektu micro:bit

Promowanie micro:bit miało przeciwdziałać panującej opinii, która głosi, że urządzenia elektroniczne są przeznaczone wyłącznie do rozrywki. Zgodnie z planami BBC, w ramach kampanii Make it Digital, do końca 2020 roku, do rąk uczniów z Wielkiej Brytanii i Kanady ma trafić aż 2 miliony płytek micro:bit. Długofalowy cel projektu zakłada rozdanie 100 milionów płytek. Zestawy micro:bit cieszą się niezwykłą popularnością również w innych krajach.

Celem projektu micro:bit jest pokazanie, że nauka elektroniki może być bardzo ciekawym zajęciem, a programowanie nie musi być trudne. W związku z tym cała płytka została przygotowana tak, aby można było za jej pomocą zrealizować wiele ciekawych projektów (takich jak elektroniczna kostka do gry, zegarek na rękę, czy prosta gra zręcznościowa).

Specyfikacja micro:bit

  • CPU:
    • Nordic nRF51822 32-bit 16 MHz ARM Cortex-M0,
    • FLASH: 256 KB,
    • RAM: 16 KB.
  • Komunikacja USB: Freescale KL26Z USB 2.0.
  • Komunikacja radiowa (nRF51822)
    • Bluetooth 4.1/BLE,
    • niskopoziomowa komunikacja 2,4 GHz.
  • Czujniki:
    • temperatury: nRF51822 w zakresie -25 – 75°C (rozdzielczość 0,25°C),
    • akcelerometr Freescale MMA8652 I2C:
      • rozdzielczość 10 bit,
      • zakresy: 2/4/8 g,
      • częstotliwość odświeżania 800 Hz,
    • magnetometr Freescale MAG3110 I2C:
      • zakres 1000 μT,
      • rozdzielczość 0.1 μT,
      • częstotliwość odświeżania 80 Hz,
    • w wersji 1.5 akcelerometr i magnetometr zastąpiono układem LSM303AGR od ST:
      • wykrywanie swobodnego spadku,
      • zakresy: 2/4/8 g,
      • rozdzielczość: 8/10/12 bit.
  • Wyświetlacz:
    • matryca czerwonych LED SMD 5x5,
    • 10 stopni jasności.
  • Zasilanie:
    • złącze USB (5 V) lub złącze JST (2 baterie AAA),
    • napięcie zasilania: 1,8 – 3,6 V,
    • napięcie pracy: 3,3 V.
  • Wymiary płytki: 43 × 52 mm.

    Jak programować micro:bit?

    Metod programowania płytki micro:bit jest wiele. Kod można napisać np. w C/C++, JavaScriptcie lub MicroPythonie. Program można też ułożyć z wygodnych bloczków, które udostępnia dedykowany graficzny edytor (MakeCode od firmy Microsoft). Środowisko to zawiera wszystko to co niezbędne do łatwego programowania micro:bit:

    • edytor blokowy,
    • alternatywny edytor JavaScript,
    • symulator działania programu,
    • mechanizm wykrywania błędów,
    • repozytorium przykładów i poradnik dla początkujących.

    Program zbudowany z bloczków jest wymienny z programem JavaScript, można więc bez problemu przechodzić pomiędzy tymi widokami. Po naciśnięciu przycisku Download projekt jest przekształcany na kod maszynowy (plik .hex) i wgrywany automatycznie na płytkę.

    Środowisko desktopowe MakeCode

    Środowisko desktopowe MakeCode

    Oprócz środowiska instalowanego na komputerach PC dostępny jest też prosty w obsłudze webowy edytor kodu wraz kompilatorem. To alternatywne środowisko jest bardzo podobne do stacjonarnego odpowiednika - jedyną większą różnicą jest sposób wgrywania programów.

    Webowe edytor i kompilator programów do micro:bit

    Webowe edytor i kompilator programów do micro:bit

    Środowisko webowe nie może połączyć się z płytką, w związku z tym wygenerowany kod pobiera się na komputer w formie pliku binarnego, który należy ręcznie przenieść na płytkę micro:bit. Proces ten jest jednak bardzo łatwy, ponieważ moduł jest wykrywany przez PC jako pamięć masowa. Wystarczy więc przeciągnąć plik z komputera na micro:bita.

    Po kliknięciu przycisku Download zostanie pobrany plik z rozszerzeniem.hex

    Po kliknięciu przycisku Download zostanie pobrany plik z rozszerzeniem.hex

    Narzędzia micro:bit runtime DAL

    Z myślą o bardziej zaawansowanych programistach przygotowano zestaw narzędzi dających dostęp do niskopoziomowych zasobów płytki. Należy do nich micro:bit runtime DAL (Device Abstraction Layer) zapewniający obsługę urządzeń zawartych na płytce micro:bit, dzięki której każdy może tworzyć własne programy w C/C++. Przykładowy kod wyświetlający przewijany napis "HELLO WORLD!":

    Niskopoziomowe funkcje często obudowuje się kodem bardziej wysokopoziomowym – przykładem tego jest środowisko MakeCode, w którym niektóre bloki zawierają bezpośrednie odwołania do DAL. Biblioteka ta ma jednak jeszcze inne zastosowania, ponieważ może być też wykorzystywana podczas pisania programów w innych językach - np. w Pythonie.

    Programowanie micro:bit w Pythonie

    Python jest bardzo popularnym językiem umożliwiającym szybkie tworzenie czytelnych programów, stąd świetnie nadaje się do programowania micro:bita. Lecz jak zmieścić obszerny interpreter języka na tak małej płytce? Z pomocą przyszedł MicroPython, czyli odmiana Pythona przeznaczona do systemów o ograniczonych zasobach.

    Wgrywając na micro:bita REPL (odpowiednik interpretera) można na nim wykonywać skrypty Pythona. Aby rozpocząć programowanie micro:bit z MicroPythonem można posłużyć się zarówno internetowymi jak i stacjonarnymi środowiskami. Dobrym przykładem edytora webowego jest micro:bit Python Editor, który umożliwia wgranie skompilowanego programu na płytkę bezpośrednio z przeglądarki.

    Webowe środowisko do programowanie w MicroPythonie

    Webowe środowisko do programowanie w MicroPythonie

    Po zapisaniu, skrypt zostanie od razu uruchomiony w środowisku REPL. Aby jednak mieć dostęp do interpretera można wgrać pusty szkic lub przerwać wykonywanie skryptu skrótem klawiszowym Ctrl+C. W ten sposób w konsoli zostanie wypisany znak zachęty.

    Konsola REPL w webowym środowisku MicroPythona

    Konsola REPL w webowym środowisku MicroPythona

    Za wyjątkiem webowych edytorów dostępne są też stacjonarne programy jak np. Mu. Zaletą tego środowiska jest możliwość większej interakcji z danymi – wyniki przekazywane przez port szeregowy są nie tylko wypisywane w terminalu REPL, ale też formowane w kolorowe wykresy.

    Widok edytora MicroPythona Mu w trybie dla micro:bit

    Widok edytora MicroPythona Mu w trybie dla micro:bit

    Edytor Mu posiada podpowiedzi składni (również dla bibliotek micro:bit) co znacznie ułatwia pisanie wolnych od błędów programów. Co więcej, w Mu można pisać też programy na inne płytki wspierające MicroPythona takie jak np ESP8266 oraz ESP32.

    Terminal REPL i wykres temperatury i wskazań akcelerometru

    Terminal REPL i wykres temperatury i wskazań akcelerometru

    Płytka micro:bit była przygotowana z myślą o młodych adeptach programowania, ale daje możliwości porównywalne z innymi, zaawansowanymi płytkami rozwojowymi. Dostępność programów, bibliotek i metod programowania sprawia, że każdy może znaleźć coś dla siebie. Alternatywą lub kontynuacją nauki micro:bita może być opanowanie Arduino - np. z tego darmowego kursu podstaw Arduino.

    Czy wpis był pomocny? Oceń go:

    Średnia ocena 4.2 / 5. Głosów łącznie: 23

    Nikt jeszcze nie głosował, bądź pierwszy!

    Artykuł nie był pomocny? Jak możemy go poprawić? Wpisz swoje sugestie poniżej. Jeśli masz pytanie to zadaj je w komentarzu - ten formularz jest anonimowy, nie będziemy mogli Ci odpowiedzieć!

    Czy wpis był pomocny? Oceń go:

    Średnia ocena 4.2 / 5. Głosów łącznie: 23

    Nikt jeszcze nie głosował, bądź pierwszy!

    Artykuł nie był pomocny? Jak możemy go poprawić? Wpisz swoje sugestie poniżej. Jeśli masz pytanie to zadaj je w komentarzu - ten formularz jest anonimowy, nie będziemy mogli Ci odpowiedzieć!