Zestaw ewaluacyjny firmy Texas Instruments EVM-EVALBOT
Bardziej zaawansowane algorytmy przetwarzania i oceny danych wymagają większych mocy obliczeniowych. To fakt oczywisty, do którego nie trzeba przekonywać żadnego programisty. Nie dziwi więc, że firma Texas Instruments wyposażyła swój zestaw ewaluacyjny przeznaczony do budowy nieskomplikowanego robota w mikrokontroler z 32-bitowym rdzeniem ARM – Stellaris LM3S9B92 oraz system operacyjny Micrum μC/OS-III.
Podstawowym przeznaczeniem zestawu jest budowa samobieżnej platformy napędzanej dwoma silniczkami prądu stałego z przekładniami, której można użyć do budowy modelu robota. Płytka ewaluacyjna ma kształt koła (fotografia 1), na którym w równych odstępach są rozmieszczone koła napędzające z gumowymi pierścieniami, na których porusza się zestaw oraz dwie podpórki, które nie pozwalają mu opaść w przód lub w tył. Dodatkowo, środek ciężkości płytki jest obniżony przez baterie zasilające, które są zamocowane pod płytką, pomiędzy kołami.
Fotografia 1. Evalbot w widoku od spodu. Po bokach rozmieszczone są silniki prądu stałego z przekładniami, w części centralnej baterie, a pomiędzy nimi głośnik.
Na wierzchu płytki jest znacznie lepiej (fotografia 2). W centralnej części płytki jest umieszczony mikrokontroler Stellaris LM3S9B92 oraz gniazda rozszerzeń, w których można umieścić moduł radiowy o symbolu CC1101 Evaluation Kit. Dzięki temu modułowi płytka może być zdalnie sterowana np. z pulpitu zaprogramowanego innym zestawie ewaluacyjnym firmy TI, tj. zegarka sportowym eZ430 Chronos oraz zyskuje możliwość zdalnej komunikacji w paśmie ISM.
Na obwodzie płytki, pomiędzy kołami jezdnymi, są umieszczone 3 złącza USB, z których jedno pełni rolę interfejsu programatora/debugera (ICDI), drugie może pracować w trybie USB Host, natomiast trzecie USB Device. Pomiędzy gniazdami USB zamontowano interfejs Ethernet i gniazdo karty mikro SD. Po przeciwnej stronie koła (płytki) są zamontowane dwie dźwignie z włącznikami krańcowymi. Umieszczono je w taki sposób, że gdy płytka przemieszczając się napotka na przeszkodzę, to dźwigienka powoduje zwarcie krańcówki, co można wykorzystać do sygnalizacji przeszkody. Pomiędzy krańcówkami umieszczono graficzny wyświetlacz OLED o rozdzielczości 96×16 pikseli, który jakością wyświetlanego obrazu bije o głowę nawet VFD oraz 4 przyciski, których można użyć do budowy nieskomplikowanego interfejsu użytkownika. Ponad przyciskami zamontowano dwie diody LED ogólnego przeznaczenia.
Fotografia 2. Evalbot w widoku od góry. W części centralnej umieszczono mikrokontroler i gniazda modułu radiowego CC1101. Na górze widać wyświetlacz OLED i przyciski, na dole gniazda interfejsów USB-ICDI, USB-Host, USB-Device, Ethernet, micro SD.
Silniki napędu, w które jest wyposażona płytka, są silnikami komutatorowymi i aby oprogramowanie mogło pozyskać jakąkolwiek informację o położeniu kół, na warstwie górnej płytki producent zamontował detektory optyczne (po dwa na każde z kół) świecące poprzez otwory wykonane w kołach w taki sposób, że można zliczać obroty kół, rozpoznawać ich położenie z dokładnością do 45° oraz dokonywać detekcji kierunku obrotów.
Ciekawostką jest wyposażenie płytki w interfejs I2S oraz głośniczek. Czyżby mobilne centrum multimedialne?
Płytka jest dostarczana wraz z płytą CD zawierającą dokumentację (w tym schemat ideowy), kompilator firmy Keil, sterownik USB pozwalający na komunikację portu USB-ICDI z komputerem PC oraz program LM Flash Programmer pozwalający na zaprogramowanie pamięci Flash mikrokontrolera. Dodatkowo, na stronie internetowej firmy Texas Instruments, pod adresem http://www.ti.com/evalbot można znaleźć inne programy, które pozwalają na tworzenie oprogramowania dla płytki EVALBOT z użyciem jednego z 5 środowisk IDE:
- IAR Systems Embedded Workbench (wersja demonstracyjna z ograniczeniem kodu wynikowego do 32 kB),
- Code Sourcery G++ GNU (licencja 30-dniowa),
- Code Red Technologies Red Suite (licencja 90-dniowa),
- Code Composer Studio IDE (licencja „przywiązana” do płytki),
- Keil RealView MDK-ARM (ograniczenie do 32 kB).
Płytka jest dostarczana w podobnej postaci, jak modele do sklejania. Poszczególne elementy mechaniczne EVALBOT’a należy wyłamać z ramki i trzeba je sobie zamontować korzystając ze śrub, tulei, kątowników, nakrętek i podkładek znajdujących się w zestawie.
Czy to aby na pewno robot?
Przyznam się, że na pierwszy rzut oka zestaw wywołał u mnie mieszane uczucia. Jeśli ma to być płytka ewaluacyjna robota samojezdnego, to powinno być możliwe chociażby zaprogramowanie popularnych funkcji, jak „światłolub" (robot podążający za źródłem światła), „line follower” (robot podążający po linii nakreślonej na podłożu), „maze mouse" (robot odnajdujący drogę w labiryncie) lub „micro mouse” (robot podążający po przekątnej prostokąta). O ile zaprogramowanie „maze mouse” wydaje się możliwe, o tyle w celu umożliwienia pracy pozostałym algorytmom niezbędne są dodatkowe czujniki, których brak na płytce. Krańcówki zaczynają działać dopiero po uderzeniu płytki w przeszkodę, a w nowoczesnym robocie czasami jest potrzebny pomiar odległości. Owszem, jest gniazdo rozszerzenia, ale zostało ono przewidziane do dołączenia modułu radiowego, a na stronie TI nie ma informacji, aby można było w nim umieścić coś innego. Warto jednak zwrócić uwagę na pewien fakt. O ile bowiem z EVALBOT’a raczej kiepski i słabo wyposażony robot, o tyle jest to kapitalna płytka ewaluacyjna, o sporych możliwościach.
Mikrokontroler Stellaris z rdzeniem Cortex-M3 o imponujących zasobach (256 kB Flash, 96 kB RAM, USB OTG, Ethernet MAC+PHY, I2S) pracuje pod kontrolą systemu operacyjnego Micrium RTOS μC/OS-III. Oczywiście trudno jest zrozumieć sposób funkcjonowania RTOS bez dokumentacji i dlatego firma TI oferuje książkę autorstwa Jean J. Labrosse pod tytułem „µC/OS-III: The Real-Time Kernel”, która pozwala zapoznać się μC/OS-III nauczyć się programowania oraz zawiera opisy praktycznych przykładów programów przeznaczonych dla EVALBOT’a:
- użycie wyświetlacza OLED,
- program do odtwarzania plików w formacie WAV zapamiętanych w pamięci mikrokontrolera,
- przykłady programów do kontroli silników napędzających płytkę (załączenie silnika, wyłączenie po zadziałaniu krańcówki, manewrowanie płytką, ocena użycia CPU i prędkości poruszania się).
Podsumowanie
Płytka ewaluacyjna EVALBOT jest moim zdaniem kapitalną propozycją dla uczelni technicznych i raczej nie jest przeznaczona dla pasjonatów robotyki czy osób biorących udział w zawodach robotów. Wyposażona w mikrokontroler o imponujących zasobach sprzętowych, z jednej strony pozwala ona na zapoznanie się z nowoczesnym systemem operacyjnym czasu rzeczywistego, który jest przeznaczony do sterowania różnego rodzaju maszynami, a z drugiej umożliwia naukę przez zabawę. Programując płytkę można od razu zobaczyć efekt swojej pracy w postaci ruchu płytki. EVALBOT’a można również używać stacjonarnie. Można nie wprawiać jej w ruch lub nie montować kółeczek i silniczków jedynie korzystając z dobrodziejstw systemu RTOS i interfejsów. Dodatkowym atutem płytki jest możliwość pracy z łączem radiowym, czy to w sieci, czy też w konfiguracji punkt-punkt.
Jacek Bogusz
j.bogusz@easy-soft.net.pl
Dodaj nowy komentarz