Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Dlaczego warto uczyć się składać klocki Lego

...czyli o tym jak diwpaj z drużyną przegrali turniej ponieważ nie mieli w dzieciństwie klocków Lego.

Jako że interesuję się programowaniem i większość klasy o tym wie, zostałem wyznaczony jako „myśliciel”, zwany niekiedy też algorytm-mejkerem, czy po prostu programistą. No nic, kilka dni przed samym turniejem pobrałem środowisko graficzne, pobawiłem się w nim trochę „na sucho”, poznałem możliwości programu i zapoznałem się z działaniem podstawowych jego funkcji. Do Katowic pojechałem "na pewniaka", mimo że nigdy nie miałem styczności z tym robotem – reszta teamu miała okazję bawić się nim podczas warsztatów organizowanych u nas w szkole.

W autobusie którym jechaliśmy już na miejsce spotkałem się z resztą zespołu, omówiliśmy jeszcze raz swoje zadania – ja byłem tam jedynie od tworzenia odpowiednich algorytmów, reszta teamu miała za zadanie albo składać robota, wspomagać mnie przy zabawie z programem, lub i jedno i drugie.

r   e   k   l   a   m   a

Przyjechaliśmy na miejsce kilka(naście) minut przed czasem, więc kilka osób z drużyny postanowiło wyskoczyć na papierosa, a ja i jeszcze jeden kolega omawialiśmy dokładną strategię – mimo że do czasu zobaczenia przeszkód nie znaliśmy nawet typu zadań.
Po kilku minutach zostaliśmy zaproszeni do sali, gdzie miały odbywać się główne zawody w konkurencji której najbardziej się obawiałem – sumo. Kto zna ten pewnie wie o co chodzi, dla tych którzy nie wiedzą – chodzi o walki odpowiednio przystosowanych robotów na arenie w kształcie koła umieszczonej na delikatnym podwyższeniu. Sposobem na zniszczenie przeciwnika jest zepchnięcie go poza arenę, lub uderzenie w niego taki sposób, aby obrócił się on kołami do góry. Walki odbywały się w systemie dwurundowym, w przypadku remisu miała odbywać się runda trzecia, rozstrzygająca.

Na stworzenie kompletnego, działającego zestawu drużyny dostały 1,5 godziny + czas trwania rozgrywek drużyn walczących przed nami – w tym wypadku mieliśmy ogromne szczęście, ponieważ byliśmy czwarci w kolejce. Ustaliłem mniej-więcej ile czasu ma odbywać się każda z czynności – pracowaliśmy na zestawie Lego Mindstorm który naprawdę nie był skomplikowany, dlatego uznałem że skonstruowanie robota właśnie z tych klocków zajmie 30 minut, które ewentualnie miałem przedłużyć do 45 minut. Jak wyszło – nawet nie pytajcie. Na całą konstrukcję (która i tak okazała się wadliwa, ale o tym później) czekałem ponad 80 minut – zatem zostało nam jedynie 10 minut na przetestowanie algorytmu pisanego „na sucho”, w dodatku na bardzo prowizorycznej arenie zbudowanej z kilkunastu białych kartek A4.
Pierwsze zaprogramowanie i odpalenie robota – 5 sekund czeka, po czym na ekranie pokazuje się niezbyt przyjemny komunikat „soft terror”. Przeleciałem jeszcze raz algorytm – nie było w nim [prawie] żadnego błędu. Wgraliśmy dla pewności program jeszcze kilka razy, aż w końcu przyszedł mi do głowy pomysł – program nie wykonuje się bo… czujnik koloru jest za nisko i nie jest w stanie on wykryć żadnego koloru, dlatego przesyłał on błędną wartość do instrukcji warunkowej. Zamocowaliśmy (chociaż nie, zamocowaliśmy to zbyt mocne słowo, po prostu „umiejscowiliśmy”) czujnik tak aby stał w miarę stabilnie. Gdy podchodziliśmy z robotem do areny mieliśmy sprawny, prawidłowo działający algorytm, jednak tuż przed odpaleniem robotów czujnik kolorów wyleciał z swojego miejsca – włożyłem go, jak później się okazało nieprawidłowo.

Walczyliśmy z drużyną z Gliwic, gdy odpaliliśmy nasze roboty poczekały one swoje regulaminowe pięć sekund, po czym ruszyły. Tfu, ruszył – wystartował jedynie robot drużyny przeciwnej, ponieważ jak się okazało zapomniałem zaimplementować czynności która miała się wykonać gdy robot zbliży się do czarnej linii, wyznaczającej granice ringu, a z powodu złego umiejscowienia czujnika koloru wykrywał on kolor opon naszego robota, co sprawiało że robot stał. Ot, po prostu stał. Robot z Gliwic ewidentnie zdziwił się tą sytuacją i po podjechaniu do naszego robota też postanowił stanąć – złośliwość rzeczy martwych jak to mówią. Dostaliśmy dodatkowe kilka minut, podczas których zmieniłem całkowicie algorytm, tym razem na bardziej wadliwy i zaraz po stanięciu w szranki z przeciwnikami robot wyjechał sobie z ringu i tym samym skazać nas na porażkę. Linefollowera robiliśmy już dla zabawy, jednak wbrew pozorom był on lepiej stworzony niż robot walczący – wtedy podeszliśmy do tematu z pewnym dystansem, składanie robota zajęło mniej czasu, a ja miałem więcej czasu na testowanie różnych algorytmów.

Dlatego przestrzegam każdego, kto chciałby zacząć bawić się w cybernetykę – pamiętaj, naucz się składać klocki Lego.

PS. Dla ciekawskich - mój awatar to zdjęcie właśnie z tego turnieju :> 

sprzęt programowanie hobby

Komentarze