Projekt zespołowy robota wykonującego zadanie
Zespół rozbija zadanie transportowe na etapy, dzieli role, buduje i programuje robota oraz przechodzi trasę testową, zapisując wyniki kolejnych prób.
Czego się nauczysz
Rozbicie zadania na etapy i podział ról
Umiesz zamienić jedno duże zadanie w listę krótkich etapów i wiesz, kto w zespole za który etap odpowiada.
Testowanie i poprawianie programu robota
Potrafisz zapisać wynik próby, zmienić jedną rzecz w programie lub konstrukcji i sprawdzić, czy zmiana pomogła.
Zbudowanie robota, który przewiezie ładunek po wyznaczonej trasie, rzadko rozbija się o brak pomysłu. Rozbija się o kolejność pracy: zespoły zaczynają od klocków, programują całą trasę naraz i po godzinie nie wiedzą, dlaczego robot skręca. Z tego materiału dowiesz się, jak rozłożyć takie zadanie na etapy, jak podzielić role i jak testować tak, żeby każda próba coś Ci mówiła.
Najpierw etapy, potem klocki
Zadania „przewieź ładunek ze startu na metę” nie da się przetestować. Jest za duże. Jeśli robot nie dojedzie, przyczyn może być pięć naraz i żadnej z nich nie sprawdzisz osobno. Dlatego pierwszą czynnością w projekcie nie jest budowanie, tylko rozbicie zadania na etapy.
Etap ma być na tyle mały, żeby dało się go uruchomić samodzielnie i zobaczyć wynik w kilka sekund. Dobre etapy dla zadania transportowego wyglądają tak: dojedź do ładunku, zgarnij albo chwyć ładunek, przejedź prosty odcinek, wykonaj skręt, dojedź do mety, zostaw ładunek. Zły etap brzmi „przejedź trasę”, bo mieści w sobie cztery poprzednie i nie mówi, co dokładnie ma się wydarzyć.
Dobrym testem jakości etapu jest pytanie: czy potrafię powiedzieć jednym zdaniem, po czym poznam, że ten etap się udał. Jeśli tak, etap jest wystarczająco mały. „Przejedź 40 centymetrów do przodu i zatrzymaj się przed linią” przechodzi ten test. „Zrób część z ładunkiem” nie przechodzi.
Kolejność ma znaczenie także dlatego, że lista etapów decyduje o tym, co w ogóle budujecie. Zespół, który zaczyna od efektownej konstrukcji, często buduje chwytak, choć do zadania wystarczy płaska ścianka zgarniająca ładunek przed robotem. Etapy najpierw, klocki potem.
Weź kartkę i rozpisz swoje zadanie na etapy, każdy w jednej linii, w kolejności wykonania. Potem przy każdym etapie dopisz jedno zdanie, po czym poznasz, że się udał. Etapy, przy których nie umiesz napisać takiego zdania, rozbij na dwa mniejsze.
Trzy role i po co je zapisywać
W zespole trzyosobowym prawie zawsze zdarza się to samo: jedna osoba przejmuje laptop, a dwie patrzą. Efekt jest podwójnie zły. Ci, którzy patrzą, niczego się nie uczą, a ten przy klawiaturze nie ma kto sprawdzać i zapisywać wyników, więc sam zapomina, co zmienił przed poprzednią próbą.
Trzy role rozwiązują ten problem. Konstruktor odpowiada za model: koła, chwytak, rozłożenie ciężaru. Programista układa i zmienia bloki. Tester uruchamia próby i zapisuje wyniki, i to jest rola najważniejsza, a nie zapasowa, bo bez zapisu praca całego zespołu nie zostawia po sobie żadnej wiedzy.
Role można zamieniać w trakcie i warto to robić, żeby każdy dotknął każdej części zadania. Zamianę trzeba jednak zapisać, bo inaczej po pół godzinie nikt nie odtworzy, kto co sprawdzał. Przy każdej roli warto też zanotować, za który etap ta osoba odpowiada. Wtedy zdanie „to nie działa” zamienia się w konkretne „etap trzeci nie działa i zajmuje się nim Kuba”.
Zrób tabelę z trzema wierszami: konstruktor, programista, tester. W pierwszej kolumnie wpisz rolę, w drugiej imię, w trzeciej numery etapów, za które ta osoba odpowiada. Po pierwszej próbie zamień osobę przy klawiaturze, dodaj czwartą kolumnę i wpisz tam tę zmianę razem z godziną.
Obroty zamiast sekund
Najczęstszy sposób sterowania ruchem to ustawienie czasu jazdy: jedź przez dwie sekundy. Działa to za pierwszym razem i przestaje działać po kilkunastu minutach pracy. Powód jest prosty: prędkość silnika zależy od poziomu naładowania baterii. Ten sam program przy pełnej baterii przejedzie dalej niż przy baterii wyczerpanej w połowie, więc robot, który rano trafiał w linię, po południu jej nie dojeżdża.
Powtarzalne sterowanie opiera się na obrotach silnika, a nie na czasie. Jeden obrót to zawsze ten sam kąt, więc przy tych samych kołach zawsze ta sama droga, niezależnie od baterii. Żeby z tego skorzystać, potrzebujesz jednej liczby: ile centymetrów przejeżdża Twój robot na jeden obrót silnika. Bez niej ustawiasz obroty na oko i wracasz do zgadywania, tylko w innej jednostce.
Pomiar jest krótki. Ustaw robota tak, żeby przód wypadał dokładnie przy krawędzi kartki albo przy linii. Uruchom program z jednym obrotem silnika. Zmierz miarką drogę, którą pokonał. Zapisz tę liczbę, bo od tej chwili każdy odcinek trasy przeliczasz na obroty: dzielisz długość odcinka przez drogę na jeden obrót.
Jest jeszcze jedna korzyść. Gdy znasz tę liczbę, potrafisz sprawdzić, czy problem leży w programie, czy w mechanice. Jeśli robot ma przejechać 40 centymetrów, program zadaje właściwą liczbę obrotów, a robot jedzie 33 centymetry, to nie program jest winny, tylko poślizg kół albo zbyt duże obciążenie.
Zmierz drogę na jeden obrót swojego robota i zapisz wynik. Potem policz, ile obrotów potrzeba na odcinek 60 centymetrów, ustaw tę wartość w programie i sprawdź miarką, ile faktycznie przejechał. Różnicę zapisz, bo to Twój błąd pomiaru, który będziesz uwzględniać przy kolejnych odcinkach.
Jedna zmiana, jedna próba, jeden zapis
Kiedy robot nie robi tego, co ma, naturalnym odruchem jest poprawienie kilku rzeczy naraz: podkręcenie prędkości, przesunięcie kół i zmiana dwóch parametrów w programie, a potem uruchomienie. Jeśli po takiej serii przejazd się uda, zespół nie ma żadnej wiedzy. Nie wie, która zmiana pomogła, więc nie potrafi jej powtórzyć ani zastosować przy następnym problemie. Udany przejazd, którego nie umiesz powtórzyć, jest wynikiem przypadkowym.
Zasada brzmi: przed każdą próbą zmieniasz dokładnie jedną rzecz i zapisujesz wynik, zanim zmienisz kolejną. Zapis ma trzy kolumny: numer próby, co zmieniono, wynik. Wynik opisujesz konkretnie, na przykład „zatrzymał się 8 centymetrów przed linią” zamiast „nie wyszło”, bo liczba pozwala porównać próby między sobą.
Ta tabela jest właściwym wynikiem pracy, nie ozdobą do karty pracy. Dzięki niej po pięciu próbach widzisz, która zmiana dała największą poprawę, i potrafisz wrócić do ustawień z próby trzeciej, jeśli czwarta i piąta okazały się gorsze. Bez tabeli powrót do wcześniejszego ustawienia jest niemożliwy.
Zdarza się, że zmiana jest z natury podwójna, na przykład przebudowa chwytaka zmienia też rozkład ciężaru. Zapisz to wtedy uczciwie jako jedną próbę z dwiema zmianami i licz się z tym, że jej wynik powie Ci mniej.
Przygotuj tabelę z kolumnami: numer próby, co zmieniłem, wynik z liczbą. Wykonaj trzy próby, za każdym razem zmieniając tylko jedną rzecz. Na koniec zakreśl wiersz z największą poprawą i napisz jednym zdaniem, dlaczego akurat ta zmiana zadziałała.
Gdy robot jedzie krzywo, najpierw sprawdź konstrukcję
Robot dostaje identyczne polecenie na oba silniki, a mimo to skręca. Odruch podpowiada poprawianie programu: zmniejszyć moc jednego silnika, dołożyć korektę kąta. To zwykle strata czasu, bo przyczyna leży w mechanice, a program próbuje ją tylko zamaskować.
Trzy najczęstsze przyczyny mechaniczne to luźno osadzone koło, nierówne rozłożenie ciężaru i tarcie po jednej stronie, na przykład ocierająca się oś albo przewód. Każdą z nich sprawdzisz w kilkanaście sekund: unieś robota i zakręć ręcznie każdym kołem osobno, sprawdzając, czy oba kręcą się równie swobodnie, a potem popchnij robota po stole i zobacz, czy toczy się prosto bez włączonych silników.
Ogólna reguła brzmi: jeśli oba silniki dostają to samo, a robot zachowuje się niesymetrycznie, przyczyna jest fizyczna. Dopiero gdy mechanika jest w porządku, a robot nadal znosi, ma sens korekta mocy w programie. Warto też pamiętać, że poprawa konstrukcji bywa szybszą drogą niż poprawa programu: obniżenie środka ciężkości albo szersze rozstawienie kół potrafi rozwiązać problem, z którym program walczyłby przez pięć prób.
Jeśli nie zdążycie z całą trasą, to nie jest porażka projektu. Dwa etapy działające powtarzalnie i trzy opisane próby są lepszym wynikiem niż jeden przypadkowy przejazd, którego nikt nie umie powtórzyć. Powtarzalność jest tu celem, nie efektowność.
Unieś swojego robota i zakręć ręcznie każdym kołem. Zapisz, czy oba kręcą się tak samo swobodnie. Potem popchnij go po stole na dystansie metra z wyłączonymi silnikami i zmierz, o ile centymetrów zjechał w bok. Jeśli zjechał więcej niż dwa centymetry, popraw konstrukcję. Dopiero jeśli zjazd wynosi mniej niż dwa centymetry, a robot z włączonymi silnikami nadal skręca, zabieraj się za korektę w programie.
Słowniczek
- etap
- Najmniejszy fragment zadania, który da się uruchomić i ocenić osobno, na przykład przejazd 40 centymetrów do przodu.
- obrót silnika
- Pełny obrót wału silnika, czyli jednostka ruchu, która zawsze daje tę samą drogę niezależnie od poziomu baterii.
- droga na jeden obrót
- Liczba centymetrów, które robot pokonuje przy jednym obrocie silnika, zmierzona raz i używana do przeliczania odcinków trasy.
- próba
- Jedno uruchomienie robota po wprowadzeniu dokładnie jednej zmiany, zapisane w tabeli razem z wynikiem.
- powtarzalność
- Cecha przejazdu, który udaje się za każdym razem, a nie raz na kilka uruchomień.
- środek ciężkości
- Punkt, wokół którego rozłożony jest ciężar robota; im niżej się znajduje, tym stabilniej robot jedzie i skręca.
Częste pomyłki
- Programowanie całej trasy naraz. Gdy robot się gubi, nie wiadomo, w którym miejscu, bo nic nie było testowane osobno. Uruchom i dopracuj pierwszy etap, dopiero potem dokładaj kolejny.
- Sterowanie ruchem na czas zamiast na obroty. Wynik zmienia się wraz z rozładowywaniem baterii, więc program przestaje działać w trakcie lekcji. Zmierz drogę na jeden obrót i licz odcinki.
- Zmienianie konstrukcji i programu przed tą samą próbą. Nawet udany przejazd nic wtedy nie mówi, bo nie wiadomo, co go spowodowało. Cofnij jedną ze zmian i powtórz próbę.
- Poprawianie programu, gdy robot jedzie krzywo mimo identycznego sterowania obu silników. Przyczyna jest wtedy mechaniczna i program tylko ją przykryje.
Sprawdź, czy rozumiesz
- Twój robot przejeżdżał rano dokładnie 40 centymetrów, a po południu ten sam program daje 34 centymetry. Co się zmieniło i jaka zmiana w sposobie sterowania usuwa ten problem na stałe?
- Zespół zmienił przed próbą chwytak i dwa parametry programu naraz, a przejazd wreszcie się udał. Dlaczego ta próba jest dla zespołu prawie bezwartościowa i co trzeba zrobić, żeby odzyskać z niej wiedzę?
- Który zespół ma lepszy wynik: ten z jednym udanym przejazdem całej trasy, którego nie potrafi powtórzyć, czy ten z dwoma etapami działającymi za każdym razem i tabelą trzech prób? Uzasadnij.
Wyzwanie dla chętnych
Dołóż do trasy drugi skręt w przeciwną stronę i spraw, żeby robot przejechał całość trzy razy z rzędu bez żadnej poprawki między przejazdami, kończąc za każdym razem nie dalej niż 3 centymetry od linii mety. Wszystkie odcinki policz z drogi na jeden obrót, nie na oko.
Jak sprawdzisz, że Ci wyszło: Po każdym z trzech przejazdów zmierz miarką odległość przodu robota od linii mety i zapisz ją. Jeśli wszystkie trzy liczby mieszczą się w 3 centymetrach i między przejazdami niczego nie zmieniałeś, wyzwanie jest zaliczone. Jeśli któryś przejazd wypadł gorzej, masz tabelę i wiesz, od czego zacząć.
Zadanie do domu na trzy poziomy
Wybierz jeden poziom. Możesz zacząć od łatwego i wrócić po trudniejszy.
Rozpisz na kartce, jak przenieść kubek z jednego końca stołu na drugi, w co najmniej czterech etapach, każdy w jednej linii. Przy każdym etapie dopisz jedno zdanie, po czym poznasz, że się udał.
Wykonaj zadanie z poziomu łatwego, a potem poproś kogoś w domu, żeby wykonał Twoje etapy dosłownie, bez domyślania się. Zapisz w tabeli trzy próby: numer, co zmieniłeś w poleceniach, wynik.
Wykonaj zadanie z poziomu średniego i dodaj do etapów liczby: o ile centymetrów przesunąć kubek w każdym kroku, tak jak w programie liczyłeś obroty. Sprawdź miarką, czy kubek trafił w wyznaczone miejsce z dokładnością do 2 centymetrów, i napisz, które polecenie okazało się najmniej jednoznaczne i jak je poprawiłeś.
Samoocena
Zaznacz, co już potrafisz. To tylko dla Ciebie, nikt tego nie ocenia. Zaznaczenia zostają w tej przeglądarce.
Zadania do zrobienia
Wasz zespół ma przewieźć ładunek trasą wyklejoną na podłodze. Zanim weźmiecie klocki, rozpiszcie etapy i role, bo to one zdecydują, czy zdążycie.
-
Zadanie 1
Rozpiszcie zadanie na etapy. Każdy etap w jednej linii, w kolejności wykonania.
Wskazówka: Etap ma być tak mały, żeby dało się go przetestować osobno, na przykład „przejedź 40 centymetrów do przodu”.
-
Zadanie 2
Wpiszcie do tabeli role: kto buduje, kto programuje, kto testuje i zapisuje wyniki. Przy każdej roli dopiszcie, za który etap ta osoba odpowiada.
Wskazówka: Role mogą się zmienić w trakcie, ale wtedy zapiszcie zmianę. Bez zapisu nikt nie wie, kto co sprawdzał.
-
Zadanie 3
Zmierzcie, ile centymetrów przejeżdża Wasz robot na jeden obrót silnika, i zapiszcie wynik.
Wskazówka: Ustawcie przód robota równo z linią, uruchomcie program z jednym obrotem silnika i zmierzcie miarką przejechaną drogę. Ta liczba pozwoli Wam liczyć odcinki zamiast zgadywać.
-
Zadanie 4
Przeprowadźcie co najmniej trzy próby przejazdu. Do tabeli wpiszcie numer próby, co zmieniliście przed nią i wynik.
Wskazówka: Jedna zmiana przed jedną próbą. Jeśli zmieniliście dwie rzeczy, zapiszcie to uczciwie i liczcie się z tym, że nie będziecie wiedzieć, co pomogło.
-
Zadanie 5
Napiszcie dwa zdania o tym, co zrobilibyście inaczej, gdybyście zaczynali projekt od nowa.
Wskazówka: Napiszcie o kolejności pracy i o podziale zadań, nie o tym, że zabrakło czasu.
Materiał do powtórki
Zadanie dla zespołu
- Zabierz ładunek ze startu
- Przejedź trasę bez dotykania robota
- Zostaw ładunek w strefie mety
Trzy role w zespole
- Konstruktor buduje i poprawia model
- Programista układa i zmienia bloki
- Tester uruchamia próby i zapisuje wyniki
Najpierw etapy, potem klocki
- Duże zadanie rozbij na krótkie etapy
- Każdy etap musi dać się przetestować osobno
- Lista etapów powstaje przed budowaniem
Obroty zamiast sekund
- Ruch na czas zależy od baterii
- Ruch na obroty jest powtarzalny
- Zmierz drogę na jeden obrót
Jedna zmiana, jedna próba
- Zmieniaj jedną rzecz przed każdą próbą
- Zapisz wynik zanim zmienisz kolejną
- Dwie zmiany naraz zacierają przyczynę
Gdy robot jedzie krzywo
- Sprawdź najpierw konstrukcję, nie program
- Luźne koło i tarcie skręcają robota
- Dopiero potem koryguj moc silników
Co jest ocenione
- Działające etapy, także bez pełnej trasy
- Trzy zapisane próby z opisem zmian
- Umiejętność powtórzenia przejazdu
Sprawdź się w quizie
Pytania z wyjaśnieniami, na poziomie podstawowym i rozszerzonym. Wynik nigdzie się nie zapisuje, możesz robić go dowolnie wiele razy.