KursyPoradnikiInspirujące DIYForum

DMI Robot – druga wersja robota, który testuje ekrany

DMI Robot – druga wersja robota, który testuje ekrany

Robot DMI to dzieło inżynierów firmy Sii. Celem tego projektu, który bazuje m.in. na Raspberry Pi, była automatyzacja testów ekranów, za pomocą których maszyniści sterują pociągami.

W jednym z poprzednich wpisów, opisany został proces budowy prototypu tego urządzenia. Pora na aktualizację - oto druga wersja robota DMI.

Czym jest DMI robot?

DMI Robot jest urządzeniem, które zostało zbudowane na potrzeby automatyzacji testów ekranów dotykowych. Do tej pory testy wykonywane były manualnie i polegały na aktywacji odpowiednich kontrolek pojawiających się w danym momencie na ekranie (zgodnie ze scenariuszem testu). Zadaniem testera była odpowiednia reakcja na pojawiające się zdarzenia.

Automatyzacja testów polegająca na wpięciu się między magistralę komunikacyjną tego systemu a wyświetlacz nie jest możliwa, z powodu wymagań bezpieczeństwa. Dzieje się tak, bo wyświetlacz jest urządzeniem końcowym, które informuje operatora o stanie pracy systemu. Dlatego przechwytywanie informacji z magistrali, w tym przypadku, mogłoby spowodować, że test zostałby zaliczony, mimo np. uszkodzonego wyświetlacza. Urządzenie to symuluje zatem operatora wyświetlacza.

Robot z Raspberry Pi, który zautomatyzował testy pociągów
Robot z Raspberry Pi, który zautomatyzował testy pociągów

W niektórych branżach od poprawnego działania elektroniki zależy ludzkie życie. Dlatego ważne są dokładne testy wszystkich systemów.... Czytaj dalej »

Modyfikacje prototypu

DMI Robot doczekał się drugiej wersji. Opisane poniżej zmiany, które zostały wprowadzone do pierwotnej wersji urządzenia, wynikają bezpośrednio z analizy pracy pierwszego prototypu. Robot stał się mniejszy mimo zwiększonego obszaru roboczego. Zmieniono też położenie silników napędowych głowicy, które zostały umieszone w korpusie robota.

Podobny zabieg zastosowano dla ramienia kamery. W pierwszej wersji prototypu ramię znajdowało się na zewnętrznej ściance urządzenia. Aktualnie ramię kamery znajduje się w obrysie bryły urządzenia. Sposób wykonania oraz sterowania również uległ zmianie. Ramię porusza się liniowo tzn. w górę i dół za pomocą śruby trapezowej. Dla przypomnienia, w poprzedniej wersji prototypu ruch ramienia odbywał się po okręgu. Zastosowanie śruby trapezowej zredukowało koszt oraz znacznie zwiększyło precyzję oraz powtarzalność położenia.

Głowica z rysikiem z racji pełnionej funkcji została również przeprojektowana. Zmniejszono jej rozmiar i wysunięto rysik poza głowicę, poprawiając tym samym widoczność ekranu (z perspektywy kamery). Całkowicie odmiennie rozwiązano też zasilanie głowicy. Podczas użytkowania prototypu okazało się, że przewód zasilający jest problematyczny dla operatora, bo w niektórych przypadkach zasłaniał widok.

Urządzenie dodatkowo wzbogacone zostało o wyświetlacz LCD, który pełni funkcję informacyjną (np. wyświetla adres IP urządzenia). Przeprojektowaniu uległ również sposób pracy z robotem. Urządzenie może być wykorzystywane przez system testowy podczas automatycznych testów oraz jako urządzenie do pracy manualnej.

Elektronikę urządzenia przeprojektowano w taki sposób, aby ułatwić jej serwisowanie. W nowej wersji robota obwód PCB został powiększony, a zaciski do podzespołów umieszczone na zewnętrznych stronach płytki. W przeciwieństwie do poprzedniej wersji obwodu, który był nakładką na Raspberry Pi 3, nowa płytka jest komponentem zamontowanym poza mikrokomputerem.

Nowa wersja PCB robota

Nowa wersja PCB robota

Do istotnych zmian należy również modyfikacja sposobu sterowania cewką rysika. Zrealizowano je za pomocą sterowanego źródła prądowego, które w stanach ustalonych redukuje zakłócenia. Poprzednie rozwiązanie bazowało na sygnale PWM.

Dość nietypowym rozwiązaniem, które wprowadzono, jest brak możliwości wyłączenia urządzenia w sposób programowy (wyłącznie przycisk mechaniczny). Funkcjonalność tę wyeliminowano ze względu na chęć zapewnienia większej dostępności urządzenia w fabrykach np. na wypadek zaniku zasilania lub przy przypadkowym wyłączeniu urządzenia. Konsumpcja energii w czasie spoczynku nie zwiększyła się, bo wszystkie urządzenia, które pobierają większą moc, są wyłączane.

Zupełnie nowa obudowa robota DMI

Zupełnie nowa obudowa robota DMI

Wprowadzono również zmiany do obudowy elektroniki, która obecnie jest większa i ułożona poziomo z tyłu robota. Zmiany wymiarów wpłynęły pozytywnie na wentylację obudowy, obniżając temperaturę pracy. Dodatkowo zyskano więcej miejsca na prowadzenie przewodów.

