Powrót do scenariuszy
Szkoła podstawowa
Klasa: 7-8
Szkoła ponadpodstawowa
Klasa: 1-4
test
Autor:

Mateusz Błaszkiewicz

Korek drogowy

fizyka • informatyka • programowanie
Czas:
90 min.
Roboty:
x3+
Akcesoria:
AccessoryAccessory
Interfejsy:
Scratch 3.0 (Photon Magic Bridge)
alt
Powrót do scenariuszy
Scenario Image

Odniesienie do podstawy programowej

Informatyka Liceum/Technikum PP I.1 II.1 II.2
Fizyka Liceum/Technikum PP I.10

Cele zajęć

Uczeń/uczennica:
  • wykorzystuje robota do przeprowadzania prostych pomiarów
  • posługuje się odpowiednimi operatorami logicznymi i wykorzystuje zmienne do dynamicznych zmian w programie
  • analizuje problem, przedstawia koncepcje jego rozwiązania i wdraża je
  • testuje programy

Metody pracy

  • burza mózgów

Formy pracy

  • indywidualna
  • grupowa

Materiały

  • komputer

Załączniki

Załącznik 1: Program z przykładowym rozwiązaniem
Pobierz

Przebieg zajęć

Wstęp

Scenariusz porusza głównie podstawowe zagadnienia i może być realizowany również w klasach VII-VIII szkoły podstawowej. Głównym celem zajęć jest zachęcenie uczestnika do samodzielnego myślenia, analizowania problemu i tworzenia programu.

Prowadzący przedstawia założenia programu:

  • roboty będą się poruszały w linii prostej za sobą i unikały przeszkód oraz siebie wzajemnie,
  • wszystkie wartości w programie muszą być zastąpione zmiennymi, aby można było dokonywać dynamicznego ustawiania parametrów, takich jak prędkość, odległości itd.
  • łączną odległość oraz odległości pokonane w przód i w tył przez każdego z robotów zostaną zapisane w programie przy wykorzystaniu list.

Zadanie 1. Poruszanie się robotów

  • Rozpoczynamy od analizy pierwszego z problemów - zachowania dystansu między przeszkodami. Wspólnie zastanawiamy się, jakie zdarzenia mogą mieć miejsce podczas działania zaproponowanego programu. Wysłuchujemy każdego pomysłu i rozważamy wspólnie jego plusy i minusy.
  • Metoda zastosowana na potrzeby scenariusza przewiduje zachowanie minimalnej odległości, której przekroczenie powoduje cofnięcie się robota oraz maksymalnej odległości między robotem a przeszkodą. Możemy na początek sprawdzić, jakie wartości zwraca czujnik odległości. Jako, że działa on na zasadzie pomiaru czasu między wysłaniem sygnału, a jego powrotem po odbiciu od przeszkody, mogą wchodzić w grę lekkie wahania między pomiarami. Aby wyelminować ewentualną kolizje pomiędzy robotami, wprowadzony został przedział odległości, w którym to robot stoi nieruchomo. Wszystkie z pól zostały zastąpione zmiennymi, by w łatwy sposób wprowadzać zmiany w programie i testować jakie odległości lub prędkość robota pozwalają na najbardziej płynne działanie.

Przykładowe rozwiązanie:

 

Zadanie 2. Pomiar przebytej odległości

  • Kolejne zadanie to dołączenie do stworzonego już programu, umożliwiającego "synchroniczne" unikanie przeszkód, skryptu pomiaru przebytej odległości przez każdego robota. Odległości te będą inne w zależności od dystansów początkowych, częstotliwości pomiarów itd. Analogicznie jak w zadaniu 1 prowadzimy burzę mózgów, która ma na celu wyłonienie kilku koncepcji rozwiązania zadania. Możemy zapisywać każdą wartość w zmiennych, lecz znacznie lepszym rozwiązaniem będzie wprowadzenie list.
  • Przykładowe rozwiązanie:

Do obliczenia przebytej odległości wykorzystujemy bloczek wyjściowy "Przejechany dystans", który może być resetowany w dowolnym momencie. Wartość dystansu całkowitego jest przypisywana do odpowiedniej listy i resetowana w każdym z bloków instrukcji warunkowej. Odległość całkowita to suma odległości przebytej w przód i tył.

Testujemy

Testowanie to jeden z najważniejszych elementów. Powinno przebiegać na każdym etapie po wprowadzeniiu do skryptu zmian, tak, aby na bieżąco wykluczać pojawiające się błędy i problemy. Warto najpierw przetestować program z tylko jednym robotem i sprawdzić czy działa on poprawnie.

Podsumowanie

Jak widać, roboty mogą oddziaływać między sobą i reagować na siebie wzajemnie - wystarczy tylko odpowiednio przemyśleć skrypt i interpretować błędy oraz zdarzenia, które mają miejsce w trakcie jego testowania.

Ciekawostki/Pytania otwierające

  • Dysponując większą liczbą robotów, można stworzyć znacznie "dłuższy" korek drogowy :)
  • A może uczestnicy zajęć mają pomysł jak wykorzystać zebrane dane o przebytej odległości?
  • Może wprowadźmy "trąbienie" na siebie robotów, jak to często bywa w klasycznych korkach i prowadźmy obserwację co się dzieje. (Program wstrzymuje się na chwilę do momentu, aż robot skończy wydawać dźwięk, dlatego może dochodzić do kolizji, co będzie ciekawą obserwacją ).

Powiązane zasoby