Czym się wyróżnia? Na to pytanie warto odpowiedzieć, mówiąc osobno o sprzęcie, a osobno o oprogramowaniu.
Kontroler CORE2
CORE2 to nazwa zestawu rozwojowego, opartego o 32-bitowy mikrokontroler z rodziny STM32F4. Zarówno podstawowe parametry użytego STM-a (zegar 168 MHz, 1 MB Flash, 196 kB RAM), jak i zestaw zintegrowanych peryferii sprawiają, że jest on jedną z najlepszych propozycji na rynku dla urządzeń z zakresu automatyki i robotyki. Atuty mikrokontrolera zostały świetnie wykorzystane w CORE2. Jego zewnętrzne interfejsy dobrane są w ten sposób, aby łatwo można było integrować go z urządzeniami mechatronicznymi. Są to przede wszystkim porty dla czujników oraz silników – elementów kluczowych w robotach (autonomicznych lub półautonomicznych) czy w urządzeniach automatyki.
Jakie interfejsy mamy do dyspozycji? Wymieniono je w tabeli 1.
Porty dla silników wyróżniają się możliwością wykorzystania enkoderów kwadraturowych, w które jest wyposażonych coraz więcej silników DC dostępnych na rynku. Sygnały z enkoderów dekodowane są bezpośrednio w timerach mikrokontrolera, co oznacza, że do ich obsługi nie potrzeba ani przerwań, ani mocy obliczeniowej procesora. Dostajemy po prostu na bieżąco informację o kącie obrotu każdego silnika. Dla tych, którym wystarczają serwomechanizmy modelarskie, przewidziano możliwość podłączenia 6 serw. Aby „nie robić zamieszania” na głównej linii zasilania 5 V, do zasilania serwomechanizmów służy odrębna przetwornica typu step-down. Prąd maksymalny pobierany przez serwa może osiągać 3 A, a napięcie zasilania kontrolowane jest programowo.
Na zakończenie opisu sprzętu parę drobiazgów. Płytka Husarion CORE2 ma wymiary 85 mm×94 mm×14 mm, waży 67 g. Można go zasilać napięciem z przedziału 6…16 V oraz ma wbudowane zabezpieczenia: nadprądowe, nadnapięciowe i przed odwrotnym podłączeniem zasilania.
Sam zdecyduj jak łączyć z Internetem
Sterownik CORE2 nie ma wbudowanego modułu komunikacji bezprzewodowej, ale do zestawu producent dołącza moduł Wi-Fi wraz z przejściówką, która umożliwia podłączenie modułu do CORE2. Dlaczego moduł Wi-Fi nie jest po prostu wlutowany w PCB? Ponieważ ten jeden, dedykowany moduł to niejedyna opcja. Na płytce drukowanej sterownika znajdziemy złącze kompatybilne z Raspberry Pi w wersji 2.0, 3.0 lub Zero. Połączenie sił CORE2 oraz komputera jednopłytkowego pracującego z systemem Linux pozwala na wykorzystanie wielu atrakcyjnych w robotyce bibliotek, takich jak OpenCV czy ROS (Robot Operating System). Zestaw zawiera też złącza i elementy mocujące do montażu każdej wersji Raspberry. Zarówno dołączony moduł Wi-Fi, jak i Raspberry Pi czerpią zasilanie prosto z CORE2 poprzez wspomniane złącze.
Husarion Cloud
O ile sprzęt jest po prostu dobrze skomponowanym zestawem peryferii z mocnym mikrokontrolerem, o tyle na szczególną uwagę zasługuje oprogramowanie. Husarion proponuje bardzo wygodne podejście: wszystkie narzędzia, potrzebne do rozpoczęcia pracy, dostępne są online – z poziomu przeglądarki internetowej – w tzw. chmurze.
Dzięki temu możemy z jednego miejsca, bez instalacji dedykowanego środowiska programistycznego na komputerze, realizować następujące funkcje:
- Rozwijanie oprogramowania (firmware) dla urządzenia – służy do tego Web IDE, czyli środowisko, w którym edycja kodu odbywa się w przeglądarce internetowej. Web IDE oferuje oczywiste funkcje typu kolorowanie składni, podpowiadanie kodu czy zarządzanie plikami źródłowymi. Kompilacja również odbywa się na serwerze – gwarantuje to, że wszystkie biblioteki są zawsze aktualne. Oprogramowanie dla urządzenia tworzymy w języku C++.
- Wgrywanie nowego oprogramowania do kontrolera CORE2. To również można robić zdalnie i jest świetnym rozwiązaniem, gdy trzeba np. zdalnie przeprogramować większą liczbę podobnych urządzeń.
- Tworzenie interfejsu użytkownika dla urządzenia – do tego również służy Web IDE, ale tym razem zamiast w C++, piszemy w HTML (z wykorzystaniem CSS, JavaScript lub innych technologii internetowych). Kod odpowiadający za interfejs użytkownika danego urządzenia nie jest przechowywany w pamięci Flash mikrokontrolera, lecz na serwerze.
- Korzystanie z urządzenia z wykorzystaniem wyżej wymienionego interfejsu. Warto wspomnieć, że interfejs może wykorzystywać strumieniowanie obrazu i dźwięku w dwóch kierunkach oraz dodatkowe komendy sterujące czy strumieniowanie innych danych. Jest to ciekawa propozycja szczególnie w przypadku robotów pół autonomicznych lub tzw. robotów do teleobecności. Interfejs użytkownika może tworzyć lub zmieniać tylko właściciel urządzenia.
- Udostępnianie interfejsu urządzenia innym osobom. Możemy udostępniać cały interfejs innym użytkownikom Husarion Cloud lub dowolnej osobie, której prześlemy specjalnie wygenerowany link. W praktyce oznacza to, że nasz kolega będzie mógł sterować naszymi żaluzjami bądź robotem-szpiegiem z kamerą, ale np. bez możliwości zmiany oprogramowania.
Husarion Cloud to narzędzie wygodne dla firm, dzięki którym mogą one w łatwy sposób budować połączone z Internetem mechatroniczne urządzenia, bez potrzeby utrzymywania własnej infrastruktury. Klienci tych firm korzystają ze swoich urządzeń przez Internet z poziomu konta użytkownika na http://cloud.husarion.com. Tam też producenci mogą zamieszczać aktualizację firmware’u urządzeń połączonych z chmurą Husarion. Zatem odpada problem przyjeżdżania z usługą wymiany firmware'u do klienta. Husarion udostępnia również internetowe API do usług oferowanych przez chmurę i do samych urządzeń połączonych z chmurą.
Wydajne oprogramowanie
Całości ekosystemu Husarion dopełnia platforma programistyczna do rozwoju firmware'u dla samego CORE2. Kod źródłowy piszemy w języku C++11, który umożliwia m.in. korzystanie ze wszystkich peryferii w sposób obiektowy. Możemy też korzystać z wyrażeń lambda, dzięki którym w łatwy sposób możemy przekazywać tzw. handlery do funkcji albo definiować nowe zadania systemu operacyjnego. Nie mogłoby być inaczej – CORE2 wykorzystuje system operacyjny czasu rzeczywistego i jest to jedna z najważniejszych cech systemu, który przecież ma z założenia kontrolować niedeterministyczne procesy w świecie automatów i robotów (w tym autonomicznych). Zestaw bibliotek do kontrolera został napisany w taki sposób, aby jak najmniej wykorzystywać rdzeń mikrokontrolera do obsługi peryferii, czyli stosując kanały DMA, przerwania i timery w maksymalnym stopniu. Wszystko to jest ukryte za łatwym w użyciu API.
Czas potrzebny na rozpoczęcie własnego projektu jest bardzo krótki dzięki kompletnej dokumentacji i przykładom pokazującym, jak wykorzystać każdy z interfejsów. Z poziomu chmury dostępne są też szablony kodów źródłowych odpowiednie dla różnych wariantów wykorzystania – od klasycznego „Hello World”, który w świecie embedded jest znany bardziej jako „LED blink”, po np. kompletny kod źródłowy samobalansującego, dwukołowego robota do zdalnej obecności.
Podsumowanie
CORE2 to bardzo ciekawa propozycja dla osób i firm szukających solidnej platformy rozwojowej do tworzenia urządzeń, które naprawdę „żyją” w globalnej sieci, a jednocześnie wydajnej jednostki do kontrolowania urządzeń w czasie rzeczywistym. Nie jest to sprzęt „do wszystkiego”, ale dzięki skupieniu się na aplikacjach mechatronicznych mamy pewność, że spełni nasze oczekiwania w tym obszarze zastosowań – zarówno offline, jak i online.
Radosław Jarema