Zorganizujmy wyścigi kelnerów!
Końcowy efekt wyglądać będzie mniej więcej tak 😉
Zasady gry
Nasza gra polega na symulowaniu sytuacji, w której kelner (gracz) musi przenieść z punktu A do pkt B na tacy zupę (Micro:Bit). Zupy nie można rozlać. Kelner idzie z tacą trzymaną w wyciągniętej ręce – musi utrzymywać ją w równowadze, w przeciwnym razie zupa się wyleje i będzie musiał ją wytrzeć zanim ruszy dalej.
Gra ma formę zawodów kilku kelnerów, którzy wspólnie ścigają się kto dostarczy najwięcej zup w określonym czasie lub kto pierwszy dostarczy 5 zup.
Czas trwania lekcji: 2 x 45min
Na opracowanie gry zalecamy przeznaczyć dwie jednostki lekcyjne (najlepiej w jednym bloku).
- Pierwszą godzinę lekcyjną przeznaczamy na wyjaśnienie zasad i zaprogramowanie płytki MB.
- Podczas drugiej lekcji testujemy grę:
– organizujemy zawody kelnerów.
– testujemy poziom trudności gry i w razie potrzeby korygujemy go w kodzie.Zachęcamy uczniów do wymyślania nowych zasad i modyfikacji gry – zarówno w jej fizycznej formie (np. tor przeszkód między krzesłami, niesienie tacy z zawiązanymi oczami itp.) jak i w kodzie płytki MB (zmiana sposobu odblokowywania ruchu gracz)
Jak zaprogramujemy grę?
Płytka Micro:Bit symbolizująca zupę niesioną przez kelnera, ma wbudowany czujnik wychylenia, który może płynnie mierzyć wartość wychylenia płytki we wszystkich kierunkach. Mierząc wychylenie w osi X sprawdzamy czy taca z zupą utrzymywana jest w równowadze. Jeśli taca wychyli się zbyt mocno (zupa się rozlewa) gracz musi się zatrzymać, nacisnąć przycisk A na płytce (wytarcie rozlanej zupy), odczekać kilka sekund i dopiero wtedy może ruszyć dalej.
Co potrzebujesz:
Narzędzia:
- Zestaw Micro:Bit dla pary uczniów
– płytka BBC Micro:Bit
– kabel micro USB – najlepiej z magnetyczną odczepianą końcówką
– zasilanie płytki – sugerowane dwie baterie AAA (małe paluszki) + koszyk na baterie - Komputery dla uczniów (1 dla pary), rzutnik lub tablica interaktywna dla nauczyciela
- Przeglądarka internetowa Chrome
Co uczniowie powinni umieć przed przystąpieniem do lekcji:
- znajomość liczb ujemnych i wartości bezwzględnej
- rozumienie konceptu zmiennych logicznych – PRAWDA / FAŁSZ
- rozumienie konceptu instrukcji warunkowych – JEŻELI, JEŻELI / W PRZECIWNYM RAZIE
- podstawowa umiejętność obsługi płytki MB – wgrywanie programów
Przebieg lekcji
1. Wprowadzenie
Tłumaczymy uczniom zasady gry, którą będziemy tworzyć, aby lepiej zademonstrować na czym będzie polegała zabawa możemy przeprowadzić pokaz dając jednemu z uczniów zaprogramowaną płytkę MB z wgranym programem gry w kelnera. Uczeń ma za zadanie przejść z uruchomionym programem całą klasę bez “rozlewania zupy”
Tacę z zupą symulujemy przy pomocy płytki MB położonej na dużej, sztywnej książce. Aby utrzymanie równowagi było trudniejsze możemy ustalić, że “tacę” należy nieść w ręce wyciągniętej prosto przed siebie.
2. Przygotowanie do pracy
Gdy mamy pewność, że wszyscy uczniowie rozumieją zasady gry nad którą będziemy pracować przystępujemy do programowania.
Przygotowanie do pracy:
3. Programujemy grę
Kiedy zupa została wylana?
Musimy wykrywać moment, w którym “zupa niesiona na tacy została wylana”. “Zupę” symuluje płytka MB, “wylanie zupy” wykrywamy przy pomocy czujnika przyspieszenia czyli AKCELEROMETRU.
W pierwszej kolejności zobaczmy jakie odczyty otrzymujemy z akcelerometru. Z zakładki WEJŚCIE wyjmujemy bloczek PRZYSPIESZENIE (mg) X – interesuje nas wychylenie płytki w poziomie czyli w osi X.
Sprawdzamy jakie wartości możemy odczytać z czujnika przyspieszenia w symulatorze. Przesuwając kursorem myszki po obrazku płytki MB w polu symulatora obracamy wirtualną płytkę Micro:Bit. Możemy zaobserwować, że odczyty z czujnika, w polu oznaczonym ax zmieniają się w zakresie – od minus 1023 do plus 1023
Zwracamy uwagę uczniów na fakt, że jeśli płytka leży dokładnie poziomo odczyt z czujnika wynosi ZERO, jeśli przekręcamy płytkę w lewo odczyt maleje do wartości ujemnej -1023, jeśli przekręcamy w prawo odczyt rośnie do wartości 1023 – zmianę tych wartości obserwujemy w symulatorze.
Odczyty z czujnika możwmy zwizualizować na wyświetlaczu LED płytki dzięŻi wyświelteniu ich w postaci wykresu słupkowegoprzy pomocy bloczka PLOT BAR GRAPH
Przez chwilę testujemy wychylanie płytki Micro:Bit i wskazania na wyświetlaczu – wspólnie z uczniami próbujemy oszacować przy jakiej wartości odczytów uznajemy, że “zupa została wylana” – jest to wartość, którą musimy dobrać doświadczalnie – będzie od niej zależeć trudność naszej gry.
Im mniejsza wartość graniczna – tym uważniej trzeba nieść tacę – szukamy wspólnie takiej wartości przy której gra nie będzie ani zbyt łatwa ani zbyt trudna – proponuję zacząć od wartości 100 – jeśli gra będzie zbyt łatwa możemy tę wartość zmniejszyć
[ obrazek – na osi X pokazanie zakresu gdzie zupa została wylana]
Ponieważ odczyty z czujnika przyspieszenia wahają się od wartości ujemnych do dodatnich porównujemy BEZWZGLĘDNĄ WARTOŚĆ odczytu z czujnika – kiedy bezwzględna wartość odczytu przyspieszenia w osi X jest mniejsza od 100 – taca niesiona jest poprawnie (zupa się nie wylewa) gdy wartość ta przekroczy 100 – zupa została wylana
Zablokowanie gry
W momencie gdy “zupa została wylana” chcemy zablokować grę – gracz nie może iść dalej dopóki jej nie wytrze – aby tego dokonać wprowadzamy zmienną logiczną o nazwie GRA i na jej podstawie określamy warunek
– Jeżeli zmienna GRA == PRAWDA – gracz niesie tacę, wyświetlamy odczyty z czujnika na wyświetlaczu i cały czas sprawdzamy czy “zupa nie została rozlana”
– Jeżeli zmienna GRA == FAŁSZ – gracz musi się zatrzymać, wyświetlamy ikonę “smutnej minki” i czekamy aż gracz “wytrze zupę”
Wytarcie zupy
Aby gracz mógł ruszyć dalej musi symbolicznie “posprzątać rozlaną zupę” czyli odczekać kilka karnych sekund w miejscu. Aby “wytrzeć zupę” gracz musi nacisnąć przycisk A na płytce MB i poczekać aż na wyświetlaczu minie odliczanie 3..2..1 i ponownie pojawi się wykres z pomiarem wychylenia płytki.