Mój robot potrafi malować

Instrukcja montażu i programowania robota malującego

Czas na realizację zajęć: 90 minut (2 godziny lekcyjne)

Wprowadzenie (krótki opis zajęć):

Ideą tej lekcji jest pokazanie na praktycznym przykładzie, w jaki sposób z prostych elementów graficznych, powtarzanych wielokrotnie, mogą powstać złożone i rozbudowane rezultaty. Uczniowie najpierw rozbudują pojazd o funkcję uchwytu do mazaka, następnie zaprogramują i rozpoczną testy. Dlatego zalecamy realizowanie tego tematu lekcji w czasie 2 godzin lekcyjnych (90 minut). Na tej lekcji uczniowie przekonają się, że komputer i roboty są świetne w wielokrotnym powtarzaniu zaprogramowanych czynności.

Cele zajęć

Uczeń powinien:

  • Rozbudować robota o uchwyt na mazak
  • Rozumieć pojęcia: ciąg poleceń / skrypt / algorytm
  • Podłączyć LOFI Brain 2.0 z komputerem za pomocą BLUETOOTH
  • Uruchamiać LOFI Blocks
  • Tworzyć i wykorzystywać zmienną (tu: “prędkość”)
  • Tworzyć samodzielnie skrypty w LOFI Blocks, dzięki którym robot
    będzie rysował na arkuszu papieru proste figury oraz wzory, składające
    się z powtarzania prostych elementów

Pojęcia kluczowe:

  • Pętla
  • Rekurencja
  • Fraktal

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,
  • Dodatkowe elementy drewniane ze sklejki, mazaki, arkusze papieru
    oraz śrubki, nakrętki i śrubokręt
  • Arkusze papieru (najlepiej większy brystol lub papier pakowny) i flamastry/markery

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;

4. Opracowywanie za pomocą komputera rysunków, motywów, tekstów,
animacji, prezentacji multimedialnych i danych liczbowych. Uczeń:

4.1. tworzy rysunki i motywy przy użyciu edytora grafiki (posługuje się
kształtami, barwami, przekształcaniem obrazu, fragmentami innych
obrazów);

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ń.

6. Wykorzystywanie komputera oraz programów i gier edukacyjnych do
poszerzania wiedzy z różnych dziedzin. Uczeń:

6.1. korzysta z komputera, jego oprogramowania i zasobów elektronicznych
(lokalnych i w sieci) do wspomagania i wzbogacania realizacji
zagadnień z wybranych przedmiotów;

Przebieg zajęć:

1. Wprowadzenie w tematykę i integracja grupy

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

Dziś ponownie przebudowujemy naszego robota. Dorobimy uchwyt na pisak, a następnie w LOFI Blocks zaprogramujemy rooty malujące. Roboty będą jeździły po arkuszach papieru rozłożonych na podłodze. Wszędzie gdzie robot się ruszy – zostawi po sobie ślad. W ten sposób spróbujemy najpierw narysować proste kształty i figury, a później sprawdzimy, jak w prosty sposób nauczyć robota malowania złożonych i rozbudowanych elementów graficznych.

Prosimy, aby uczniowie podzielili się na wcześniej wyznaczone grupy, rozdajemy zestawy robotów.

2. Część zasadnicza

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

Ćwiczenie 1 – montaż uchwytu na pisak (ok. 30 min)

1. Przygotuj części drewniane do zmontowania uchwytu na pisak.

uchwyt na pisak części drewniane

2. Zmontuj elementy utrzymujące pisak skręcając je przy pomocy śrubek 20 mm, pomiędzy poszczególne elementy włóż podkładki drewniane, dzięki nim pisak będzie trzymał się stabilniej.

3. Jeden z półokrągłych łączników połącz z elementem zawierającym wpusty na górnej krawędzi.

4. Zacisk na pisak połącz z wcześniej zmontowanym elementem.

5. Do dwóch półokrągłych łączników przykręć (mocno) śrubki 20 mm, będą one stanowić bolce na których opiera się uchwyt na pisak.

6. Obydwa półokrągłe łączniki z bolcami przymocuj do frontowej ścianki korpusu pojazdu.

7. Zmontowany wcześniej zacisk na pisak załóż na jeden bolców przymocowanych do frontowej ścianki a następnie na drugi bolec załóż ostatni półokrągły łącznik i połącz go z zaciskiem na pisak przy pomocy śrubki 12 mm. Po zamontowaniu uchwyt na pisak powinien być ruchomy, musi swobodnie opadać na ziemię obracając się na bolcach.

8. Cały zmontowany uchwyt wraz z frontową ścianką połącz z resztą korpusu pojazdu. Do uchwytu włóż pisak i dociśnij go dokręcając śrubki.

Robot malujący jest gotowy!

Ćwiczenie 2 – programujemy robota rysującego (ok. 30 min)

Prosimy, aby uczniowie podzielili się na wcześniej wyznaczone grupy, rozdajemy zestawy robotów. Prosimy o włączenie komputerów i robotów. Następnie uruchomiamy aplikację Lofi Robot Extension, łączymy roboty z komputerem poprzez BLUETOOTH i uruchamiamy LOFI Blocks (najszybciej zrobić to można klikając na link w aplikacji – OPEN LOFI BLOCKS).

