Ćwiczenie programistyczno-robotyczne dla dzieci z wykorzystaniem robotów opartych o Arduino.
-
Cele:
-
Pokazanie dzieciom jak wygląda prawdziwe programowanie. Czyli na możliwie jak najniższym poziomie, gdzie polecenia wpisuje się już ręcznie w IDE, a nie "wyklikuje" jak np. w Scratchu.
-
Pokazanie dzieciom, że działanie robotów i zabawek typu "Furby" to nie jest magia - tylko działanie określonych sensorów i algorytmów.
-
Umożliwienie dzieciom dalszej zabawy na własną (rodziców...) rękę: zestaw do złożenia robota najtańszy jaki się da, korzystanie z domyślnych, dobrze znanych narzędzi (Arduino IDE) itp.
-
Zajaranie dzieci na hakowanie :)
-
-
Forma:
-
Czas trwania: 30-40 minut
-
Dzieci pomagają pisać mentorom program na wspólnym rzutniku
-
Dzieci wspólnie z mentorami dają robotowi coraz bardziej skomplikowane zadania do zrobienia
-
Na koniec można zorganizować "pojedynek" kilku robotów na wspólnym ringu
-
Wszystkie roboty mają to samo zadanie (czyli teamy mogą robić to samo, niezależnie czy będą 3 teamy czy 1)
-
-
Ściągnij i zainstaluj Arduino IDE w najnowszej wersji:
-
Zmień ustawienia edytora:
- Arduino -> Preferences -> Język edytora: "Język Polski (polski)"
- Arduino -> Preferences -> Rozmiar czcionki edytora: "16"
- Arduino -> Preferences -> Powiększenie interfejsu: "Automatycznie"
-
Dołącz wymagane biblioteki:
-
Arduino -> Szkic -> Dołącz bibliotekę -> Dodaj bibliotekę .ZIP
Tutaj dodajemy wszystkie 3 biblioteki z katalogu libraries. Powinny się pojawić w menu Arduino -> Szkic -> Dołącz bibliotekę -> Biblioteki Contributed (Babelduino, NewPing, arduino_L298N).
-
-
Mentor pokazuje robota i trochę o nim opowiada: z jakich elementów się składa i jak działają / co robią poszczególne części i sensory:
- Kółka, silniczki i sterownik silników, który zajmuje się kontrolą prędkości i kierunku kręcenia się silników / kółek
- Sensory: wykrywacz linii w podwoziu, i "oczy", czyli czujnik odległości
- "Mózg", czyli Arduino
-
Mentor pracuje razem z dziećmi na głównym pliku projektu (el-kids-arduino-workshops.ino).
Są tam ćwiczenia, w których sukcesywnie pojawiają się coraz trudniejsze zadania do zaprogramowania ("jedź robotem", "jedź i wykrywaj linię", "jedź, wykrywaj linię i zatrzymaj się przed ścianą" itd.)
Przy każdym kolejnym ćwiczeniu pojawiają się też dodatkowe polecenia i struktury (
na_linii()
,czekaj()
,jeżeli
itd.)-
Program piszemy po polsku. Polskie wersje poleceń można podejrzeć w repozytorium Babelduino: pl.yml
-
Gotowe rozwiązania ćwiczeń są do podejrzenia w pliku solutions.h.
-
-
Mentor tłumaczy najpierw ogólnie główne elementy programu (co to jest procedura, jak robot wykonuje swój kod, do czego jest specjalna procedura
powtarzaj
itp.) -
Mentor przy każdym ćwiczeniu tłumaczy jakie polecenia są teraz dostępne i pyta, jak je można wykorzystać, by pomóc robotowi wykonać zadanie.
-
Przy każdym kolejnym ćwiczeniu, mentor implementuje razem z dziećmi kolejną procedurę (
do_mety()
,taniec()
itd.) - tam, gdzie jest zdefiniowana.Następnie wywołuje tę procedurę wewnątrz głównej pętli (np.
procedura powtarzaj() { do_mety(); }
), wgrywa program do robota i uruchamia go. -
W głównej pętli używamy jak najwyższego poziomu (
na_linii()
), ale możemy na koniec pokazać szczegóły implementacyjne (zczytaj_detektor_linii() == WLACZONY
)
- Czasami wgrywanie programu na Arduino działa tylko na określonym porcie USB.