Poznajemy funkcje sterujące robotem

Omówienie zasady działania bloków sterujących 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 nauczycielski z zainstalowaną przeglądarką
    internetową Chrome i wtyczką LOFI Robot Extension oraz z zainstalowanym
    programem Arduino IDE,
  • Projektor i ekran projekcyjny,
  • Komputery uczniowskie z zainstalowanymi przeglądarkami
    internetowymi Chrome i wtyczką LOFI Robot Extension 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,
  • Jeśli LOFI Blocks się nie uruchamia należy sprawdzić czy
    na komputerach jest zainstalowana aktualna wersja FLASH lub zezwolić przeglądarce
    na używanie FLASH na tej stronie.

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 przeglądarkę internetową i aplikację LOFI Blocks https://lofiblocks.com/koduj/ . Wyświetlamy obraz z komputera nauczycielskiego na tablicy.

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):

interface

  • 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.
  • W samym centum (punkt 5) znajduje się pole robocze na którym tworzymy program, umieszczamy tam wszystkie potrzebne nam bloczki wyciągane z odpowiednich kategorii.
  • Menu podręczne (punkt 6) 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śłi 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 i konsola – 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). Wbudowany gamepad – umożliwia sterowanie robotem. Jest on powiązany z sekcją bloków ZDARZENIA. 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 umożliwiający przełączeniu jej w tryb pełnoekranowy). Wbudowana klawiatura pianina – otwiera panel z wbudowaną klawiaturą, umożliwiającą granie dźwięków z gamy C-dur w zakresie siedmiu oktaw.

W samym centum (punkt 5) znajduje się pole robocze na którym 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.

POWTARZAJ_II

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

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 przeglądarek internetowych Chrome.

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 (prawidłowym znakiem jest potwierdzenie dźwiękowe). Na pulpicie odnajdujemy ikonę wtyczki LOFI Robot Extension (jeśli jej nie ma na pulpicie, poszukaj jej w przeglądarce Chrome, zakładce Aplikacje) i klikamy na nią uruchamiając wtyczkę. Odświeżamy Serial Port klikając w przycisk REFRESH SERIAL poniżej okienka z portami. W okienku Serial Port powinien wyświetlić się port COM (z jego numerkiem) Arduino Uno. Zatwierdzamy połączenie klikając w przycisk CONNECT , który prawidłowe połączenie kolejny raz potwierdza dźwiękiem oraz zmienia ikonę CONNECT na DISCONNECT. Ostatnią czynnością jest klikniecie w przycisk OPEN LOFI BLOCKS. Otworzy się przeglądarka Chrome i okno programu LOFI Blocks. Jeśli w prawym górnym rogu główka robota posiada obwódkę, mamy pewność że nasz robot jest prawidłowo połączony z komputerem (dla pewności można kliknąć na główkę robota i potwierdzi ona dźwiękiem prawidłowe połączenie).

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.