Poznajemy funkcje sterujące robotem

Czas trwania zajęć: 45 min (1 godzina lekcyjna)

Wprowadzenie (krótki opis zajęć):

Zapoznanie uczniów z możliwościami LOFI Blocks. Pokazanie, w jaki sposób można sterować robotem z poziomu komputera. Testowanie podstawowych bloków kontrolujących działanie sterownika LOFI Brain 2.0. Stosowanie podstawowych pojęć: funkcja, parametr, zmienna.

CELE, POJĘCIA, MATERIAŁY ▼

Cele zajęć

Uczeń powinien:

  • Rozumieć pojęcia: funkcja, parametr, zmienna, sterowanie, programowanie,
  • Uruchamiać LOFI Blocks on-line,
  • Podłączyć za pomocą kabla USB sterownik LOFI Brain 2.0 z komputerem,
  • Sterować silnikami pojazdu z poziomu LOFI Blocks i zmieniać parametry silników (silnik, kierunek, moc),
  • Tworzyć proste skrypty umożliwiające dynamicznie sterowanie pracą silników przy pomocy myszy i klawiatury,
  • Tworzyć nowe zmienne i odczytywać wartości z czujników.

Pojęcia kluczowe

  • Blok / Funkcja
  • Parametr
  • Zmienna
  • Sterowanie
  • Programowanie

Metody pracy:

  • Wykład problemowy
  • Dyskusja dydaktyczna związana z wykładem
  • Pokaz
  • Ćwiczenia przedmiotowe
  • Projekt

Materiały pomocnicze:

  • Laptop/komputer lub tablet/smartfon nauczycielski z zainstalowaną aplikacją LOFI Blocks oraz z zainstalowanym programem Arduino IDE,
  • Projektor i ekran projekcyjny,
  • Komputery uczniowskie z zainstalowaną aplikacją LOFI Blocks oraz z zainstalowanym
    programem Arduino IDE,
  • Dostęp do internetu na wszystkich komputerach,
  • Zestaw CODEBOX LOFI Robot edycja Superkoderzy – pojazd zmontowany w czasie
    lekcji 5 i 6 z modułem BLUETOOTH,

Treści programowe (związek z podstawą programową)

Podstawa programowa kształcenia ogólnego dla szkół podstawowych –
II etap edukacyjny – klasy IV-VI. Zajęcia komputerowe. Treści szczegółowe:

1. Bezpieczne posługiwanie się komputerem i jego oprogramowaniem.
Uczeń:

1.5. posługuje się podstawowym słownictwem informatycznym;

5. Rozwiązywanie problemów i podejmowanie decyzji z wykorzystaniem
komputera.Uczeń:

5.1. za pomocą ciągu poleceń tworzy proste motywy lub steruje
obiektem na ekranie;

5.2. uczestniczy w pracy zespołowej, porozumiewa się z innymi
osobami podczas realizacji wspólnego projektu, podejmuje decyzje
w zakresie swoich zadań i uprawnień.

Przebieg zajęć:

1. Wprowadzenie w tematykę i integracja grupy

Czas na realizację tej części: ok 10 minut.

Rozpoczynamy dyskusję, zadając uczniom pytanie: Czy poznaliście już program LOFI Blocks?
Słuchamy odpowiedzi. Uczniowie mogą już znać program, jeśli nie mieli z nim styczności, informujemy że jest to bardzo podobny język blokowy podobny do Scratch’a, którego poznali na pierwszych czterech lekcjach projektu Superkoderzy.
Zadajemy uczniom pytanie: Co można robić w programie Scratch?

  • Tworzyć własne animacje,
  • Tworzyć własne gry komputerowe,
  • Tworzyć programy edukacyjne,
  • Projektować multimedialne, interaktywne kartki świąteczne itp.

Informujemy uczniów żę możliwości LOFI Blocks są bardzo podobne. Można pracować zarówno na komputerach on-line jak i sprawnie i wygodnie sterować robotami na tabletach i smartfonach.

Możliwości LOFI Blocks to:

  • Obsługa i sterowanie LOFI Robotami
  • Programowanie interaktywnych gier i zabaw
  • Tworzenie graficznych kompozycji i animacji
  • Wymyślanie instrumentów i efektów dźwiękowych
  • Nauka ośmiu języków obcych

Na komputerze nauczyciela uruchamiamy aplikację LOFI Blocks. Wyświetlamy obraz z komputera nauczycielskiego na tablicy lub ekranie rzutnika.

Zadajemy kolejne pytanie: Czy wiecie jak podzielone jest okno programu LOFI Blocks?

Jest to okazja do dyskusji i pokazania przy pomocy projektora oraz omówienia budowy programu i zasady działania (nauczyciel pokazuje, daje wypowiadać się uczniom – opisywać poszczególne elementy i sam dopowiada):

PlanszaLB

  • Po lewej stronie (punkt 1) widzimy zakładki z blokami do programowania podzielonymi na kategorie: ROBOT, KONTROLA, LICZBY, LOGIKA, RYSOWANIE, MOWA, DŹWIĘK, ZDARZENIA, ZMIENNE.
  • Poniżej zakładek znajduje się przycisk START/STOP (punkt 2) uruchamiający i zatrzymujący działanie programu.
  • Zakładka USTAWIENIA (punkt 3) zawierająca funkcje do logowania, zarządzania kontem użytkownika oraz zapisywanie i eksportowanie projektów. Możemy tutaj zachęcić uczniów do zalogowania się, jeśli posiadają oni swoje konto e-mail. Dzięki temu będą mogli zapisywać swoje projekty, dzielić się nimi, mogą do nich wrócić w domu i ulepszać lub zmieniać.
  • Znak zapytania (punkt 4) to link do dokumentacji i przykładów. Znajdziemy tam objaśnienia interfejsu użytkownika, jak połączyć się z robotem, oraz objaśnienia do wszystkich bloczków z każdej kategorii LOFI Blocks.
  • Przycisk ZAPISZ (punkt 5) posiada funkcję zapamiętywania naszych nowych projektów (opcja dostępna po zalogowaniu się w USTAWIENIACH).
  • W samym centrum (punkt 6) znajduje się pole robocze, na którym tworzymy program, umieszczamy tam wszystkie potrzebne nam bloczki wyciągane z odpowiednich kategorii.
  • Menu podręczne (punkt 7) to zbiór dodatkowych funkcji aplikacji LOFI Blocks:

    Połączenie z robotem – ikona z główką robota sygnalizuje, czy aplikacja poprawnie komunikuje się ze sterownikiem Arduino – jeśli tak, wokół ikony pojawia się okrągła obwódka. Kliknięcie na tę ikonę powinno spowodować dwukrotne piknięcie buzzera na sterowniku LOFI Brain.
    Monitor czujników – pozwala w czasie rzeczywistym podejrzeć odczyty ze wszystkich wejść sterownika (nawet jeśli nie są do nich podpięte żadne moduły) oraz z czujnika odległości (KONSOLA – umożliwia wyświetlanie wartości różnego rodzaju zmiennych przy pomocy odpowiedniego bloku z działu KONTROLA).
    Tablica do rysowania – otwiera pole do rysowania powiązane z sekcją bloków RYSUJ (w lewym górnym rogu tablicy do rysowania znajduje się przycisk FULL umożliwiający przełączeniu jej w tryb pełnoekranowy).
    Klawiatura pianina – otwiera panel z wbudowaną klawiaturą, umożliwiającą granie dźwięków z gamy C-dur w zakresie siedmiu oktaw.
    Przycisk trybu pełnoekranowego aplikacji.

  • W samym centrum (punkt 8) znajduje się pętla POWTARZAJ, w której tworzymy program, umieszczamy tam wszystkie potrzebne nam bloczki wyciągane z odpowiednich kategorii. Bloczki do obsługi LOFI Robota muszą być ułożone w jeden skrypt / ciąg i umieszczone w pętli POWTARZAJ.

    powtarzaj2

    UWAGA – Tylko jeden tego typu blok może być w naszym programie. Nie można również tego bloku skasować

    start

    Poinformuj też uczniów że program dopiero zacznie działać po kliknięciu w przycisk START/STOP
    Nauczyciel prosi uczniów o włączenie komputerów i aplikacji LOFI Blocks.

    2. Część zasadnicza

    Czas na realizację tej części: ok 30 minut.

    Nauczyciel wykonuje opisane niżej ćwiczenia. Pokazuje uczniom, co robi i omawia. Po zakończeniu pokazywania każdego ćwiczenia nauczyciel prosi, aby uczniowie w grupach wykonali podobne próby na swoich komputerach, ze swoimi robotami.

    Ćwiczenie 1 – sterujemy kołami pojazdu (10 min)

    Podłączamy sterownik LOFI Brain 2.0 do komputera za pomocą kabla USB A-B (prawidłowym znakiem jest sygnał dźwiękowy). Na pulpicie odnajdujemy ikonę programu LOFI Blocks (jeśli jej nie ma na pulpicie, poszukaj jej w folderze Pobrane/Downloads) i klikamy dwukrotnie na nią, uruchamiając aplikację. Teraz klikamy na główkę robocika w prawym górnym rogu. Wysunie się panel: POŁĄCZENIE Z ROBOTEM. Klikamy na przycisk ODŚWIEŻ. Na liście powinien wyświetlić się port COM (z jego losowo wybranym numerem) Arduino Uno. Wybieramy dany port i po kliknięciu na niego kursorem, panel znika, Brain potwierdza prawidłowe połączenie kolejny raz sygnałem dźwiękowym z buzzera. Dodatkowym potwierdzeniem prawidłowego połączenia jest pojawiająca się obwódka wokół główki robota.

    Uwaga: Przed programowaniem robota należy umieścić na jakiejś podstawce (wykorzystać można do tego pudełeczko na śrubki), aby podczas testów koła mogły kręcić się swobodnie nie dotykając ławki, ale robot nie mógł jeździć i aby nie spadł z ławki!

    Zakładka ROBOT (pomarańczowa) zawiera bloki służące do sterowania robotem. Ich nazwy są dość proste. Każdy blok to jakaś funkcja. Bloki posiadają parametry (np. wybór silnika, wybór kierunku obrotu, wybór mocy silnika).

    Pierwszy blok dotyczy sterowania silnikami.

    Nauczyciel wyciąga ten blok na środek i wpina w pętlę POWTARZAJ. Silnik podłączony do portu M1, będzie się obracał w kierunku “przód” z mocą “100%”.

    SK_silnik_1

    W sumie możemy zmienić 3 parametry tej funkcji:

    • port – gniazdo, do którego podłączony jest silnik: M1, M2,
    • kierunek: przód / tył,
    • Moc – wpisujemy od 0 do 100, bez znaku procent, ale domyślnie pamiętamy, że jest to wartość procentowa, czyli 100 – oznacza pełną moc / prędkość, a 0 – oznacza zatrzymanie silnika. Wartości ujemne nie są przyjmowane.

    Uwaga: Poinformuj uczniów że gdy będziemy programować roboty aby jeździły np. po klasie, moc poniżej “50” może być zbyt mała dla ruszenia pojazdu. Poza tym, wpisywanie w oknie moc, liczb większych niż 100, jest bezcelowe i nie przyspieszy naszego pojazdu.

    Klikając PLAY, omawiając powyższe kwestie, demonstrujemy to uczniom zmieniając różne parametry tej funkcji na komputerze nauczyciela i pokazujemy jak zachowuje się robot podłączony do komputera nauczyciela. Następnie prosimy o przetestowanie tego przez uczniów.

    Zwracamy uwagę, że silnik już po uruchomieniu programu, obraca się z daną prędkością cały czas, do momentu kiedy ten sam silnik otrzyma kolejne polecenie, np. obracania z inną prędkością, czy obracania w innym kierunku. Chcąc zatrzymać silnik, możemy mu wydać polecenie “obracaj silnik z mocą 0”, lub po prostu kliknąć przycisk STOP.

    Ćwiczenie 2 – dynamicznie sterujemy prędkością silnika (ok. 10 min)

    Mówimy uczniom, że możemy też dynamicznie zmieniać parametry tej funkcji. Na przykład jeśli z sekcji zakładek ZDARZENIA (zielone) wezmę blok “Mysz X” (który sczytuje położenie wskaźnika myszy na ekranie) i wstawię ten blok jako parametr do powyższej funkcji w mocy, to w zależności od tego gdzie (lewo-prawo) będę ustawiał wskaźnik myszy w polu TABLICY DO RYSOWANIA, to silnik będzie zmieniał prędkość. (Aby otworzyć pole tablicy do rysowania, należy kliknąć w ikonę PĘDZLA).

    SK_silnik_mysz

    Jeżeli chcemy sterować silnikiem przy pomocy klawiatury, to tworzymy ciągi poleceń (łączymy kilka bloków). Na przykład:

    • pojedynczy warunek: “JEŻELI” – uzupełniony bloczkiem “Przycisk GÓRA” oraz “Obracaj Silnik M1 w przód z mocą 100”
    • pojedynczy warunek: “JEŻELI” – uzupełniony bloczkiem “Przycisk DÓŁ” oraz “Obracaj Silnik M1 w tył z mocą 100”

    SK_silnik_1_ii

    Po wykonaniu powyższego skryptu, strzałka w górę będzie uruchamiała kręcenie silnika w przód, a strzałka w dół będzie uruchamiała kręcenie silnika w tył.

    Do sterowania robotem-pojazdem za pomocą klawiatury powrócimy na kolejnej lekcji.

    Ćwiczenie 3 – odczytujemy dane z czujników (ok. 5 min)

    Gdy konstruujemy robota, nie tylko chcemy nim sterować z poziomu komputera, ale chcemy go zaprogramować tak, aby wykorzystywał swoje czujniki i sam w odpowiedni sposób reagował. Chcemy, aby czujniki sterowały aktuatorami.

    czujnikodleglosci2

    W naszym robocie-pojeździe mamy zamontowany jeden czujnik: odległości. Możemy odczytać jego wartość na komputerze przy pomocy bloku KONSOLA (blok znajduje się w zakładce KONTROLA, w kolorze żółtym). W tym celu wpinamy ten blok do pętli POWTARZAJ i uzupełniamy go blokiem Czujnik odległości.

    sk_czujnik_odleglosci

    Gdy uruchomimy program, oraz wysuniemy Monitor czujników (ikona suwaczków pod główką robota) możemy podglądać odczyty z czujnika odległości na ekranie. Możemy zbliżać rękę do czujnika oraz oddalać rękę, a komputer będzie wyświetlał na żywo wartości czujnika:

    SK_konsola_ii

    Prosimy, aby uczniowie zrobili to samo i w między czasie mówimy uczniom, że w ten sam sposób działa blok: Odczyt INPUT 1-4. W ten sposób, gdy do różnych wejść robota będziemy podłączać różne czujniki, możemy odczytywać ich wartości i wykorzystywać je do pisania programów.

    SK_odczyt

    Zwracamy uwagę, że trzy pierwsze bloki z zakładki ROBOT, różnią się kształtem od bloków Odczyt INPUT 1-4 i Czujnik odległości. Nie jest to przypadek, ponieważ różnią się one sposobem działania.

    SK_bloczki

    Pierwsze trzy bloki (obracaj silnik…, ustaw wyjście…, ustaw buzzer) to bloki funkcyjne. Po ich uruchomieniu wykonane zostanie jakieś działanie np. uruchomienie silnika lub zapalenie diody. Kształt bloków funkcyjnych ma charakterystyczne wcięcia dzięki, którym można je łączyć ze sobą tworząc bardziej zaawansowane funkcje.

    Bloki Odczyt INPUT 1-4 i “Czujnik odległości” mają kształt puzzla, są to tzw. bloki raportujące. Ich uruchomienie nie spowoduje żadnego widocznego działania. Blok raportujący sprawdza jakiś parametr, w tym wypadku mówi nam, jakie są wskazania czujnika podłączonego do robota, a następnie pozwala nam przekazać tę wartość gdzieś dalej np. do któregoś z bloków funkcyjnych jako parametr. Przy ich pomocy możemy odczytać sygnały z czujników (z przycisku, potencjometru, czujniku światła) podłączonych do gniazd INPUT.

    Ćwiczenie 4 – sterujemy wyjściami i głośnikiem (buzzerem) (ok. 5 min)

    Teraz poświęcimy uwagę kolejnemu blokowi: Ustaw wyjście OUTPUT 1-4 na 0-100

    Przy pomocy tego bloku możemy sterować poziomem sygnału na WYJŚCIACH – OUTPUT 1-4, dzięki czemu możemy kontrolować np. jasność diody lub wskazania miernika napięcia. Sprawdzamy działanie tego bloku podłączając do wyjścia OUTPUT1 moduł diody LED.

    Podobnie działa blok Ustaw BUZZER jako WŁĄCZONY/WYŁĄCZONY

    Jest to blok funkcyjny sterujący wbudowanym w płytkę LOFI Brain buzzerem, czyli małym piszczącym głośniczkiem. Posiada on jeden parametr określający stan działania buzzera jako WŁĄCZONY lub WYŁĄCZONY.

    W zależności od ilości pozostałego czasu pozwalamy uczniom przetestować działania poznanych bloków.

    Prosimy o odłączenie robotów od komputerów. Roboty składamy do pudełek. Wyłączamy komputery.

    3. Podsumowanie i ewaluacja

    Czas na realizację tej części: ok 5 minut

    W ramach podsumowania przypominamy uczniom, że każdy blok w LOFI Blocks to jakaś funkcja, czyli polecenie wykonujące jakąś czynność (np. włączające silnik). W przypadku wielu funkcji możemy ustawiać parametry (jak nr silnika, moc, kierunek obrotu, rodzaj wyjścia itp.). W przypadku niektórych parametrów możemy wykorzystać bloki raportujące, np. wówczas gdy odczytujemy wartości z czujników (z czujnika odległości, czujnika natężenia światła czy potencjometru).

    Przypominamy, że ze sterowaniem mamy do czynienia najczęściej w przypadku maszyn, a roboty najczęściej programujemy. Oczywiście robotem możemy też sterować. Sterowanie polega zazwyczaj na wydawaniu pojedynczych poleceń, a maszyna (np. silnik) natychmiast je wykonuje. Programowanie polega na układaniu ciągów poleceń, np. w LOFI Blocks na łączeniu kilku bloków (funkcji) w ciągi poleceń, które możemy nazwać skryptami, czyli programami.

    Uwagi/alternatywy:

    W scenariuszach lekcji w ramach ścieżki Majsterkowicze 2.0 w programie #Superkoderzy wykorzystujemy zestaw CODEBOX edycja Superkoderzy firmy LOFI Robot. Szkoły, które nie posiadają zestawu tej firmy scenariusze lekcji mogą zrealizować pracując na Arduino i zakupionych indywidualnie podzespołach elektronicznych (czujnikach, silnikach, diodach, płytkach prototypowych) lub innych zestawach robotów edukacyjnych.

    Realizując lekcję, pamiętajmy, by zbierać dokumentację projektu. Można robić zdjęcia, filmy, spisywać najciekawsze
    odpowiedzi uczniów.