Husarion CORE2 – polski kontroler IoT z ogromnym potencjałem

Husarion CORE2 – polski kontroler IoT z ogromnym potencjałem

Husarion CORE2 – polski kontroler IoT z ogromnym potencjałem
06.08.2017 22:49, aktualizacja: 07.08.2017 11:11

Konstruując robota, nie trzeba korzystać tylko z importowanych rozwiązań. W Krakowie powstał kontroler, który daje bardzo szerokie możliwości, a przy tym nie wymaga ogromnego nakładu pracy – CORE2 firmy Husarion – kontroler IoT z ogromnym potencjałem. Nie jest to urządzenie polecane na początek przygody z robotyką, ale mimo wszystko okazało się bardzo przyjazne. Przede wszystkim pozwala skupić się na budowaniu robota, a nie na nauce nowego języka czy przeszukiwaniu dokumentacji.

Obraz

W pudełku znajdziemy tylko kontroler, bez żadnych dodatków. Warto zwrócić uwagę na to, że wszystkie piny i gniazda zostały opisane, co bardzo ułatwia montaż wszelkich peryferiów. Doświadczony konstruktor bez zastanowienia połączy swoją maszynę. Trzeba też zaznaczyć, że to nie jest konkurent Raspberry Pi czy Arduino – najbliżej mu do BeagleBone Blue.

Obraz

Specyfikacja CORE2 wymienia 32-bitowy mikrokontroler STM32F4 z rdzeniem ARM Cortex-M4 168 MHz, 192 KB RAM-u i 1 MB pamięci flash na oprogramowanie. Więcej informacji można zapisywać na karcie microSD z pomocą funkcji API, operując na plikach jak w każdym innym programie. Testowany przez nas CORE2 ma moduł WiFi, ale można też połączyć kontroler bezpośrednio z Raspberry Pi i korzystać z jego peryferiów. Jest tu też host USB (5V, 1 A) i port szeregowy z FTDI (wtyczka micro USB), jest więc możliwość komunikacji z urządzeniami wysyłającymi sygnały RS232 i TTL. Mamy też 5 LED-ów, z których trzema można sterować samodzielnie, dwa przyciski wejściowe, przełącznik do konfiguracji, złącze diagnostyczne (interfejs SWD) i włącznik. Nie zabrakło „resetu”, ale nie przydawał się zbyt często.

Obraz

Do dyspozycji mamy 6 portów sensorów z zasilaniem 5 V, masą i 4 pinami GPIO (uniwersalne wejście / wyjście), 6 portów dla serwomechanizmów z możliwością wyboru napięcia wyjściowego (5 V, 6 V, 7,4 V i 8,6 V) i 4 porty dla silników z enkoderem (z kwadraturą). Uniwersalne wyjście dla rozszerzeń daje możliwość przetwarzania analogowo-cyfrowego, SPI (komunikacja synchroniczna) i UART (komunikacja asynchroniczna). W sumie więc możemy bezpośrednio podłączyć sporo zewnętrznych urządzeń, wygodnie i szybko. Co ważne, CORE2 nie sprawiał żadnych problemów i zasilony odpowiednim zasilaczem pracował bez zarzutu.

  • Slider item
  • Slider item
[1/2]

Przy pierwszym uruchomieniu trzeba pod ręką mieć uniwersalny zasilacz (6-16 V), smartfon i dostępne WiFi (o ile oczywiście nie korzystamy z wariantu z Raspberry Pi). Proces ten przebiega z pomocą aplikacji na Androida – hConfig, widocznej poniżej.

  • Slider item
  • Slider item
[1/2]

Wskaże ona, jak włączyć CORE2 w trybie konfiguracji i poprowadzi za rękę przez pierwsze połączenie z domową siecią WiFi. Kolejnym krokiem jest rejestracja w chmurze cloud.husarion.com, gdzie można prowadzić swoje repozytorium projektów i sterować urządzeniami, oraz połączenie konkretnego kontrolera z kontem. Jest tu też możliwość aktualizacji oprogramowania i narzędzia pozwalające połączyć kamerę z interfejsem webowym przyszłej aplikacji. Dla bardziej rozbudowanej wersji CORE2-ROS dostępny jest również terminal SSH.

Nasz pierwszy projekt jest bardzo skromny – składa się z czujnika i jednego silnika, ale dobrze pokazuje, jak korzystać z autorskiego API kontrolera. Silnik zostanie włączony, gdy coś zbliży się na odpowiednią odległość. Za podanie sygnału odpowiada optyczny czujnik odbiciowy (QRD1114).

  • Slider item
  • Slider item
