Przykładowe programy na platformę Micro:bit – część 2
W trzecim przykładzie wykorzystamy płytkę micro:bit do sterowania diodami adresowanymi LED typu WS2812B. Najpierw należy podłączyć moduł do płytki micro:bit. Sterowanie będzie odbywać się za pomocą pinu AIN2 (PB2). Oprócz tego należy również podłączyć zasilanie.
Rys. 14. Moduł z diodami WS2812B podłączony do płytki micro:bit
Aby napisać program, w którym będziemy sterować diodami LED WS2812B, musimy dodać odpowiednią kategorie z bloczkami do obsługi tego typu diod. Aby to zrobić, z listy kategorii wybieramy Advanced, a następnie opcję Add Package
Rys. 15. Dodawanie nowych pakietów, kategoria Advanced >> Add Package
Pojawi się okno, w którym można wybrać jaki pakiet bloczków chcemy dodać do naszego edytora. Wybieramy pakiet Neopixel przygotowany przez Adafruit do sterowania diodami adresowanymi.
Rys. 16. Pakiety, które możemy dodać do edytora MakeCode
Po tej czynności na liście z kategoriami bloczków pojawiła się nowa kategoria NeoPixel.
Rys. 17. Poprawnie dodana kategoria Neopixel do edytora MakeCode
Pierwszym krokiem jest inicjalizacja pakietu – określenie ilości diod w łańcuchu oraz ich typu. Do tego celu będzie potrzebny bloczek set item to. Można zmienić nazwę zmiennej item na własną (aby to zrobić klikamy prawym przyciskiem na napis item i wybieramy opcje Rename variable). Następnie wykorzystamy bloczek z kategorii Neopixel – Neopixel at P0 with 24 led as RGB (GRB format). Parametr Po zmieniamy na wartość P2, zamiast 24 wpisujemy 8 (ilość diod na naszym module). Ostatni parametr RGB (GRB format) zostawiamy bez zmian. Umieszczamy ten bloczek w bloczku on start. Nasz program obecnie prezentuje się następująco:
Rys. 18. Inicjalizacja działania pakietu Neopixel
W naszym programie wszystkie diody będą zapalane kolejno na barwy czerwoną, niebieską oraz zieloną.
W bloczku forever umieszczamy bloczek item show color red. W bloczku tym możemy ustawić jeden z wielu kolorów świecenia. Po tym bloczku umieszczamy bloczek czekania pause (ms) 100. Możemy zmienić wartość 100 np. na 1000 ms (czyli 1 sekunda). Dodajemy bloczki dla koloru niebieskiego oraz zielonego.
Nasz program prezentuje się następująco:
Rys. 19. Program 3 – zmiana kolorów (czerwony, niebieski, zielony) wszystkich diod na module.
Aby diody nie świeciły zbyt mocno, można dodać bloczek item set brightness 255 (znajduje się on w zakładce more kategorii NeoPixel), gdzie można ustawić jasność z zakresu od 0 do 255.
Działanie przykładów przedstawiono na poniższym filmie: