Niedawno przestrzegaliśmy, na łamach forum, żeby nie korzystać z modułów Arduino jak i samego IDE w zastosowaniach komercyjnych. Wielu z Was się z tym zgadzało, ale były także głosy sprzeciwu. Wielu konstruktorów się z Wami zgadza, uważają oni, że moduły Arduino rzeczywiście nadają się do konstrukcji urządzeń.
Arduino okazało się być idealnym wyborem dla JF Machines Ltd - producent zaawansowanych, przemysłowych drukarek cyfrowych. Dzięki wykorzystaniu bezpiecznej, otwartej i sprawdzonej platformy sprzętowej i programowej firma mogła stworzyć niedrogi interfejs do podłączenia swoich drukarek do komputera PC w bardzo krótkim czasie i niewielkim nakładem sił.
Autor artykułu pracował w JF Machines w 2009 roku, gdzie odpowiedzialny był za tworzenie oprogramowania operatorskiego dla nowej cyfrowej drukarki - PicoColour. Taka drukarka to nic więcej, jak tylko znacznie większa, szybsza i wytrzymalsza drukarka o zasadzie działania podobnej do tych domowych urządzeń - 1,5 tony precyzyjnej mechaniki i elektroniki. Dotychczasowo sterowana ona była z pomocą dedykowanych układów elektronicznych i sterowników programowalnych (PLC), jak ma to miejsce w większości tego rodzaju urządzeń - produkowanych w niewielkich seriach, zaawansowanych systemów.
PLC jest zazwyczaj programowany w jakimś wysokopoziomowym języku programowania, często np. w języku drabinkowym. Idealnie nadaje się do sterowania urządzeniami przemysłowymi, nie wymaga zbyt dużej ilości zewnętrznych układów elektronicznych etc, ale nie jest pozbawiony wad. Głównym problemem jest tutaj ogromne przywiązanie do marki. W większości wypadków, jak nie w każdym, PLC to rozwiązania mocno dedykowane, więc jeśli zaprojektowało się już całą platformę, osprzęt i oprogramowanie dla danej aplikacji wykorzystującej konkretny moduł PLC ciężko jest wykorzystać inny moduł. Jeśli producent w takim momencie zaprzestanie produkcji konkretnego modułu lub też, co gorsza, z jakiegoś powodu w ogóle wycofa się z rynku, to mamy poważny problem.
Jeśli mamy odrobinę szczęścia, to może okazać się, że dana firma wprowadziła do swojej oferty podobny, nowszy PLC, będący jego funkcjonalnym zamiennikiem - nie da się nim od tak po prostu zastąpić starego PLC, ale ma podobne możliwości, więc nie jest wymagane zbyt wiele pracy, aby podmienić moduł PLC. Identyczny problem jest z oprogramowaniem - jest ono pisane w oprogramowaniu dedykowanym do modułów danego producenta i danej rodziny PLC. Oznacza to, że w momencie wycofania wsparcia dla konkretnego PLC nasze oprogramowanie staje się zupełnie bezwartościowe. Z uwagi na te zależności wykorzystanie modułów PLC w seryjnie produkowanych urządzeniach jest problematyczne i co jakiś czas trzeba mierzyć się z takimi wyzwaniami jak opisane powyżej. Jeśli teraz dołożymy do tego wysoką cenę takich urządzeń, to nie ma co dziwić się, że wiele firm robi wszystko co możliwe aby z nich zrezygnować. Ale czy są jakieś alternatywy?
Jedną z takich alternatyw jest Arduino. Większość z nas zna je z hobbystycznych, amatorskich projektów, ale nie oznacza to, że nie może znaleźć zastosowania w profesjonalnych, złożonych systemach. Przed takim wyzwaniem postawił właśnie ten ekosystem autor artykułu. Postanowił on oprzeć kontroler systemu cyrkulacji tuszu w drukarce o moduły Arduino. Sprawne działanie tego modułu jest kluczowe dla długofalowego powodzenia w druku, a jednocześnie sterowanie nie jest aż tak bardzo złożone. System ma za zadanie sterować precyzyjnie podnoszeniem i opuszczaniem pięciu pojemników z tuszem, znajdujących się w drukarce, aby utrzymać stałe ciśnienie tuszy. Dodatkowo układ mierzy także temperaturę w układzie (trzeba dostosowywać do niej ciśnienie tuszy), informuje użytkownika o ewentualnych awariach jak i komunikuje się z operatorem. W takiej aplikacji doskonale sprawdzić by się mógł moduł PLC, jednakże Arduino okazało id być równie dobrym rozwiązaniem.
Na zdjęciu poniżej widzimy płytkę drukowaną dedykowaną do podłączenia pięciu zwykłych modułów Arduino.
Wraz z tworzeniem nowego systemu autor był coraz bardziej przekonany, że była to dobra decyzja. Autor wymienia kilka zasadniczych zalet wykorzystania Arduino, nawet w środowisku przemysłowym w gotowym, dedykowanym produkcie:
Bezpieczeństwo dostaw - nawet jeżeli firma Arduino zatrzyma produkcję swoich modułów i wycofa się z rynku, to wiele innych firm produkuje kompatybilne moduły, szczególnie że cały wszystkie moduły są w pełni otwarte. Co więcej, nawet gdyby coś miało zmienić się w projekcie, to łatwo zaprojektować można np. przejściówkę z nowego na stary pinout... istnieje też duża szansa, że zważywszy na ogromne środowisku ludzi pracujących z Arduino, taka przejściówka pojawiłaby się za grosze na rynku komercyjnym. Można z pewnością założyć, że tego typu moduł będzie dostępny tak długo, jak producent mikrokontrolera - Atmel (niedawno kupiony przez Microchipa - sprzedawać będzie ten układ. W najgorszym wypadku moduł kompatybilny z Arduino produkować można samodzielnie, cała dokumentacja jest dostępna.
Elastyczność - platforma Arduino jest niezwykle elastyczna. Od momentu zaprojektowania systemu kontroli ciśnienia tuszu JF Machines znalazło szereg dodatkowych zastosowań dla tych modułów w maszynie. Jednym z nich jest na przykład kontrola głównego silnika krokowego drukarki, co przydaje się aby np. manualnie wycofać papier z drukarki - w przypadku krótkich serii i drukowania niewielkiej ilości można wycofać zaczętą rolkę, dzięki czemu oszczędzić można kilka metrów bieżących dosyć drogiego papieru.
Łatwość łączenia z komputerem PC - Podstawą większości aplikacji jest kontrola jakiegoś systemu i komunikacja z zewnętrznymi urządzeniami, na przykład komputerem PC. Arduino sprawdza się w tym zakresie doskonale, ponieważ wyposażone jest standardowy port COM emulowany poprzez USB. Dzięki wysokopoziomowemu podejściu do komunikacji z tym systemem, jest to niezwykle proste i łatwe do implementacji, tak po stronie mikrokontrolera, jak i komputera PC. Dzięki temu możliwe było zaimplementowanie w urządzeniu wielu dodatkowych, przydatnych funkcji, pozwalających np. oszczędzać tusz.
Możliwość modyfikacji po instalacji - dzięki dużej elastyczności system ten można bardzo łatwo przeprogramowywać. Wyobraźmy sobie sytuację w której maszyna wymaga zmiany parametrów albo wprowadzenia poprawek w programie już po instalacji jej u klienta. W przypadku wykorzystania modułu PLC oznaczałoby to konieczność wizyty technika z laptopem i specjalnym kablem do programowania, co oznacza duże koszty, które ktoś musiałby ponieść. Jeśli wykorzystani Arduino, to nic nie stoi na przeszkodzie, aby po prostu wysłać do klienta nowy moduł zaprogramowany uaktualnioną wersją oprogramowania. Moduł jest na tyle tani, że koszt takiej operacji jest niemalże pomijalny, a dzięki temu np. aktualizacje softu wysyłać można po prostu pocztą, jako list polecony. Stare moduły Arduino mogą być odsyłane z powrotem do producenta systemu, albo utylizowane bądź po prostu wykorzystywane gdzieś, prze hobbystów, cieszących się z darmowego modułu
.
Niskie koszty - gdy rozmawia się z hobbystami na temat modułów Arduino często słyszy się przeciwny argument, tj. że moduły te są drogie. Jest to poniekąd prawda, bo jeśli chodzi o koszt zakupu modułu i wykorzystywanie go do jednostkowo projektowanych urządzeń, to jest on wysoki, aczkolwiek - raczej taniej sami tego nie zrobimy. Jednakże jeśli porównujemy koszty modułu Arduino z kosztem sterownika PLC, to zasadniczo koszty tego pierwszego są zerowe.
Oczywiście, te wszelkie zalety to nie koniec - są też pewne problemy. Pierwszym z nich może być konieczność nauki nowego środowiska programistycznego, co jest potrzebne tak do stworzenia aplikacji jak i jej późniejszego modyfikowania i utrzymywania. Na szczęście Arduino IDE jest bardzo prostym pakietem, a wykorzystywany w nim język jest uproszczoną wersją C++, co znacznie ułatwia naukę i korzystanie z całego ekosystemu.
Kolejnym problemem jest kontrola wersji kodu. W zakresie takim jak pracuje JF Machines, to znaczy maszyn dopasowanych do zamówienia od konkretnego użytkownika jest to o tyle problematyczne, że kusi, aby każda wersja kodu dla każdego klienta była osobnym forkiem kodu, jednakże - analogicznie jak w przypadku sprzętu - utrzymanie tak złożonej struktury systemu kontroli wersji nastręcza wielu problemów. Było to oczywiście nie mniejszym problemem w przypadku modułów PLC - tam dodatkowo dochodził problem tego, że poszczególne moduły PLC wykorzystują własne, dedykowane rozwiązania programistyczne, co oznacza, że ich programy nie są przenaszalne. Zaleta używania C w Arduino jest to, że jest to standardowy język, którego kod jest przenaszalny. Pozwala to stosować typowe systemy kontroli wersji, takie jak np. Git, aczkolwiek nie można przesadzić z rozbudowanym drzewem wersji...
Podsumowanie
W przypadku prezentowanego powyżej projektu Arduino sprawdziło się idealnie. Jedynym problemem była konieczność nauczenia się nowego środowiska do programowania i nowego "ekosystemu", ale przyniosło to ogromne zyski. W takim zastosowaniu - zaawansowanym technicznie, ale o niskim wolumenie produkcji - Arduino sprawdza się idealnie, gdyż pozwala na stworzenie taniego i elastycznego rozwiązania, dzięki wykorzystaniu gotowej i uniwersalnej platformy, która już dawno sprawdziła się w działaniu. Pozwoliło to istotnie zredukować koszty i nakład prac na opracowanie układu.
Jeśli chcecie wypowiedzieć się na temat oryginalnego artykułu możecie skomentować go na Reddicie lub Hackaday, gdzie wywiązała się burzliwa dyskusja na temat użytkowania Arduino w systemach przemysłowych. Możecie też komentować poniżej - czy Aurdino rzeczywiście sprawdza się w takim zastosowaniu jak zaprezentowano powyżej?
Źródło: https://www.paulfurley.com/arduino-isnt-just-for-hackers/
Arduino okazało się być idealnym wyborem dla JF Machines Ltd - producent zaawansowanych, przemysłowych drukarek cyfrowych. Dzięki wykorzystaniu bezpiecznej, otwartej i sprawdzonej platformy sprzętowej i programowej firma mogła stworzyć niedrogi interfejs do podłączenia swoich drukarek do komputera PC w bardzo krótkim czasie i niewielkim nakładem sił.
Autor artykułu pracował w JF Machines w 2009 roku, gdzie odpowiedzialny był za tworzenie oprogramowania operatorskiego dla nowej cyfrowej drukarki - PicoColour. Taka drukarka to nic więcej, jak tylko znacznie większa, szybsza i wytrzymalsza drukarka o zasadzie działania podobnej do tych domowych urządzeń - 1,5 tony precyzyjnej mechaniki i elektroniki. Dotychczasowo sterowana ona była z pomocą dedykowanych układów elektronicznych i sterowników programowalnych (PLC), jak ma to miejsce w większości tego rodzaju urządzeń - produkowanych w niewielkich seriach, zaawansowanych systemów.
PLC jest zazwyczaj programowany w jakimś wysokopoziomowym języku programowania, często np. w języku drabinkowym. Idealnie nadaje się do sterowania urządzeniami przemysłowymi, nie wymaga zbyt dużej ilości zewnętrznych układów elektronicznych etc, ale nie jest pozbawiony wad. Głównym problemem jest tutaj ogromne przywiązanie do marki. W większości wypadków, jak nie w każdym, PLC to rozwiązania mocno dedykowane, więc jeśli zaprojektowało się już całą platformę, osprzęt i oprogramowanie dla danej aplikacji wykorzystującej konkretny moduł PLC ciężko jest wykorzystać inny moduł. Jeśli producent w takim momencie zaprzestanie produkcji konkretnego modułu lub też, co gorsza, z jakiegoś powodu w ogóle wycofa się z rynku, to mamy poważny problem.
Jeśli mamy odrobinę szczęścia, to może okazać się, że dana firma wprowadziła do swojej oferty podobny, nowszy PLC, będący jego funkcjonalnym zamiennikiem - nie da się nim od tak po prostu zastąpić starego PLC, ale ma podobne możliwości, więc nie jest wymagane zbyt wiele pracy, aby podmienić moduł PLC. Identyczny problem jest z oprogramowaniem - jest ono pisane w oprogramowaniu dedykowanym do modułów danego producenta i danej rodziny PLC. Oznacza to, że w momencie wycofania wsparcia dla konkretnego PLC nasze oprogramowanie staje się zupełnie bezwartościowe. Z uwagi na te zależności wykorzystanie modułów PLC w seryjnie produkowanych urządzeniach jest problematyczne i co jakiś czas trzeba mierzyć się z takimi wyzwaniami jak opisane powyżej. Jeśli teraz dołożymy do tego wysoką cenę takich urządzeń, to nie ma co dziwić się, że wiele firm robi wszystko co możliwe aby z nich zrezygnować. Ale czy są jakieś alternatywy?
Jedną z takich alternatyw jest Arduino. Większość z nas zna je z hobbystycznych, amatorskich projektów, ale nie oznacza to, że nie może znaleźć zastosowania w profesjonalnych, złożonych systemach. Przed takim wyzwaniem postawił właśnie ten ekosystem autor artykułu. Postanowił on oprzeć kontroler systemu cyrkulacji tuszu w drukarce o moduły Arduino. Sprawne działanie tego modułu jest kluczowe dla długofalowego powodzenia w druku, a jednocześnie sterowanie nie jest aż tak bardzo złożone. System ma za zadanie sterować precyzyjnie podnoszeniem i opuszczaniem pięciu pojemników z tuszem, znajdujących się w drukarce, aby utrzymać stałe ciśnienie tuszy. Dodatkowo układ mierzy także temperaturę w układzie (trzeba dostosowywać do niej ciśnienie tuszy), informuje użytkownika o ewentualnych awariach jak i komunikuje się z operatorem. W takiej aplikacji doskonale sprawdzić by się mógł moduł PLC, jednakże Arduino okazało id być równie dobrym rozwiązaniem.
Na zdjęciu poniżej widzimy płytkę drukowaną dedykowaną do podłączenia pięciu zwykłych modułów Arduino.
Wraz z tworzeniem nowego systemu autor był coraz bardziej przekonany, że była to dobra decyzja. Autor wymienia kilka zasadniczych zalet wykorzystania Arduino, nawet w środowisku przemysłowym w gotowym, dedykowanym produkcie:
Bezpieczeństwo dostaw - nawet jeżeli firma Arduino zatrzyma produkcję swoich modułów i wycofa się z rynku, to wiele innych firm produkuje kompatybilne moduły, szczególnie że cały wszystkie moduły są w pełni otwarte. Co więcej, nawet gdyby coś miało zmienić się w projekcie, to łatwo zaprojektować można np. przejściówkę z nowego na stary pinout... istnieje też duża szansa, że zważywszy na ogromne środowisku ludzi pracujących z Arduino, taka przejściówka pojawiłaby się za grosze na rynku komercyjnym. Można z pewnością założyć, że tego typu moduł będzie dostępny tak długo, jak producent mikrokontrolera - Atmel (niedawno kupiony przez Microchipa - sprzedawać będzie ten układ. W najgorszym wypadku moduł kompatybilny z Arduino produkować można samodzielnie, cała dokumentacja jest dostępna.
Elastyczność - platforma Arduino jest niezwykle elastyczna. Od momentu zaprojektowania systemu kontroli ciśnienia tuszu JF Machines znalazło szereg dodatkowych zastosowań dla tych modułów w maszynie. Jednym z nich jest na przykład kontrola głównego silnika krokowego drukarki, co przydaje się aby np. manualnie wycofać papier z drukarki - w przypadku krótkich serii i drukowania niewielkiej ilości można wycofać zaczętą rolkę, dzięki czemu oszczędzić można kilka metrów bieżących dosyć drogiego papieru.
Łatwość łączenia z komputerem PC - Podstawą większości aplikacji jest kontrola jakiegoś systemu i komunikacja z zewnętrznymi urządzeniami, na przykład komputerem PC. Arduino sprawdza się w tym zakresie doskonale, ponieważ wyposażone jest standardowy port COM emulowany poprzez USB. Dzięki wysokopoziomowemu podejściu do komunikacji z tym systemem, jest to niezwykle proste i łatwe do implementacji, tak po stronie mikrokontrolera, jak i komputera PC. Dzięki temu możliwe było zaimplementowanie w urządzeniu wielu dodatkowych, przydatnych funkcji, pozwalających np. oszczędzać tusz.
Możliwość modyfikacji po instalacji - dzięki dużej elastyczności system ten można bardzo łatwo przeprogramowywać. Wyobraźmy sobie sytuację w której maszyna wymaga zmiany parametrów albo wprowadzenia poprawek w programie już po instalacji jej u klienta. W przypadku wykorzystania modułu PLC oznaczałoby to konieczność wizyty technika z laptopem i specjalnym kablem do programowania, co oznacza duże koszty, które ktoś musiałby ponieść. Jeśli wykorzystani Arduino, to nic nie stoi na przeszkodzie, aby po prostu wysłać do klienta nowy moduł zaprogramowany uaktualnioną wersją oprogramowania. Moduł jest na tyle tani, że koszt takiej operacji jest niemalże pomijalny, a dzięki temu np. aktualizacje softu wysyłać można po prostu pocztą, jako list polecony. Stare moduły Arduino mogą być odsyłane z powrotem do producenta systemu, albo utylizowane bądź po prostu wykorzystywane gdzieś, prze hobbystów, cieszących się z darmowego modułu

Niskie koszty - gdy rozmawia się z hobbystami na temat modułów Arduino często słyszy się przeciwny argument, tj. że moduły te są drogie. Jest to poniekąd prawda, bo jeśli chodzi o koszt zakupu modułu i wykorzystywanie go do jednostkowo projektowanych urządzeń, to jest on wysoki, aczkolwiek - raczej taniej sami tego nie zrobimy. Jednakże jeśli porównujemy koszty modułu Arduino z kosztem sterownika PLC, to zasadniczo koszty tego pierwszego są zerowe.
Oczywiście, te wszelkie zalety to nie koniec - są też pewne problemy. Pierwszym z nich może być konieczność nauki nowego środowiska programistycznego, co jest potrzebne tak do stworzenia aplikacji jak i jej późniejszego modyfikowania i utrzymywania. Na szczęście Arduino IDE jest bardzo prostym pakietem, a wykorzystywany w nim język jest uproszczoną wersją C++, co znacznie ułatwia naukę i korzystanie z całego ekosystemu.
Kolejnym problemem jest kontrola wersji kodu. W zakresie takim jak pracuje JF Machines, to znaczy maszyn dopasowanych do zamówienia od konkretnego użytkownika jest to o tyle problematyczne, że kusi, aby każda wersja kodu dla każdego klienta była osobnym forkiem kodu, jednakże - analogicznie jak w przypadku sprzętu - utrzymanie tak złożonej struktury systemu kontroli wersji nastręcza wielu problemów. Było to oczywiście nie mniejszym problemem w przypadku modułów PLC - tam dodatkowo dochodził problem tego, że poszczególne moduły PLC wykorzystują własne, dedykowane rozwiązania programistyczne, co oznacza, że ich programy nie są przenaszalne. Zaleta używania C w Arduino jest to, że jest to standardowy język, którego kod jest przenaszalny. Pozwala to stosować typowe systemy kontroli wersji, takie jak np. Git, aczkolwiek nie można przesadzić z rozbudowanym drzewem wersji...
Podsumowanie
W przypadku prezentowanego powyżej projektu Arduino sprawdziło się idealnie. Jedynym problemem była konieczność nauczenia się nowego środowiska do programowania i nowego "ekosystemu", ale przyniosło to ogromne zyski. W takim zastosowaniu - zaawansowanym technicznie, ale o niskim wolumenie produkcji - Arduino sprawdza się idealnie, gdyż pozwala na stworzenie taniego i elastycznego rozwiązania, dzięki wykorzystaniu gotowej i uniwersalnej platformy, która już dawno sprawdziła się w działaniu. Pozwoliło to istotnie zredukować koszty i nakład prac na opracowanie układu.
Jeśli chcecie wypowiedzieć się na temat oryginalnego artykułu możecie skomentować go na Reddicie lub Hackaday, gdzie wywiązała się burzliwa dyskusja na temat użytkowania Arduino w systemach przemysłowych. Możecie też komentować poniżej - czy Aurdino rzeczywiście sprawdza się w takim zastosowaniu jak zaprezentowano powyżej?
Źródło: https://www.paulfurley.com/arduino-isnt-just-for-hackers/
Cool! Ranking DIY