[1/2]

API zostało tak skonstruowane, by oznaczenia w kodzie zgadzały się z tymi na kontrolerze, a więc silnik będzie identyfikowany jako hMot1, czujnik zaś jako hSens1. Sygnał zostanie podany na pin hSens1.pin1. Warto zwrócić uwagę, że pin1 to pin GPIO z możliwością przetwarzania sygnału analogowego na cyfrowy, co można oczywiście wyłączyć w programie.

W projekcie wykorzystany został silnik z enkoderem. Jego obroty zależeć będą od napięcia podanego przez czujnik. Enkoder będzie obracał silnikiem o 300 kroków przez cały czas, gdy coś znajduje się blisko czujnika, a po oddaleniu się wróci do pozycji wyjściowej, ale nieco wolniej. Za obrót względny odpowiada funkcja hMot1.rotRel(), można też korzystać z pozycji bezwzględnych i hMot1.rotAbs() albo uruchamiać silnik z podaną mocą hMot1.setPower(). Jak widać, nazwy funkcji są bardzo intuicyjne, co znacznie ułatwia programowanie budowanego robota. Więcej przykładów znajdziecie na stronie z dokumentacją, ale już na pierwszy rzut oka widać, że trudno sobie z tym API nie poradzić. Dokumentacja jest dopiero budowana i może mieć braki, ale w takich przypadkach z pomocą przychodzi forum.

Kod programu można wprowadzić w przeglądarce albo korzystając z SDK do pobrania i ulubionego edytora (na przykład Visual Studio Code). Większość kodu projektu znajduje się GitHubie, razem z modelami płytek, by można było łatwo zaprojektować obudowy. Ponieważ program ma raptem 30 linii kodu, wystarczy, że wykorzystamy webowe IDE. Nie ma ono rozbudowanych funkcji, ale do takiego projektu spokojnie wystarczy. Przydałyby się jednak jakieś ułatwienia, jak szybki dostęp do przykładów czy działające przejścia do dokumentacji. Zapewne i tego się doczekamy. Jest tez możliwość wysyłania własnych plików do chmury.

Na początku można uruchomić także kilka przykładowych projektów, by przyjrzeć się działaniu CORE2 w praktyce i rozwiać wątpliwości. Wszystko jest bardzo czytelne, a firmware można skompilować i wysłać bezpośrednio do kontrolera jednym kliknięciem. Co ważne, CORE2 nie sprawiał żadnych problemów i zasilony odpowiednim zasilaczem pracował bez zarzutu przez cały czas testów, mimo że projekt jest wciąż jeszcze rozwijany.

Obraz

Na potrzeby sterowania i debugowania można zaprojektować także prosty interfejs przeglądarkowy – wystarczy podstawowa znajomość HTML-a i CSS. Na stronie naszego projektu można zobaczyć czas pracy, napięcie podawane z czujnika i liczbę kroków, wykonanych przez silnik, co pozwala precyzyjnie określić jego pozycję i kontrolować, czy wszystko działa jak należy, jeśli nie ma możliwości obserwowania silnika.

Obraz

Post udostępniony przez dobreprogramy (@dobreprogramy)

Jak widać powyżej, można też uruchomić tu transmisję wideo, jeśli mamy pod ręką wolny smartfon z Androidem albo kamerkę USB, podłączoną do Raspberry Pi lub Tinkerboarda. Transmisja jest prowadzona za pośrednictwem WebRTC, a dodawanie kamerki do robota odbywa się z także z poziomu chmury. Smartfon może być „oczami i uszami” robota, jeśli zainstalowana na nim zostanie aplikacja hVideo.
  • Slider item
  • Slider item
[1/2]

Ponadto na stronie można umieszczać przyciski do sterowania robotem albo korzystać z klawiszy, co świetnie demonstruje robot do teleprezencji. Mieliśmy okazję sprawdzić także ten projekt i mimo że łączył się przez LTE, działał prawidłowo, spełniał swoje zadanie i reagował na sterowanie z niezauważalnymi dla nas opóźnieniami. Wszystko jednak zależy od tego, jakie potrzeby ma spełniać aktualnie rozwijany projekt.

Sterowanie interaktywne przez przeglądarkę jest dobrą zabawą, ale ponieważ dane muszą przejść przez chmurę, lepiej wykorzystywać CORE2 do projektów automatycznych i półautomatycznych, by uniknąć ewentualnych opóźnień. Jako że działa na nim system czasu rzeczywistego, w takich zastosowaniach sprawdzi się najlepiej.

