Micro:Bit i animacja

Projekt polega na zaprogramowaniu płytki Micro:Bit, żeby na swoim ekranie wyświetlała animację ze świecących diod. Pracując z tym zadaniem można nauczyć się, jak obsługiwać wyświetlacz LED kodując, które diody powinny w danym momencie się świecić, a które powinny być zgaszone. Przykład na tej stronie będzie ilustrował animację obracającego się wiatraka.

Zaznaczam, że przedstawiony tu sposób realizacji projektu to jedynie przykład, który starałem się dopasować poziomem dla osób początkujących zarówno z programowaniem w Pythonie, jak i z płytką Micro:Bit.

Co będzie potrzebne:

  • płytka Micro:Bit,
  • kabel USB do połączenia płytki i komputera,
  • komputer z dostępem do internetu.

Kod projektu:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from microbit import *

wiatrak_1 = Image("00900:"
            "00900:"
            "99999:"
            "00900:"
            "00900")
           
wiatrak_2 = Image("09000:"
            "09099:"
            "00900:"
            "99090:"
            "00090")
           
wiatrak_3 = Image("90009:"
            "09090:"
            "00900:"
            "09090:"
            "90009")
           
wiatrak_4 = Image("00090:"
            "99090:"
            "00900:"
            "09099:"
            "09000")
           
wiatraki = [wiatrak_1, wiatrak_2, wiatrak_3, wiatrak_4]

while True:
    display.show(wiatraki, delay=200)

Opis kodu:

Kod programu zaczyna się od opisania poszczególnych klatek animacji, gdy jedna będzie zamieniana z drugą, to na panelu LED będziemy widzieć pozorny ruch wiatraku. Klatki to zmienne wiatrak_1, wiatrak_2, wiatrak_3 i wiatrak_4. Każda z nich wygląda podobnie i składa się z pięciu stringów zawierających cyfry, które odpowiadają pojedynczym diodą LED. Wartości cyfr mogą być z przedziału od 0-9 i oznaczają poziom jasności śwircenia (0 oznacza wyłączenie diody, a 9 świecenie z pełną jasnością).

Przykładowo zmienna

1
2
3
4
5
wiatrak_3 = Image("90009:"
            "09090:"
            "00900:"
            "09090:"
            "90009")

będzie odpowiedzialna za obraz widoczny po prawej.

Kolejnym krokiem jest utworzenie listy wiatraki, zawierającej wszystkie nasze klatki. Dzięki temu zabiegowi, Micro:bit będzie przełączał się między obrazkami w takiej kolejności, w jakiej zapisaliśmy to w liście.

Ostatnim etapem naszego projektu jest umieszczenie w nieskończonej pętli while True polecenia informującego Micro:bita, co chcemy, żeby było wyświetlane na panelu LED – display.show(). Pierwszy argument zapisany w nawiasie, to nasza lista wiatraki, czyli lista zawierająca klatki animacji, a drugi – delay=200, to opóźnienie, jakie między klatkami powinno występować.