Prosimy, aby uczniowie najpierw przygotowali skrypt “awaryjnego zatrzymania robota”: „JEŻELI przycisk X” naciśnięty – obracaj silnik M1 z mocą „0” i obracaj silnik M2 z mocą „0”. Użyjmy do tego fragmentu programu bloczek podwójnego warunku: „JEŻELI … W PRZECIWNYM RAZIE…” z kategorii KONTROLA. Gotowy warunek umieszczamy w (naszej pętli) bloczku POWTARZAJ:

SK_hamulec_iv

Następnie prosimy, aby uczniowie zrobili 4 skrypty – każdy składający się z dwóch bloków “Obracaj silnik” – odpowiadające jeździe robota:

do przodu – M1 w przód i M2 w przód

SK_rysowanie_1

do tyłu – M1 w tył i M2 w tył

SK_rysowanie_2

skręt w lewo – M1 w przód i M2 w tył

SK_rysowanie_3

skręt w prawo – M1 w tył i M1 w przód

SK_rysowanie_4

Początkowo ustawiamy wszędzie moc na np. 80. Teraz aby nasz program zadziałał prawidłowo musimy jego 4 części umieścić w miejscu drugiego warunku W PRZECIWNYM RAZIE i dodatkowo każdą sekwencje ruchu oddzielić kilkusekundowym interwałem czasowym np: 0,5 sekundy (poźniej można eksperymentować ze zmianą czasu), używamy do tego bloczek CZEKAJ z kategorii KONTROLA:

SK_rysowanie_czekaj_iii

Uwaga: Bloczek CZEKAJ, blokada wstrzymująca wykonywanie operacji znajdujących się w pętli POWTARZAJ ma czas określony w milisekundach, jeśli opóźnienie ma trwać np. 5 sekund, wartość określona w milisekundach – to 500.

Tak wygląda gotowy skrypt programu:

SK_rysowanie_czekaj_iv

Kliknięcie ikony PLAY uruchomi program i uaktywni nasz podwójny warunek. Naciśnięcie klawisza „X” zatrzyma robota (pierwszy warunek), a puszczenie klawisza „X” wprowadzi robota w serie zaprogramowanych przez nas ruchów (drugi warunek).

Zadajemy uczniom pytanie: Czy wiecie, w jaki sposób sprytnie / szybko zmieniać prędkość jazdy, aby nie trzeba było zmieniać tego parametru za każdym razem w ośmiu przed chwilą użytych blokach?

Prawidłowa odpowiedź: Powinniśmy zastosować (stworzyć nową) zmienną.

Uwaga: Zwróć uwagę uczniom, aby pod czas tworzenia zmiennych nie używali polskich znaków. Zmienna utworzona z polskimi znakami spowoduje niepoprawne działanie programu.

Z kategorii “ZMIENNE”, tworzymy bloczek o nazwie “predkosc”. Następnie powstały blok oznaczający prędkość wstawiamy w każdym z 8 bloków obracania silnikami, w miejsce wcześniejszej mocy wynoszącej „80”. Przy pomocy polecenia “Ustaw prędkość na …” możemy w każdej chwili przypisać zmiennej “predkosc” dowolną moc silników używając do tego bloczku zmienna liczbowa z kategorii LICZBY. Od tej chwili wszystkie silniki będą obracały się z taką prędkością. Jeśli zechcemy zmiany prędkości – wystarczy kolejny raz ustawić prędkość na inną wartość i od tego momentu wszystkie polecenia dotyczące jazdy robota będą odbywały się z tą mocą.

SK_zmienna_i

Tak wygląda alternatywny gotowy skrypt programu:

SK_alternatywa_iii

Zadajemy uczniom polecenia, aby zaprogramowali robota, do rysowania jakieś figury, dzięki zastosowaniu między innymi następujących bloków:

SK_bloczki_rysowanie

– jak w przykładzie powyżej.

Zachęcamy uczniów do testowania, zmiany parametrów, zmiany skryptów. Możesz zasugerować po pewnym czasie jeśli żaden z uczniów nie wpadnie na takie rozwiązanie, aby utworzyć zmienną „czas” i płynnie zmieniać interwały czasowe między zmianami kierunków ruchu robota. Sprawdźcie jak to wpływa na powstałe rysunki i ich wzory.

Ćwiczenie 3 – pętla i rekurencja (ok. 20 min)

W zależności od czasu, jaki poświęcimy na wcześniejsze zadania i czasu, jaki nam pozostanie, można omówić przy okazji robota malującego: Prezentacja działania PĘTLI – robot wykonuje sekwencję dwóch kroków np. PRZÓD, LEWO – poprzez powtórzenie 4 razy powstaje kwadrat. Prezentacja pojęcia REKURENCJI – jeden parametr zwiększa się (lub zmniejsza) za każdym powtórzeniem pętli. Robot rysuje wzór np. w formie powiększającej się spirali – nawiązanie do FRAKTALI. Można omówić powtarzające się wzory i sekwencje w naturze, np. pajęczyna, paproć, nasiona słonecznika.

Prosimy o posprzątanie zestawów i odłożenie części do skrzynek, wyłączenie komputerów.

3. Podsumowanie i ewaluacja

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

Zadajemy uczniom pytania:

  • Co najbardziej podobało się Wam podczas dzisiejszej lekcji?
  • Z czym mieliście największe problemy?
  • Co można byłby zrobić inaczej?
  • Do czego można wykorzystać umiejętności zdobyte na tej lekcji?

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.