Stulecie Robotów w Krakowie - Reportaż, część 1

W Galerii Krakowskiej odbywa się obecnie festiwal o nazwie "Stulecie Robotów". Trwać będzie on (według moich informacji) do końca przyszłego tygodnia, tj. do niedzieli 14.06.2009. Galeria pełna jest gablot z małymi i dużymi robotami, jednak najciekawszym miejscem jest czynny codziennie w godzinach 09:00 - 19:00 (czasem 10:00 - 20:00) punkt, w którym przygotowano zestawy Lego Mindstorms, Fischertechnik i Graupner Robotics (Soccerbot) i do samodzielnego złożenia i zaprogramowania. Zwłaszcza ten ostatni "zestaw" jest ciekawy, gdyż wewnętrznie jest to układ ATmega128 programowany w C++. Ponieważ jestem studentem i właśnie mam sesję, postanowiłem się pouczyć i tak zawędrowałem na wspomniany festiwal :). W najbliższych kilku postach postaram się zrelacjonować to wydarzenie. Pojawi się trochę zdjęć i filmów, których jeszcze nie zrobiłem bo byłem zbyt zajęty psuciem robotów ;)
Starcie Pierwsze - Wtorek, 02.06.2009
Po krótkim spacerze między gablotami trafiłem do 'części konstrukcyjnej', gdzie zostałem zaproszony do skorzystania z zestawów Fischertechnik. Lego Mindstorms zajęte były przez młodych chłopaków, którzy tworzyli dość ambitne konstrukcje kroczące, by następnie udać się na pobliską arenę dla robotów i przetestować je w walce. Wspomniana 'arena' to specjalna plansza, na której można testować zbudowane przez siebie roboty oraz sterować trzema robotami-zabawkami "na pilota". Dwa z nich przypominają transformersy :) i poruszają się na dwóch nogach,Jeden z nich porusza się na dwóch nogach, drugi na owadzich kończynach a trzeci to model węża. Zdjęcia i filmiki wkrótce :). Posadzony przed klockami Fischertechnik znalazłem jakąś instrukcję i zacząłem konstrukcję podstawowego modułu jeżdżącego. Nie było to takie proste zadanie, pierwszy raz widziałem takie klocki na oczy ;). Otrzymałem procesor sterujący, baterię oraz dostęp do kabli i oprzyrządowania. Gdy robot był już gotowy, miły człowiek z obsługi festiwalu posadził mnie przy komputerze i poinstruował jak korzystać z oprogramowania. Po podpięciu procesora robota do PC przez kabel USB zaczęła się zabawa :).
Robot Fischertechnik, widok z bokuRobot Fischertechnik, widok z góry Robot mojej konstrukcji
Narzędzia Fischertechnik Narzędzia Fischertechnik - podobnie jak Lego Mindstorms - pozwalają na tworzenie aplikacji przez wyklikiwanie schematów blokowych w dedykowanej aplikacji. Program, z którego korzystałem pozwalał pracować na pięciu poziomach zaawansowania - z każdym kolejnym dostawało się do dyspozycji więcej opcji. Poziom podstawowy to bardzo prosty interfejs, w którym można wyklikać prosty program. Dostępne opcje to m.in. zaczekanie na przycisk (dokładniej: wejście cyfrowe), sterowanie pracą silnika (dokładniej: wyjścia sterującego :)). Za pomocą niektórych bloczków program mógł się rozgałęzić lub zapętlić. Kolejnym poziomem zaawansowania był poziom 'podprogramów' - w tym trybie pojawiały się dodatkowe, bardziej złożone bloczki oraz można było wyklikiwać własne funkcje (w postaci podobnych schematów blokowych), które następnie stawały się bloczkami i można było z nich korzystać w programie. Kolejne trzy poziomy to dodatkowe bloczki (m.in. operacje na zmiennych, dość zaawansowane konstrukcje logiczne) i lekkie skomplikowanie interfejsu. Niezastąpione okazało się okienko podglądu aktualnego stanu robota, dzięki któremu można było mieć zarówno podgląd wszystkich wejść analogowych i cyfrowych w czasie rzeczywistym (tak długo, jak robot był podpięty do komputera), jak i można było sterować każdym z wyjść sterujących bez konieczności wgrywania nowego programu. W całym tym procesie jedna tylko rzecz mi bardzo przeszkadzała - komputery pracowały na systemie w niemieckiej wersji językowej; nie był to wielki problem, ale za to denerwujący. Robot Ostatecznie wyposażyłem swojego robota w dwa przyciski, które służyły za czujniki zderzenia z przeszkodą. Następnie stworzyłem program, dzięki któremu robot 'patrolował' teren poruszając się z niewielką szybkością do przodu, a w przypadku naciśnięcia któregokolwiek z przycisków błyskawicznie odskakiwał i omijał punkt zderzenia (dokładniej cofał się, skręcał w odpowiednią stronę, reorientował i podjeżdżał - zakreślając coś na kształt dużego U). Ten prosty kod okazał się być wystarczająco dobry, by robot mógł zostać pozostawiony na arenie, gdzie toczyły się walki - potrafił poruszać się bardzo długo bez pomocy człowieka i nie blokował się (głównie dlatego, że jedno z kółek było krzywe i robot nie jechał zwykle idealnie po prostej). Kilka słów o elementach elektronicznych w zestawach Fischertechnik, przynajmniej tych dostępnych na festiwalu. Jedynym wejściem dla robota okazał się być wspomniany przycisk. Służy on za wejście cyfrowe - ma dwa stany. Ponadto za wejście możnaby uznać pewne bliżej niezidentyfikowane urządzenie przypominające fototranzystor; nie udało mi się go jednak uruchomić. Z elementów wyjściowych dołączone były silniki oraz żarówkowe światełka. Oba te rodzaje urządzeń korzystają z tych samych wyjść. Sama płytka sterująca posiada wejścia analogowe mierzące napięcie (jedno mierzy rezystancję) i pozwala podłączyć jedynie cztery urządzenia wyjściowe (to i tak o jedno więcej niż Lego Mindstorms). Wybiła godzina 19:00 i trzeba było się zbierać. Od obsługi dostałem informację, że mają też trzeci rodzaj robotów, programowalny w C++ i że mogą go udostępnić następnym razem, jeśli będę chciał. Ponadto z rozpędu zgubiłem na wystawie rolkę Duct Tape (na szczęście na wykończeniu). Ciąg dalszy nastąpi...