Husarion CORE2 – budowa połączonych z Internetem mechatronicznych urządzeń nigdy nie była taka łatwa
W sprzedaży dostępny jest nowy moduł firmy Husarion – sterownik CORE2. Jest on przeznaczony do budowy połączonych z Internetem urządzeń z obszaru automatyki i robotyki. Wyposażony jest w tym celu w interfejsy do sterowania silnikami DC z enkoderem kwadraturowym oraz serwomechanizmami modelarskimi. Udostępnia też wiele interfejsów komunikacyjnych (UART, I2C, SPI, USB, SD) oraz portów GPIO.
Wraz ze sterownikiem Husarion udostępnia specjalnie przygotowany framework programistyczny wykorzystujący system operacyjny czasu rzeczywistego (RTOS) oraz kanały DMA i udostępniający eleganckie i dobrze udokumentowane API w jezyku C++ w standardzie 11.
Aby rozwijać swoje urządzenia w oparciu o sterownik CORE2 nie trzeba instalować ani konfigurować narzędzi deweloperskich na swoim komputerze, ponieważ wszystkie narzędzia dostępne są po zalogowaniu na chmurę Husarion. Standardowy, “off-line’owy” rozwój oprogramowania także jest oczywiście możliwy dzięki SDK, które można pobrać ze strony producenta. Sama chmura pozwala nie tylko na rozwijanie oprogramowania na sterownik, ale także do sterowania zbudowanym w oparciu o niego urządzeniem.
1. Hardware
Sterownik Husarion CORE2 został zbudowany w oparciu o mikrokontroler STM32F4 w obudowie TQFP144, więc użytkownik ma do dyspozycji bardzo dużo różnego rodzaju interfejsów wyprowadzonych na złącza.
Tab. 1. Interfejsy sterownika Husarion CORE2
Mikrokontroler | 32-bit STM32F4 z rdzeniem ARM Cortex-M4, 168 MHz, 196 KB RAM, 1 MB pamięci Flash |
Napięcie zasilania | 6…16 V |
Wymiary
(sz. x dł. x wys.) |
85 x 94 x 14 mm |
Masa | 67 g |
Porty silników | 4 porty hMotor: każdy zawiera mostek H i wejście dla enkodera kwadraturowego; maks. prąd wyjściowy mostka to 1 A (szczytowy 2 A). |
Porty sensorów | 6 portów hSensor (4x GPIO + ADC + wejście przerwania zewn. + I2C/UART + zasilanie 5 V) |
Porty serwomechanizmów | 6 portów hServo + wbudowana przetwornica z programowalnym napięciem wyjściowym (5 V, 6 V, 7.4 V lub 8.6 V) |
Port rozszerzeń | 1 port hExt zawierający: 12 x GPIO, 7 x ADC, SPI, I2C, interfejs UART, 2 wejścia przerwania zewnętrznego oraz źródła zasilania 5 V oraz Vin (napięcie wejściowe) |
Łączność | CAN, USB Full Speed Host, port szeregowy z FTDI oraz złączem micro USB, złącze karty microSD, interfejs debuggera SWD |
Łączność bezprzewodowa | Wi-Fi dzięki modułowi ESP8266 lub Raspberry Pi (v2, v3 lub Zero) |
Każdy pin GPIO jest zabezpieczony rezystorem ograniczającym prąd. Opcjonalnie niektóre porty mogą być zabezpieczone diodami TVS (tzw. transilami). Sterownik akceptuje zakres napięć zasilających od 6 do 16V DC i zawiera zabezpieczenia nadprądowe, nadnapięciowe oraz przeciwko odwrotnej polaryzacji.
Na szczególną uwagę zasługują porty “hMotor” służące do bezpośredniego podłączenia silników DC z interfejsem enkodera kwadraturowego, jakie coraz częściej można spotkać na rynku. Każdy port wyposażony jest w wyjście mostka H, linię 5V do zasilania interfejsu enkodera, oraz wejścia na sygnały z niego wychodzące. Sygnały z enkoderów są dekodowane i zliczane bezpośrednio w sprzęcie przez timer mikrokontrolera STM32F4 pracujący w trybie enkodera kwadraturowego. Jest to jego unikalna cecha, ponieważ w większości mikrokontrolerów należałoby ustawić 2 kanały przerwań i reagować na każde zbocze sygnału enkodera, czyli z częstotliowścią dochodzącą nawet do kilkudziesięciu kHz. Dodatkowo, kluczowe byłoby ustawienie właściwych priorytetów przerwań, aby nie stracić żadnego kroku enkodera. W sterowniku CORE2 wszystko dzieje się “w krzemie” i sprawdzenie o jaki kąt obrócił się silnik sprowadza się do odczytania wartości z rejestru mikrokontrolera.
Możliwe jest także bezpośrednie podłączenie do 6 serwomechanizmów modelarskich. CORE2 zawiera na pokładzie osobną przetwornicę DC/DC do zasilania serwomechanizmów z programowo regulowanym napięciem wyjściowym: 5, 6, 7.4 lub 8.6 [V].
2. Software
Wraz ze sprzętem producent udostępnia specjalnie przygotowaną platformę programistyczną (tzw. framework) pozwalającą na pisanie algorytmów sterujących oraz na tworzenie interfejsu użytkownika, dostępnego z poziomu przeglądarki internetowej. Najważniejsze cechy frameworku producent opisał na infografice:
Framework wykorzystuje system operacyjny czasu rzeczywistego, kanały DMA oraz przerwania do wewnętrznej obsługi interfejsów komunikacyjnych, sprawiając, że niemal cała moc obliczeniowa rdzenia mikrokontrolera jest do wykorzystania przez programistę. Na stronie producenta jest dostępna kompletna dokumentacja wraz z wieloma przykładami, dzięki którym rozpoczęcie pracy jest bardzo szybkie. Wśród przykładowych projektów są zarówno przykłady użycia różnych peryferiów, jak również kompletne kody źródłowe, np. do samobalansującego robota do teleobecności.
Dzięki API napisanemu w języku C++ w standardzie 11, nie tylko wszystkie peryferia są obsługiwane w obiektowy sposób, lecz użytkownik ma możliwość korzystania z wyrażeń lambda, dzięki którym w łatwy sposób możemy przekazywać handlery do funkcji, albo definiować nowe zadania systemu operacyjnego. Przykładowo obsługa przycisku jest możliwa w następujący sposób:
hBtn1.setOnReleaseHandler([]() { platform.ui.console("cl1").printf("hBtn1 released\r\n"); //do something });
Pełna dokumentacja jest dostępna pod adresem: https://docs.husarion.com/api/core2_1_0_0/ .
3. Husarion Cloud
Po zalogowaniu się na cloud.husarion.com użytkownik widzi listę swoich urządzeń. Po wybraniu danego urządzenia można wykonać na nim szereg czynności:
- przejść do jego interfejsu użytkownika,
- otworzyć środowisko programistyczne (Web IDE),
- Udostępnić urządzenie innym użytkownikom platformy, bądź wygenerować bezpośredni link do interfejsu użytkownika urządzenia (niewymagajacy logowania się).
4. Przykłady użycia
Sterownik Husarion CORE2 znajdzie zastosowanie w dowolnych konstrukcjach, jednak najlepiej nadaje się do wszelkich mechatronicznych aplikacji: ramiona robotyczne, drukarki 3D, autonomiczne i półautonomiczne roboty, roboty do teleobecności, urządzenia automatyki domowej i przemysłowej. Zakres możliwych aplikacji jest bardzo szeroki. Niedawno Husarion otworzył profil na portalu Hackster (https://www.hackster.io/husarion), gdzie fani tej platformy mogą chwalić się przed światem urządzeniami, które sami zbudowali w oparciu o CORE2
5. Podsumowanie
Husarion CORE2 jest platformą, która zainteresuje nie tylko inżynierów automatyki i robotyki, lecz każdego konstruktora budującego wszelkie sterowane przez Internet urządzenia mechatroniczne. Dzięki sterownikowi z rozbudowanymi peryferiami, profesjonalnym narzędziom deweloperskim, rozbudowanym bibliotekom wykorzystującym system czasu rzeczywistego oraz platformie internetowej, rozpoczęcie budowania nawet najbardziej skomplikowanych urządzeń mechatronicznych nie jest już takie trudne. Jest to platforma, której wykorzystanie warto rozważyć w kolejnych planowanych projektach.