Elektroda.pl
Elektroda.pl
X
Metal Work Pneumatic
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Nie używaj Arduino w zastosowaniach profesjonalnych!

ghost666 08 Wrz 2017 18:31 12582 58
  • Każdy z nas widział lub korzystał kiedyś z Arduino. Wszyscy hobbyści bardzo je lubią i nie ma co się dziwić - moduły te bardzo łatwo jest opanować i nawet ktoś, kto nigdy nie miał do czynienia z systemami wbudowanymi, może w chwilę nauczyć się je programować i zbudować w oparciu o Arduino coś na prawdę ciekawego. Ekosystem Arduino pozwala w prosty i przyjemny sposób nauczyć się projektowania i budowania takich systemów... Problem pojawia się jednak w momencie, gdy ktoś chce wykorzystać elementy tego ekosystemu do projektowania urządzeń komercyjnych.
    Wiele osób zachęca, aby korzystać z Arduino w środowisku produkcyjnym. To bardzo, bardzo, bardzo zły pomysł. Dlaczego nie powinno się tak robić? Istnieje szereg podstawowych przyczyn - zapoznamy się z nimi w poniższym tekście.

    Po pierwsze - Arduino IDE, wbrew temu co mogliście słyszeć, nie jest darmowe. Oprogramowanie to jest dystrybuowane na licencji GPL, oznacza to, że aby móc legalnie z niego korzystać, trzeba cały tworzony kod publikować za darmo np. w sieci. Jest to dokładnie opisane w licencji tego środowiska, ale także w Arduino FAQ, gdzie czytamy:
    "Środowisko to nie jest darmowe do zastosowań komercyjnych, no chyba że publikuje się wszystkie kody tak, aby każdy mógł odtworzyć nasz program. Oczywiście dotyczy to tylko samego IDE i standardowych bibliotek. Inne biblioteki, jakie wykorzystamy w naszym projekcie, mogą być dystrybuowane na jeszcze innej zasadzie, dlatego bardzo nierozsądnym jest wykorzystywanie Arduino IDE do rozwijania komercyjnych aplikacji, bez wcześniejszego sprawdzenia poszczególnych licencji".
    Ale ok, załóżmy że to nam nie przeszkadza - i tak chcieliśmy dystrybuować kod jako GPL, albo publikować go w sieci lub też może po prostu w jakiś inny sposób on do sieci wyciekł... Jednakże, to nie wszystko. Jest jeszcze szereg kolejnych argumentów.

    Bardzo często mówi się, że Arduino jest dobre dla początkujących. Jasne, każdy, kto nie umie programować z chęcią usiądzie do takiej okrojonej platformy i będzie w stanie rozwijać aplikację w oparciu o ten system. Jednakże każdy bardziej doświadczony deweloper przyzna nam, że np. debugger nie jest jedynie dodatkową, przydatną funkcją, a krytycznym narzędzie, wykorzystywanym podczas tworzenia oprogramowania dla systemu wbudowanego.
    Brak funkcjonalnego debuggera w środowisku Arduino jest ogromnym argumentem, aby nie brać go nazbyt na poważnie. Oczywiście, można do układu takiego dołączyć zwykły debugger, ale taka operacja sprawi, że nie będziemy już egzystować w tym ekosystemie. Wykorzystywanie funkcji print() jako jedynej metody quasi-debugowania systemu jest niezwykle ułomne... A poza tym drukowanie na jakiekolwiek wyjście danych w czasie pracy programu zmienia zależności czasowe w systemie, więc raz umieszczone, będą musiały tam zostać na zawsze, co uczyni urządzenie znacznie podatniejszym na hackowanie (o ile jest w ogóle taka konieczność - kod źródłowy jest przecież jawny i publiczny, nie?).

    Język używany w środowisku Arduino to jedynie niewielki wycinek C++. Oznacza to, że nie możemy np. budować klas - środowisko mocno do tego zniechęca, a jest to najlepsza metoda na tworzenie testów jednostkowych kodu. Struktura projektu i poszczególnych plików źródłowych oraz zależności między nimi utrudniają utrzymywanie wielu wersji projektu. Można oczywiście umieścić nasz kod w bibliotece, jednakże oznacza to konieczność wielokrotnego przeładowywania IDE i utrzymywanie bardzo nietypowego środowiska kontroli wersji.
    A może znacie jakieś inne, lepsze metody integracji Arduino IDE z systemem kontroli wersji? Opiszcie na forum jak (i czy) sobie z tym radzicie. Tak czy inaczej - system kontroli wersji w żaden sposób nie jest wbudowany w to środowisko i programistom - szczególnie początkującym - ciężko jest wyrobić sobie dobre nawyki związane z kontrolą wersji, testami jednostkowymi itp.
    Samego IDE nie ma co komentować - jest jakie jest: proste i przez to idealne dla początkujących. Brakuje w nim systemów sprawdzania składni, autouzupełniania itp. funkcji, które posiada każde 'duże' środowisko, a co mogłoby rozpraszać początkujących. Oczywiście, można połączyć Arduino z dowolnym innym edytorem, posiadającym te funkcje, ale czy nie jest to argumentem przeciwko Arduino jako IDE?

    Kolejnym problemem jest czynnik ekonomiczny - moduły z ekosystemu Arduino są drogie, a ponadto bardzo energochłonne z uwagi na wbudowane oprogramowanie do wgrywania projektów itp. Oczywiście są wersje jak Arduino Pro, które programuje się zewnętrznym programatorem, jednakże nie jest to typowa ścieżka. Flagowe moduły - jak Arduino UNO z ATMega328 są bardzo drogie jak na oferowane możliwości. Planowanie, że zredukuje się koszty systemu później, po stworzeniu aplikacji, nie jest za dobrym rozwiązaniem w systemach przeznaczonych do komercjalizacji.

    Wbudowane w środowisko biblioteki są bardzo niewydajne, gdyż tworzono je pod kątem uniwersalności - mają pracować na każdej płytce z ekosystemu, a nie pod kątem wydajności. Oczywiście, można argumentować, że obecne procesory są coraz wydajniejsze, mają więcej przestrzeni na kod etc., jednakże finalnie wykorzystanie 'nadmiarowych' układów zwiększa koszty systemu - jeśli marnujemy ogromne ilości mocy obliczeniowej, to dlaczego by nie zastosować słabszego mikrokontrolera, który jednocześnie jest tańszy?

    Finalnie, warto zwrócić uwagę na to, że Arduino nie pokazuje plików list oraz map. Są one ukryte, a są potrzebne do wprowadzania układu do produkcji. Oczywiście, można je wyekstrahować ze środowiska, ale nie jest to proste. Pliki list i map potrzebne są do zdobycia informacji o optymalizacji prowadzonej przez kompilator i oceny zużycia zasobów przez projekt. Jeśli projektujemy system komercyjny, to staramy się dobrać układ, który zapewnia tyle i tylko tyle, ile jest potrzebne, a nie dobieramy nadmiarowy układ jak w projektach hobbystycznych.

    Arduino oczywiście może być fantastycznym narzędziem do produkcji systemów demonstracyjnych dla publiki, czy jako układ do tworzenia szybkich, wewnętrznych prototypów czy testów pewnych rozwiązań. W tych aplikacjach świetnie się sprawdza, ale jeżeli chcemy zastosować je w komercyjnym produkcie - lepiej tego nie róbmy.

    Istnieje też szereg alternatyw. Jeśli chcemy mieć prosty system z dużą ilością bibliotek, ale lepszym kompilatorem, to zainteresujmy się np. płytkami mbed. Finalnie, najlepiej jest nauczyć się mikrokontrolerów STM32, dzięki wykorzystaniu HAL (warstwa abstrakcji sprzętowej) i dosyć prostemu systemowi konfiguracji (CubeMX) tworzenie takich projektów jest bardzo proste. (Jeśli dodatkowo wykorzystamy IDE takie jak Keil, które posiada wbudowane wsparcie dla CubeMX dla STM32 możemy cały projekt skonfigurować i opisać w łatwy sposób w jednym programie - przyp.red.).

    W przemyśle istnieje wiele ścieżek - trudniejszych i łatwiejszych, niektóre równie proste jak Arduino, a z pewnością mniej problematyczne w zastosowaniach komercyjnych jak Arduino.

    Źródło: http://embedded.fm/blog/2017/8/12/dont-use-arduino-for-professional-work


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
  • Metal Work Pneumatic
  • #2 08 Wrz 2017 18:56
    lekto
    Poziom 35  

    ghost666 napisał:
    Oprogramowanie to jest dystrybuowane na licencji GPL, oznacza to, że aby móc legalnie z niego korzystać trzeba cały tworzony kod publikować za darmo np. w sieci.

    Na pewno tak jest? Już piszę o co mi chodzi (jak gdzieś się pomyliłem to mnie poprawcie). Napisaliśmy program na Arduino, kompilujemy go w Arduino IDE, Arduino IDE używa avr-gcc do skompilowania źródła do pliku obiektowego i linkowania z biblioteką standardową. Avr-gcc jest na licencji BSD, a kompilacja kompilatorem na licencji BSD nie zobowiązuje nas do publikacji źródeł programu. Dopiero linkowanie z biblioteką standardową może nas zmusić do publikacji pliku, który jest linkowany z biblioteką. Czy imo jesteśmy zobowiązani do udostępnienia plików obiektowych, ale nie źródeł programu.

  • #3 08 Wrz 2017 21:24
    japycz321
    Poziom 25  

    Tytuł artykułu w sam raz na nagłówek brukowca :D

    Ale przechodząc do samej treści, dla mnie brzmi to mniej więcej tak: "nie używaj wiertarki z biedronki jeśli masz firmę zajmującą się wykonywaniem otworów głębinowych"...
    Arduino jakie jest każdy wie, i do jakiej grupy użytkowników jest skierowane też. Myślę że główną idea nie było stworzenie narzedzia które bedzie się nadawało do wykorzystania w przemyśle przez ludzi zajmujących się tym na codzień, tylko urządzenia dla majsterkowiczów, czy ludzi którzy szukają prostego rozwiązania dla ich nieskomplikowanych problemów. Jeśli chce stworzyć sobie urządzenie składające się z czujnika i elementu wykonawczego jak np tranzystor to nie muszę do tego kupować programatora, instalować rozbudowanego środowiska programistycznego z debuggerem, konfigurować itd. Sciągam kilka MB, instaluje, podłączam płytkę, pisze kilka linijek kodu, wgrywam i działa. Do tego własnie jest arduino i w tym sprawdza się idealnie

    ghost666 napisał:
    Jednakże każdy bardziej doświadczony deweloper przyzna nam, że np. debugger nie jest jedynie dodatkową, przydatną funkcją, a krytycznym narzędzie, wykorzystywanym podczas tworzenia oprogramowania dla systemu wbudowanego.

    Może tak może nie. Wszystko zależy od tego co chcemy zrobić. Nie każde nawet komercyjne urządzenie musi być bardzo skomplikowane i złożone. Oczywiście takie nieskomplikowane rozwiązanie każdy może zrobić sam, ale nie każdy ma ochotę, czas, chęci czy wiedzę do tego. Wiele osób woli zapłacić i dostać coś co po prostu działa i jest ładnie zapakowane. A skoro da się osiągnąć to szybko, prosto i tanio dzięki arduino to czemu nie.

    ghost666 napisał:
    Finalnie, najlepiej jest nauczyć się mikrokontrolerów STM32,

    I znowu, może tak może nie. Dla jednego będą to układy FPGA, dla innych Rasppery, wszystko jak zwykle zależy od zastosowania i wymagań.

  • Metal Work Pneumatic
  • #4 08 Wrz 2017 21:56
    ostrytomasz
    Poziom 22  

    ghost666 napisał:
    Po pierwsze - Arduino IDE, wbrew temu co mogliście słyszeć, nie jest darmowe. Oprogramowanie to jest dystrybuowane na licencji GPL, oznacza to, że aby móc legalnie z niego korzystać trzeba cały tworzony kod publikować za darmo np. w sieci.


    Dzwonią ale nie w tym kościele, połowa przekręcona jeżeli to miało być tłumaczenie. Nie ma znaczenia na jakiej licencji jest narzędzie, istotne jest to co zostanie zlinkowane i podlegać będzie dystrybucji.
    Arduino (moim zdaniem) słabo nadaje się do zastosowań komercyjnych ale z innego względu - biblioteki mikrokontrolerów są na licencji LGPL co oznacza że trzeba dać odbiorcy możliwość ich wymiany czyli w praktyce pliki obiektowe z których może zlinkować sobie projekt. Do tego dochodzi bootloader, większość bootloaderów dystrybuowanych jako część arduino jest na licencji GPL i to może wymusić tę licencję, ale bootloader można po prostu usunąć - nie wiem czy to ciągle będzie można nazwać "arduino" czy już nie.

    lekto napisał:

    Avr-gcc jest na licencji BSD, a kompilacja kompilatorem na licencji BSD nie zobowiązuje nas do publikacji źródeł programu.


    AVR-GCC jest na licencji GPL. Znowu, nie ma to znaczenia. Avr-libc jest na licencji BSD-like. Problem jest w tym że linkowane są biblioteki arduino.

  • #5 08 Wrz 2017 22:25
    krzbor
    Poziom 16  

    Coś tu się chyba nie zgadza. Arduino jest na licencji GPL - oznacza to, że nie możesz zrobić klona Arduino IDE z zamkniętym kodem, a tym bardziej go sprzedawać. Nie dotyczy to jednak wyprodukowanego kodu! Podobnie jak GIMP nie zabroni ci sprzedaży obrazka, który w tym programie obrobiłeś. Podobnie z bibliotekami - są przeważnie na licencji LGPL - nie możesz ich "zamknąć" ani dystrybuować jako swój produkt (czyli jako bibliotekę). Możesz jednak nie udostępniać źródeł gotowego projektu, który został skompilowany i wgrany na procesor. Jeśli jednak w ramach projektu poprawiłeś bibliotekę LGPL to powinieneś ją udostępnić.

  • #7 08 Wrz 2017 23:07
    drobok
    Poziom 29  

    To działa na odwrót, możesz sprzedać nawet bez żadnej modyfikacji o ile udostępnisz kod.
    https://www.gnu.org/licenses/gpl-faq.html#GPLCommercially

    A co do arduino, nikt nikomu nie broni. Dopóki klientowi nie przeszkadza i działa to ok. Jak przestanie ze względu na kiepskie źródła i wszystko wróci na serwis to się zacznie płacz ;)

  • #8 08 Wrz 2017 23:11
    ghost666
    Tłumacz Redaktor

    Macie racje - w źródłowym artykule był tylko fragment FAQ Arduino, pozwolę sobie więc przetłumaczyć dodatkowy kawałek:

    Czy można używać Arduino w komercyjnym urządzeniu?

    Tak, ale pod pewnymi warunkami:

    * Fizyczne umieszczenie modułu Arduino w komercyjnym urządzeniu nie wymaga opisania, że korzystało się z otwartych materiałów.
    * Oparcie swojego projektu na projekcie Arduino, jaki udostępniony jest w plikach Eagle nba stronie projektu wymaga uwolnienia tych plików na takiej samej licencji (Creative Commons Attribution Share-Alike) naszego projektu.
    * Wykorzystanie bibliotek Arduino jako firmware komercyjnego urządzenia nie wymaga uwolnienia kodów źródłowych naszej aplikacji. Jednakże licencja LGPL wymaga, aby pliki obiektowe były udostępniane, tak aby możliwe było linkowanie ich z np. kolejnymi wersjami bibliotek Arduino. Wszelkie zmiany w bibliotekach Arduino udostępniane muszą być na licencji LGPL.
    * Kod źródłowy środowiska Arduino IDE objęty jest licencją GPL, która zezwala na modyfikację i redystrybucję, pod warunkiem zachowania takiej samej otwartej licencji finalnego produktu. Jednakże licencja ta zasadniczo nie zabrania sprzedaży wyników korzystania z takiego oprogramowania czy wykorzystania go w komercyjnych produktach.

    Źródło: https://www.arduino.cc/en/Main/FAQ#toc10

    Co do wiertarek z Biedronki - jasne, ale wiele osób zachęca do korzystania z Arduino w komercyjnym sprzęcie :O

    Dodano po 1 [minuty]:

    wniedzie napisał:
    Autor pisze o Arduino jako o niepodzielnej całości (sprzęt + IDE). Myślę, że warto jednak rozgraniczyć jedno od drugiego. Można korzystać z płytki Arduino, ale IDE wziąć dowolne.


    Płytka Arduino, bez Arduino (w sensie IDE i wbudowanego w MCU firmware/bootloadera) przestaje być częścią ekosystemu Arduino... ot co.

  • #9 08 Wrz 2017 23:12
    PiotrPitucha
    Poziom 33  

    Witam
    Nie mogłem przeczytać całego tekstu bo mnie skręca....
    Zbiór bzdur, nawet jeśli jakaś uwaga jest słuszna to niknie w ciągu nieuzasadnionych zarzutów, wyciągam wniosek, że konkurencja wypuści na rynek jakąś płytkę i robi sobie pole....
    Tak z brzegu... UNO jest bardzo drogie, fakt za godzinę pracy na zachodzie można kupić tylko 5 sztuk UNO a w Szwajcarii za płacę minimalną godzinową tylko 10 sztuk.
    Wersja PRO wymaga specjalistycznego programatora.... tak prawda, wymaga konwertera USB/serial chyba że się ma serial w komputerze, czy konwerter jest specjalistycznym programatorem? mocno powątpiewam.
    Nie doczytałem czy do zrobienia czegokolwiek sensownego trzeba Intela I7... ale przypominam że cały sprzęt Apollo lądującego na księżycu miał mniejszą moc obliczeniową niż jedno UNO, jeszcze jak się go zaprogramuje w assemblerze to okaże się że można prawie wszystko...
    Szkoda pracy naszego drogiego ghost666, artykuł rzeczywiście rodem w bulwarówki.
    Pozdrawiam

  • #10 08 Wrz 2017 23:20
    ghost666
    Tłumacz Redaktor

    PiotrPitucha napisał:
    Witam
    Nie mogłem przeczytać całego tekstu bo mnie skręca....
    Zbiór bzdur, nawet jeśli jakaś uwaga jest słuszna to niknie w ciągu nieuzasadnionych zarzutów, wyciągam wniosek, że konkurencja wypuści na rynek jakąś płytkę i robi sobie pole....
    Tak z brzegu... UNO jest bardzo drogie, fakt za godzinę pracy na zachodzie można kupić tylko 5 sztuk UNO a w Szwajcarii za płacę minimalną godzinową tylko 10 sztuk.
    Wersja PRO wymaga specjalistycznego programatora.... tak prawda, wymaga konwertera USB/serial chyba że się ma serial w komputerze, czy konwerter jest specjalistycznym programatorem? mocno powątpiewam.
    Nie doczytałem czy do zrobienia czegokolwiek sensownego trzeba Intela I7... ale przypominam że cały sprzęt Apollo lądującego na księżycu miał mniejszą moc obliczeniową niż jedno UNO, jeszcze jak się go zaprogramuje w assemblerze to okaże się że można prawie wszystko...
    Szkoda pracy naszego drogiego ghost666, artykuł rzeczywiście rodem w bulwarówki.
    Pozdrawiam


    Co do kosztów - Arduino Uno kosztuje jakieś 95 zł. Za te pieniądze mam 10 razy tyle o wiele mocniejszych STMów na przykład... Nie chcę bronić autora artykułu, ani samego tekstu - specjalnie wrzuciłem go, aby wywołać trochę poruszenia, ale pewne tezy są nie bez sensu - jak właśnie ta o cenie.

  • #11 09 Wrz 2017 02:52
    pawelr98
    Poziom 36  

    Kto dzisiaj kupuje oryginalne arduino ?

    Klon nano na aliexpressie to ok.5zł kosztuje. Tylko sama zaprogramowana Atmega 328P na płytce z wyprowadzeniami. Trzeba mieć RS232 oraz osobne zasilanie.

    Mój klon nano mogę też programować bezpośrednio(tj. programować atmegę). Zwykła atmega328P z wgranym bootloaderem arduino + kostka USB<->RS232 + stabilizator LM1117 5V. Dałem za to nieco ponad 10zł.

    Dla niektórych bowiem taki klon nano za parę zł będzie po prostu ułatwieniem bo mamy od razu płytkę, stabilizator czy łącze przez USB. A zaprogramować i tak można "na boku" z ominięciem arduino IDE.

  • #13 09 Wrz 2017 08:25
    leonow32

    Poziom 30  

    Arduino to magia marketingu :)

    Ale do komercyjnych zastosowań się nie nadaje, chyba że ktoś odważy się dać klientowi 2-letnią gwarancję na zabawkę. Arduino jest montowane masowo w 1 klasie IPC (przemysłówka ma 2 klasę, automotive ma 3 - są to bardzo wysokie standardy niezawodności). Nie ma żadnego coatingu chroniącego przed wilgocią czy utlenianiem. Nie ma także numerów seryjnych, więc producent nie jest w stanie określić, w jakich warunkach urządzenie było produkowane i czy nie pochodzi z jakiejś podejrzanej serii. Np w przypadku automotive każdy produkt ma unikalny nr seryjny, w którym jest zapisana cała historia produkcji. Ciekawi mnie też w jaki sposób Arduino jest testowane - dam sobie rękę uciąć, jeśli jest wykonywany test hot-cold. Porównajcie sobie sami ile jest test pointów na płytce arduino a ile w komputerach przemysłowych.

    Tak więc stosowanie zabawki w rozwiązaniach komercyjnych jest oczywiście dozwolone :) pamiętać trzeba tylko na kim ciąży odpowiedzialność za szkody wyrządzone przez wadliwie działające urządzenie.

  • #14 09 Wrz 2017 09:48
    PiotrPitucha
    Poziom 33  

    Witam
    ghost666 napisał:

    Cytat:
    Co do kosztów - Arduino Uno kosztuje jakieś 95 zł. Za te pieniądze mam 10 razy tyle o wiele mocniejszych STMów na przykład...

    Ustalmy szanowni panowie, że porównujemy ceny od tych samych dystrybutorów.
    U mnie w mieście kupię Arduino a nie kupię STM, to znaczy nie leży on na półce i sprowadzą mi go doliczając przesyłkę....
    ghost666, skoro Uno według Ciebie kosztuje 95zł a u mnie w mieście 45zł to proponuję że Ci sprzedam po 60zł i obaj zarobimy.
    Przyjmijmy jedno źródło zaopatrzenia najczęściej stosowane, Ali.... i okaże się że ceny są bardzo zbliżone, ba, nawet okaże się ze znajdziemy płytki Arduino STM i tu dochodzimy do sedna sprawy, czy do migania LEDami wystarczy 64KB pamięci i zegar 72MHz, a do sterowania silnikiem krokowym ......
    Czy Atmega328 jest robiona w fabryce tak by miała mniejszą niezawodność jak STM? Nie popadajmy w skrajności, układy padają głównie przez projektantów, sztuka projektowania zupełnie zanika, gdyby konstruktorzy zachowywali podstawowe zasady to procesory by nie padały.
    Profesjonalne zastosowania Atmegi?, bardzo proszę, w automatyce i pomiarach elektrowni gazowej dziesiątki mierników ciśnienia pracujących w pętli prądowej na procesorze Atmega8P, zejdźmy niżej bardzo odpowiedzialne zastosowanie w respiratorze noworodkowym Sechrist procesor 8085 ( pamięta to ktoś jeszcze? ).
    Wracając do meritum, odpowiedni procesor do wymagań ( prędkość, pobór prądu itd. ) a na koniec znajomość oprogramowania przez programistę.
    Pozdrawiam

  • #15 09 Wrz 2017 10:43
    ghost666
    Tłumacz Redaktor

    PiotrPitucha napisał:
    Witam
    ghost666 napisał:
    Cytat:
    Co do kosztów - Arduino Uno kosztuje jakieś 95 zł. Za te pieniądze mam 10 razy tyle o wiele mocniejszych STMów na przykład...

    Ustalmy szanowni panowie, że porównujemy ceny od tych samych dystrybutorów.

    U mnie w mieście kupię Arduino a nie kupię STM, to znaczy nie leży on na półce i sprowadzą mi go doliczając przesyłkę....

    ghost666, skoro Uno według Ciebie kosztuje 95zł a u mnie w mieście 45zł to proponuję że Ci sprzedam po 60zł i obaj zarobimy.
    Przyjmijmy jedno źródło zaopatrzenia najczęściej stosowane, Ali.... i okaże się że ceny są bardzo zbliżone, ba, nawet okaże się ze znajdziemy płytki Arduino STM i tu dochodzimy do sedna sprawy, czy do migania LEDami wystarczy 64KB pamięci i zegar 72MHz, a do sterowania silnikiem krokowym ......
    Czy Atmega328 jest robiona w fabryce tak by miała mniejszą niezawodność jak STM? Nie popadajmy w skrajności, układy padają głównie przez projektantów, sztuka projektowania zupełnie zanika, gdyby konstruktorzy zachowywali podstawowe zasady to procesory by nie padały.
    Profesjonalne zastosowania Atmegi?, bardzo proszę, w automatyce i pomiarach elektrowni gazowej dziesiątki mierników ciśnienia pracujących w pętli prądowej na procesorze Atmega8P, zejdźmy niżej bardzo odpowiedzialne zastosowanie w respiratorze noworodkowym Sechrist procesor 8085 ( pamięta to ktoś jeszcze? ).
    Wracając do meritum, odpowiedni procesor do wymagań ( prędkość, pobór prądu itd. ) a na koniec znajomość oprogramowania przez programistę.
    Pozdrawiam


    A ja tylko przypominam - mówimy o zastosowaniach profesjonalnych, produkcyjnych. Jak rozumiem jak pójdę do sklepu u Ciebie w mieście i poproszę o 1000 Arduino, to ktoś mi je przyniesie z zaplecza i git?

    Źródło zaopatrzenia dla firm, to nie Aliexpress bo a) nie wystawa faktur, b) strasznie długo czeka się na przesyłkę. Firmy kupują z Mousera, Farnella czy TME.

  • #16 09 Wrz 2017 10:55
    krzbor
    Poziom 16  

    Tylko kto używa Arduino UNO czy nawet nano w komercyjnym sprzęcie? Do tego można użyć Arduino Pro mini w cenie 1.4$ (z darmową wysyłką). Ja osobiście z Arduino IDE programuję ESP-12 i ESP-01, które nie mają w nazwie "Arduino". O Arduino Pro Mini czytamy: "This board was developed for applications and installations where space is premium and projects are made as permanent set ups. Small, available in 3.3 V and 5 V versions, powered by ATmega328"

  • #17 09 Wrz 2017 12:26
    JacekCz
    Poziom 36  

    dla mnie głównym argumentem jest statystycznie słabiutki programista "aplikacji końcowej", oraz słabiutki projektant-programista "bibliotek". Większość z nich jest testowana (???) tylko w pewnej charakterystycznej konfiguracji jaka akurat się zdarzyła twórcy, zerowa dokumentacja *) . Prawie zawsze nie uzywa potencjału jaki daje język do separacji ("biblioteki" się kłócą)

    Sama koncepcja "płytki" jako KOPII oprogramowania (jakże często w starej, chorej wersji - nawet String potrafił być zupełnie inny) a nie modułu poszerzającego do części centralnej, to jest chore.

    System powstał dla edukacji, hobbystów, projektów na jeden wieczór itd.. . i FATALNIE jest zaprojektowany z punktu widzenia inżynierii "korporacyjnej"

    tyle od aktywnego softwarowca, zgadzam się w wypowiedziami "sprzętowymi".

    Aha, "wstepniak " o licencji to jakaś dziennikarska wierszówka aby promowac sensację. Istnieje temat licencji, ale to nie wygląda tak, jak w pierwszym poście (wiele z waszych odpowiedzi analizuje to prawidłwo)


    *) noty Atmela, STM itd są nudne, szczegółowe, wymagają wyższej koncentracji i wiedzy aby z tego skorzystać (czasem promują średniowieczny styl pisania w C) - ale są.

  • #18 09 Wrz 2017 12:44
    PiotrPitucha
    Poziom 33  

    Witam

    Cytat:
    A ja tylko przypominam - mówimy o zastosowaniach profesjonalnych, produkcyjnych. Jak rozumiem jak pójdę do sklepu u Ciebie w mieście i poproszę o 1000 Arduino, to ktoś mi je przyniesie z zaplecza i git?


    Mylimy produkcję profesjonalną z produkcja masowo, ta pierwsza nie musi być masowa a ta druga profesjonalna... Są ludzie którzy produkują dla jakiejś niszy usługowej maszyny do produkcji pieczątek ( przykład z powietrza ) i potrzeba tego maksymalnie kilkaset na cały kraj.

    Cytat:
    Źródło zaopatrzenia dla firm, to nie Aliexpress bo a) nie wystawa faktur, b) strasznie długo czeka się na przesyłkę. Firmy kupują z Mousera, Farnella czy TME.


    Alibaba wystawia faktury, Aliexpress chyba też, przy następnym zamówieniu się przyglądnę.
    Jak się chce mieć darmową wysyłkę to się czeka, jak się robi duże zamówienie to się opłaca dać za DHL czy Fedex i mamy paczkę błyskawicznie, na dodatek firmy o stabilnej produkcji mogą planować dostawy i wtedy miesiąc nie jest problemem.
    Firmy w sytuacji podbramkowej kupują z Mousera cz Farnella albo z TME, przy bardzo dużej produkcji negocjuje się z producentami a nasi dystrybutorzy mają znośne bo kupują na Alibaba?
    Pozdrawiam

  • #19 09 Wrz 2017 12:47
    JacekCz
    Poziom 36  

    PiotrPitucha napisał:


    Alibaba wystawia faktury, Aliexpress chyba też, przy następnym zamówieniu się przyglądnę.
    Jak się chce mieć darmową wysyłkę to się czeka, jak się robi duże zamówienie to się opłaca dać za DHL czy Fedex i mamy paczkę błyskawicznie, na dodatek firmy o stabilnej produkcji mogą planować dostawy i wtedy miesiąc nie jest problemem.
    Firmy w sytuacji podbramkowej kupują z Mousera cz Farnella albo z TME, przy bardzo dużej produkcji negocjuje się z producentami a nasi dystrybutorzy mają znośne bo kupują na Alibaba?
    Pozdrawiam


    TZw "wprowadzanie do obrotu" czyli m.in. procedura celna jest kłopotliwa dla małych ilości. Usługa agencji celnej jest droższa niż cło (VAT się płaci jedną ręką i odlicza drugą)

  • #20 09 Wrz 2017 12:53
    lemgo
    Poziom 12  

    avr-gcc to jest pełne C++, w pełni wspiera C++11, niektóre konstrukcje z C++14 również.

  • #21 09 Wrz 2017 13:52
    JacekCz
    Poziom 36  

    lemgo napisał:
    avr-gcc to jest pełne C++, w pełni wspiera C++11, niektóre konstrukcje z C++14 również.


    Nie cytujesz (a szkoda) i można domniemać do czego się odnosisz. W razie W skasuję.

    Jeśli do mnie - miałem na myśli że C++ od miliona lat ma namespace, ale "programiści bibliotek arduino" jeszcze tego nie przerabiali, wsztskie "biblioteki" są w głównym, i wiele innych. Potencjał jest, i tu nie mówimy o nowościach czy "nowościach", tylko o jego używaniu.

    Nie jest problem z "surowym" kompilatorem, tylko z "ekosystemem" czyli bardziej z ludźmi, tradycjami, wzorcami - z techniką tylko w części. Poziom przedszkolny, np "nie używaj zmiennych globalnych jak absolutnie nie musisz"

  • #22 09 Wrz 2017 14:23
    michał_bak
    Poziom 16  

    Myślę, że chodzi o zupełnie inną sprawę. Chodzi o to, że jest coraz więcej "bezpłatnych" rzeczy za które trzeba będzie słono zapłacić.
    Arduino jest tylko przykładem na to, że trzeba czytać licencje ze zrozumieniem, bo prawnicy znają się na takim czytaniu by zarobić na czym się da. I tu nie o wiedzę techniczną chodzi o o prawniczą.
    Co do samego sprzętu, to jako, że swoje lata mam, to pamiętam jak ZX Spektrum było wykorzystywane w bardzo poważnych instytucjach, w poważnych zastosowaniach.
    Można było wtedy, można i dziś, tyle, że prawnicy.......

  • #23 09 Wrz 2017 15:17
    MCbx
    Poziom 28  

    Arduino IDE wywodzi się z Processing. To jest środowisko niemal dla malarzy. To MA być proste - stąd wycieczki do /tmp by znaleźć plik .hex czy edycja plików tekstowych by skonfigurować inny chip w tej samej płytce. W innych mikrokontrolerach mamy chipa na biurku, jedną konfigurację/mapę w manualu, inną w nocie, inną w IDE a inną na defaultach, z tym, że żadna nie pasuje. Tego twórcy IDE chcieli uniknąć.

    Biblioteki Arduino są na tyle powolne, by nie używać ich do zastosowań w których czas reakcji jest krytyczny. DigitalWrite sprawdza wiele rzeczy przed zapisem bitu na port. Stąd debugowanie przez łącze często uchodzi o ile tylko umiemy definiować (by kontrolę szybko włączać i wyłączać) i nie wynosimy tego do urządzenia końcowego. Dodatkowo powiedzmy szczerze, jak chcemy zrobić na tej Atmedze np. GUI na dotykowym LCD zależne od pobieranych danych, albo wręcz generujemy sygnały wideo, to bierzemy assembler, innego wyjścia nie ma, bo nie wyrobimy się wydajnościowo z główną logiką programu.

    Umieszczanie całego np. Uno na płytce nie jest zbyt dobrym posunięciem, nawet w zastosowaniach amatorskich warto użyć po prostu AVRa, a płytkę pozostawić sobie do szybkiego prototypowania po wrzuceniu nowego chipu. Nie wiem kto robiąc płytkę umieszcza tam drugą, chyba że musi mieć to USB-RS.

    Co do GPL to prawo jedno, a rzeczywistość drugie. Żyjemy w czasach elektroniki "disposable", kupione urządzenie szybko się wyrzuca bo po miesiącu jest już przestarzałe i nikt się nim nie interesuje. Wiemy jak "skończyła się" sprawa eClicto. Jak firma jest duża to nie straszne jej łamanie GPL. Więc akurat to jest takie samo ostrzeżenie jak ta afera z rzekomą nielegalnością BIOSu komputerów PC w latach 90-tych. To może być użyte jak się np. ma wrogów, ale w polskim prawie znajdzie się wiele lepszych przysłowiowych kijów na kłopotliwego psa.

  • #24 09 Wrz 2017 17:22
    rb401
    Poziom 34  

    ghost666 napisał:
    Co do kosztów - Arduino Uno kosztuje jakieś 95 zł. Za te pieniądze mam 10 razy tyle o wiele mocniejszych STMów na przykład... Nie chcę bronić autora artykułu, ani samego tekstu - specjalnie wrzuciłem go, aby wywołać trochę poruszenia, ale pewne tezy są nie bez sensu - jak właśnie ta o cenie.



    Tyle że to wszystko teoria a praktyka bywa czasem inna. W niektórych wypadkach (małoseryjna produkcja drogich jednostkowo urządzeń), stówka za włoskie Arduino może być groszowym wydatkiem nie wartym uwagi.
    Np. na tyle groszowym że przy zmianie softu u klienta itp. serwisowych sytuacjach, wysyła się nowe zaprogramowane Arduino pocztą, a wyciągnięte z maszyny ofiarowuje się jakiemuś dziecku w pobliżu.

    Jedną z takich sytuacji opisuje ten bardzo ciekawy artykuł:


    Nie używaj Arduino w zastosowaniach profesjonalnych!

    arduino-isnt-just-for-hackers

    gdzie opinie samego producenta maszyny używającej Arduino wskazują bardzo konkretnie korzyści jakie on uzyskał.
    Myślę że to istotne uzupełnienie artykułu omawianego w tym wątku i tez w nim postawionych.

  • #25 09 Wrz 2017 18:24
    drobok
    Poziom 29  

    No i tu dochodzimy do meritum, za cenę arduino masz cyclone IV (płytkę ewaluacyjną, a nie sam scalak) który pociągnie ci kilkanaście takich drukarek na raz. Dokładam stm32f107, kostkę flasha i nawet tyłka z krzesła nie muszę ruszyć - po prostu wgrywam soft zdalnie. Całość poniżej 2arduino. Jak drukarka ma działać z dala od sieci dorzucam moduł gsm.

  • #27 10 Wrz 2017 04:00
    encore
    Poziom 17  

    W przypadku jak ktoś planuje produkcję urządzenia w oszałamiającej ilości powiedzmy 50 sztuk na rok to dla mnie jest oczywiste, że użycie Arduino Pro Mini jest logiczne.

    Przy takiej produkcji montaż elementów robi się ręcznie bo jak wiadomo koszty montażu maszynowego przy ilości powiedzmy 50 sztuk są gigantyczne. A tak to robisz prostą płytkę, jest szansa że uda się zaprojektować nawet płytkę drukowana jednostronną. Na taka płytkę wsadzasz moduł Arduino Pro Mini , szybko, łatwo , przyjemnie i tanio.

    Sporo osób zapomina, że jedna sprawa to wykonać projekt a całkiem co innego sprzedać urządzenie. Klient chce żeby pudełko działało i było tanie. Nie interesuje go co jest w środku.

    Podam realny przykład.
    Odczyt temperatury o określonych porach i wysłanie danych na telefon.
    Można to zrobić z zasadami sztuki profesjonalnie. Koszt projektu z dedykowanym oprogramowaniem powiedzmy (strzelam) 1000zł.

    Można to zrobić tak z Aliexpress bierzesz moduł Arduino pro Mini, moduł RTC ds3231, moduł GSM Sim800L, DS1820. Wszystko kosztuje w sumie może 10 dolarów (45 zł). Korzystasz z gotowych bibliotek, po co wymyślać koło na nowo i pisać własne do modułu Sim800L tylko po to żeby wysłać co godzinę krótki string?

    Przy niszach rynkowych i produkcjach w śladowych ilościach 50-100, 200 sztuk na rok nie wyobrażam sobie żeby nie korzystać ze gotowych modułów. Nie chodzi tylko o Arduino ale inne moduły też, na przykład moduły z ARM-ami.

    Technika to jedno a ekonomia to drugi.
    Kto nie będzie stosował się do tej prostej zasady to będzie kit z okien wcinał.

  • #28 10 Wrz 2017 04:37
    rb401
    Poziom 34  

    drobok napisał:
    za cenę arduino masz cyclone IV (płytkę ewaluacyjną, a nie sam scalak) który pociągnie ci kilkanaście takich drukarek na raz.


    Ale za parę lat ta płytka z Alterą (i wiele podobnych atrakcyjnych na dziś rozwiązań) zniknie z ofert a Arduino będzie wciąż dostępne. A to właśnie według producenta tych drukarek cechą najbardziej pożądaną. Tym bardziej że opisuje swoje negatywne doświadczenia z gotowymi PLC i polityką marketingową ich producentów, nagminnie wycofujących sprawdzone modele a wprowadzając w zamian nowe, niekompatybilne z poprzednimi.
    A Arduino mogło by praktycznie zająć miejsce w Sèvres, bo jest pewnym wzorcem, tym bardziej atrakcyjnym bo Open Source. Choć oczywiście wydajnościowo i technologicznie ustępuje wielu innym konstrukcjom (nawet od chwili swojego powstania). Ale skoro spełnia wymagania, to czemu nie skorzystać.

    Osobiście też rozumiem argument tego człowieka, bo też miałem do czynienia z sytuacjami gdy wyrób trzeba było przeprojektowywać, bo zaprzestano czegoś tam robić. I czas na przeróbki tak właściwie to czas stracony bo i tak cechy użytkowe zastawały bez zmian.

    krzbor napisał:
    Warto zobaczyć Arduino Pro mini pomyślane właśnie aby montować w urządzeniach "na stałe".


    Owszem, to Arduino aż się prosi by je wbudować ale nie jest niestety samodzielnym bytem jak Uno. Choćby to że potrzeba dodatkowego hardware by je zaprogramować itp. .



    A wracając do meritum wątku, w szczególności do apelu w jego tytule, to dorzucę tu ciekawostkę o tym że Siemens produkuje serię sterowników, które w zasadzie są obudowanym Arduino (co prawda nie na AVR) z możliwością wpięcia typowych shieldów, który można m.in. programować ze zwykłego IDE Arduino. Chodzi o serię SIMATIC IOT2000.

  • #29 10 Wrz 2017 08:52
    drobok
    Poziom 29  

    Nie jesteś w stanie zagwarantować, że za 10lat (lub więcej) arduino dalej będzie produkowane. . Mówisz o ide - urządzenie będzie inne. Tak samo wrzucam kod w inny scalak i tyle, a ktoś tak jak w wypadku arduino podmienia adresy peryferiów w bibliotece (dla proca) i pin planerze (dla fpga). Tyle, że ja to robie sam, mogę sobie wybrać platformę. A ty albo analizujesz jak zadziała biblioteka na danym scalaku by odwzorować ją na innym, albo liczysz na to że ktoś zrobi to za ciebie - i to w dodatku nie wiesz czy dobrze ;)

  • #30 10 Wrz 2017 09:23
    tronics
    Poziom 37  

    Cytat:
    Nie jesteś w stanie zagwarantować, że za 10lat (lub więcej) arduino dalej będzie produkowane

    Oczywiście, że nie. Wszystko zależy jak Microchip dane modele MCU AVR będzie klepał. Znikną mega2560 czy 328 to i bazujące na nich arduino zaczną znikać, prawda? Na innych układach już nie można mówić o "drop in replacement". Już teraz przecież mamy przynajmniej kilka inicjatyw... z jednej strony SAM w arduino due i zero, z drugiej STM32F103 w tanich płytkach formatu nano i Kinetis (w Teensy), a nawet gdzieś widziałem coś z PIC. I jasne jak słońce jest to, że będą pojawiać się produkty na tych MCU oprogramowane w Arduino IDE.