Niedługo później, bo w czwartek (04.06.2009) wróciłem do Galerii by zająć się budową robotów. Przyszedłem dość późno, gdyż miałem tego dnia egzamin zerowy z Podstaw Sterowania ;). Na miejscu spotkałem jednego z chłopaków od Lego Mindstorms. Poprosiliśmy o wspomniane zestawy programowalne w C++. Okazało się, że są to roboty niemieckiej firmy Graupner Robotics służące do zawodów w piłkę nożną. Obsługa powiedziała mi, że w Niemczech takie roboty dawane są szkołom na okres kilku miesięcy, by uczniowie mieli czas przygotować oprogramowanie, a następnie roboty biorą udział w jakiegoś rodzaju konkursie. Po konkursie roboty są zwykle zostawiane szkołom.
Roboty dostaliśmy w dość rozsypanej postaci - przez pierwsze pół godziny grzebaliśmy w pudełkach szukając zasilania i programatora do szkieletu, który zdawał się być najprostszą w pełni działającą konstrukcją. Po uruchomieniu mechaniki przyszedł czas na programowanie; odnalezienie się zajęło jakieś kolejne pół godziny. Niestety, robot po wgraniu programu wyprawiał nieopisane cuda z silniczkami. Próba rozwiązania tego problemu zajęła mi praktycznie cały czas do 19:00. Pomagał w tym Stanisław, który pojawił się w międzyczasie w Galerii. Robot jednak nie zaczął działać poprawnie; musieliśmy go w końcu zostawić i opuścić galerię.
Roboty Graupnera
Platforma Graupnera różni się zasadniczo od Lego Mindstorms i Fischertechnika - w przypadku dwóch ostatnich konstrukcja robota to plastikowe klocki, natomiast ten pierwszy to pełnoprawny metalowy robot zrobiony z przykręcanych / mocowanych części. Sercem układu sterującego, nazwanego SoccerBoard, jest procesor ATmega128. SoccerBoard pozwala na podłączenie aż sześciu różnych silników (trzy z nich typowa konstrukcja wykorzystuje do poruszania się), 8-miu wejść cyfrowych oraz 8-miu wejść analogowych. Dodatkowo pierwsze cztery wejścia analogowe i cyfrowe mogą służyć za wyjścia mocy, którymi można np. zasilać żaróweczki. Przydatnym do debugowania programów mogłaby się okazać możliwość podłączenia małego wyświetlacza LCD - gdyby ktoś na festiwalu taki wyświetlacz miał.
Roboty Graupnera oparte są o platformę niemieckiej firmy qfix. Całość programuje się w C++ przy użyciu specjalnie przygotowanego prostego API. Razem z oprogramowaniem robota instalowany jest Programmer's Notepad, w którym proces kompilacji i programowania układu został uproszczony do naciskania klawiszy F5 i F6.
Starcie Trzecie - Piątek, 05.06.2009
Korzystając z chwili wolnego (nie mieliśmy tego dnia zajęć) udałem się do Galerii by kontynuować próby poprawnego zaprogramowania SoccerBoard'a. Analizowałem dokładnie API qfix'a i studiowałem pojedyncze bity na portach, które ustawiały funkcje mające wpływ na silniczki. Wreszcie doszło do tego, że znalazłem w Internecie SDK i zainstalowałem je na swoim laptopie. I wtedy przypadkiem odkryłem prawdziwą przyczynę błędnej pracy układu - niewielka lista rozwijana, która - jak mi się zdawało - służyła tylko do wyboru języka, dla którego kolorowana będzie składnia kontrolowała także model programowalnego chipa. Narzędzia kompilacji i nagrywania programu, dostępne pod klawiszami F5 i F6, były zależne od wyboru dokonanego na tej liście. Tak zostałem największym idiotą Galaktyki ;).
Dzięki powyższemu odkryciu udało mi się w końcu w pełni poprawnie zaprogramować robota (wszystkie hacki, które zainstalowałem w API qfix'a okazały się w tym momencie niepotrzebne ;) ). Niestety, musiałem w tym momencie opuścić Galerię ale przynajmniej było pewne, że robot Graupnera może być łatwo i przyjemnie zaprogramowany. Postanowiłem powrócić... :)
Ciąg dalszy nastąpi...