Nowa wersja oprogramowania

Usprawnienia i modyfikacje wprowadzono także w samym oprogramowaniu. W skład oprogramowania wchodzi część znajdująca się na mikrokontrolerze i część uruchomiona na Raspberry Pi 3. Firmware na mikrokontroler napisano w języku C z wykorzystaniem koncepcji bare metal. Program bazuje głównie na przerwaniach oraz peryferiach sprzętowych takich jak np. timery, PWM, I2C, itd.

Podczas prac nad nowym oprogramowaniem, wprowadzono dodatkowe funkcjonalności związane z dodatkowym sprzętem, takim jak LCD czy podświetlenie RGB. Dodatkowo, udoskonalono algorytmy sterowania ruchem głowicy, detekcji kolizji oraz zarządzania energią.

Oprogramowanie znajdujące się na mikrokomputerze Raspberry Pi 3 jest zrealizowane w większości przy użyciu Pythona w wersji 3. Zastosowano architekturę typu klient-serwer, która umożliwiła stworzenie odrębnych modułów komunikujących się ze sobą za pomocą slotów.

Takie rozwiązanie niesie ze sobą benefit związany z tworzeniem oprogramowania w sposób rozproszony. Inaczej mówiąc, poszczególne moduły aplikacji mogą być zrealizowane przy użyciu dowolnego języka programowania nawet jako samodzielne programy.

Architektura ta okazała się pomocna w przypadku gotowych, dostępnych w repozytorium programów, które w oczywisty sposób nie mogły się komunikować z resztą aplikacji. Na ich potrzeby były tworzone tzw. wrappery, które tłumaczyły polecenia aplikacji na specyficzne parametry dla danego programu.

Zdalny podgląd pracy robota DMI

Zdalny podgląd pracy robota DMI

Aplikacja jest odpowiedzialna za zapewnienie komunikacji robota ze światem za pomocą połączenia TCP/IP przy pomocy protokołu ATP oraz za pomocą serwera webowego. Protokół ATP został zaprojektowany na potrzeby maszyn testujących przez klienta, w celu ujednolicenia kontroli na tego typu urządzeniach.

Natomiast interfejs webowy służy do pracy manualnej, ale zdalnej. Oprócz wyżej wymienionych modyfikacji, aplikacja została wyposażona w tryby pracy takie jak: stan bezczynności, praca manualna, praca zdalna. Tryby te znacznie ułatwiają pracę z robotem, a ponadto informują osoby, które znajdują się w okolicy, w jakim trybie pracy jest urządzenie.

Niespodziewane wyzwania

Największymi wyzwaniami, z którymi się zmierzono, a które na pierwszy rzut oka wydawały się banalne, było ramię kamery i mechanizm przekazywania prądu do głowicy za pomocą prętów pozycjonujących.

W przypadku ramienia kamery, trudnością było wykonanie mocowania o odpowiedniej sztywności. Nawet minimalne ruchy pojawiające się w uchwycie powodowały znaczne odchylenia na kamerze. Ruchy te były spowodowane niedoskonałościami wykorzystanych elementów. Wystarczyło lekkie wypaczenie śruby trapezowej, żeby podczas zmiany pozycji uchwytu zaobserwować ruch kamery na boki. Problem ten uczulił konstruktorów na nawet minimalne niedoskonałości komponentów. W wielu przypadkach nie przynoszą żadnych negatywnych efektów, ale w szczególnych rozwiązaniach mogą stanowić poważny problem.

Nowa wersja uchwytu kamery i prowadnic

Nowa wersja uchwytu kamery i prowadnic

Podobnie było z przekazywaniem prądu do głowicy. W teorii wystarczyło zastosować szczotki grafitowe, niestety rzeczywistość szybko to zweryfikowała. W celu poprawy styku i zwiększenia pewności działania, zastosowano dwukrotnie więcej szczotek niż początkowo zakładano. Mimo to, i tak pierwsza próba okazała się nieudana.

Kolejnym, skuteczniejszym pomysłem było zastosowanie szczotek metalowych. Nie było to jednak rozwiązanie idealne, ponieważ po pewnym czasie następowała korozja materiału, która przyczyniła się do zwiększenia rezystancji. Robot klikał, ale siła nacisku z czasem słabła. Aktualnie trwają prace nad kolejnym rozwiązaniem dotyczącym szczotek - tym razem grafitowych metalizowanych.

Jak widać, to co na etapie projektowania wydawało się pewne i proste, w rzeczywistości okazało się znacznie trudniejsze. Trudność ta wynika z faktu, że rozwiązania te muszą być niezawodne przez długi czas, co powoduje, że rzeczy pozornie nieskomplikowane stają się złożonym wyzwaniem. Według konstruktorów pracujących nad robotem DMI na tym właśnie polega prototypowanie – poszukiwanie rozwiązań przez wymyślanie i badanie różnych wariantów, aż do uzyskania zadawalających wyników.

Artykuł sponsorowany,
przygotowany przy współpracy z firmą Sii Polska.

raspberrypi, robot, sii

Trwa ładowanie komentarzy...