Chmurowe rozwiązanie jest bardzo wygodne, pozwala łatwo udostępniać własne programy innym, ale nie każdemu się spodoba potrzeba wysyłania programu przez serwery Husariona. Autorzy chcą skupić się na rozwijaniu swojego oprogramowania, ale myślą też o udostępnieniu oprogramowania chmury firmom, które chciałyby trzymać wszystkie dane we własnej infrastrukturze i operować w sieci lokalnej. Będzie to jednak opcja dostępna dla klientów o specyficznych wymaganiach i większym budżecie. Nasz kod musi przejść przez chmurę Husariona, pracującą na ich własnych dedykowanych serwerach. Warto jednak zauważyć, że platforma CORE2 jest otwarta i można opracować własne metody połączenia z Internetem.

Kontroler na pewno można uznać za udany. W typowo robotycznych zastosowaniach rzeczywiście sprawdzi się lepiej niż jednopłytkowe komputery. Autorzy CORE2 jako przykład podali robota mapującego przestrzeń w 3D. Ponadto CORE2 i chmura Husariona nie sprawiają żadnych problemów i mimo że oprogramowanie jeszcze jest poprawiane, działają stabilnie i niezawodnie.

Kilka słów o firmie Husarion

Husarion to młoda firma. Powstała 4 lata temu w Krakowie i realizuje wizję przystępnej robotyki. Praca z kontrolerem ma być możliwie przystępna i możemy to potwierdzić – pierwszy projekt ruszył kilka minut po wyjęciu kontrolera z pudełka, mimo że testerka na co dzień nie ma do czynienia z robotyką. Próg wejścia w to środowisko jest na tyle niski, że osoba mająca niewielkie nawet doświadczenie w programowaniu poradzi sobie bez problemu. CORE2 jest kierowany między innymi do takich osób, które już programowały, ale dla odmiany chcą stworzyć coś „namacalnego”.

Przykładowy projekt – zdalnie sterowany robot telekonferencyjny
Przykładowy projekt – zdalnie sterowany robot telekonferencyjny

Można się zastanawiać, dlaczego autorzy zdecydowali się na projektowanie specjalistycznego kontrolera, a nie produkcję uniwersalnego jednopłytkowca. Uznali, że na tym polu będzie im łatwiej konkurować i zdobyć pierwszych użytkowników. Rynek uniwersalnych jednopłytkowców ma wielu starych i cenionych graczy, trudno na nim zacząć i trudno się utrzymać. Poza tym trzeba też zaznaczyć, że Husarion celuje konkretnie w kontrolery z systemem czasu rzeczywistego, czego jednopłytkowce tak łatwo nie zapewniają. Nie można jednak wykluczyć, że i taki projekt powstanie w Krakowie, jeśli pozwolą na to okoliczności. Być może doczekamy się krakowskiego Raspberry Pi.

Produkty Husariona mają sprawdzać się w wyspecjalizowanych zadaniach, współpracując z Raspberry Pi lub pracując samodzielnie. Projektanci starają się zachować maksymalną kompatybilność z „malinką”, dzięki czemu ułatwiają sobie start, a klientom zapewniają wygodę. Kontrolery są produkowane w Krakowie, ale Husarion prowadzi też negocjacje z wykonawcą z Poznania. Komponenty są oczywiście importowane, ale projektowanie i montaż odbywają się w całości w Polsce, więc odważymy się powiedzieć, że to polski kontroler.

  • Slider item
  • Slider item
[1/2]

CORE2 nie jest ostatnim produktem Husariona. Właśnie zakończyła się zbiórka na CrowdSupply, oczywiście sukcesem, a kolejnym krokiem będzie produkcja nieco mniejszej wersji – CORE2mini. Partia pilotażowa jest już testowana, ale dowiemy się o niej więcej po sfinalizowaniu akcji związanej z CORE2. Z CORE2 powstały już różne projekty studenckie w Krakowie, a także kilka prywatnych robotów, które można obejrzeć między innymi na Hacksterze. Na razie jest ich niewiele, ale po ostatniej akcji kontrolery CORE2 powinny nabrać rozpędu.

Plusy
  • Łatwa wstępna konfiguracja
  • Uniwersalne wejścia i wyjścia
  • Wygodna praca z chmurą
  • Otwartość platformy
  • Przystępna dokumentacja
Minusy
  • Potrzeba łączenia się z chmurą
  • Ubogie IDE webowe

Programy

Zobacz więcej
Źródło artykułu:www.dobreprogramy.pl
Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Wybrane dla Ciebie
Komentarze (94)