Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Arduino, Raspberry PI w przemyśle

dondu 29 Jun 2020 09:18 14994 188
Automation24
  • Automation24
  • #32
    Chris_W

    Level 39  
    Była już taka dyskusja na elektrodzie dość dawno temu, napisałem w niej, że za kilka lat będą przemysłowe klony amatorskich modułów - nie dlatego że one są dobre, ale z powodu wykorzystania zasobów ludzkich - całego pokolenia które się na tym uczy. Biznes ma w nosie kwestie techniczne, że coś jest słabsze, kapitał ludzki na dzień dzisiejszy odgrywa większą rolę i dopasują kwestie techniczne pod ludzi.
  • Automation24
  • #33
    _lazor_
    Moderator of Designing
    Pewnie zastosowanie będzie zależało od skali, jak w sumie wiele rzeczy. Ja się wypowiadam z skali produktów na rynek międzynarodowy i tym segmencie nie widzę by coś takiego jak arduino się przyjęło. W takiej skali firmy nie oszczędzają na kapitale ludzkim i na narzędziach bo jak pisałem wcześniej to jest koszt jednorazowy, który i tak jest wliczony w cenę produktu...
    Jak będzie jakiś branch arduino, który będzie ułatwiał certyfikowanie do SIL, wsparcie dla software in loop, hardware in loop, ogólnie wsparcia dla testów regresyjnych to powiem wtedy że jak najbardziej i sam się tym zainteresuję. Powyższe hasła są normalnymi rzeczami w rozwoju oprogramowania, jeśli programista uważa, że to tylko dziwne wymysłu i jemu są nie potrzebne to cóż, nie ma co traktować takiej osoby poważnie.
  • #34
    khoam
    Level 42  
    _lazor_ wrote:
    ogólnie wsparcia dla testów regresyjnych

    Nie ma żadnego problemu z przeprowadzaniem testów regresywnych w odniesieniu do programów wykorzystujących Arduino HAL. W PlatformIO jest stosowne wsparcie dla tego typu testów (używam) - od decyzji programisty zależy, czy skorzysta z tych narzędzi.
  • #35
    _lazor_
    Moderator of Designing
    Ciekawe czy rozumiemy tak samo testy regresyjne... Arduino udostępnia jakieś środowisko testowe, które pozwala na izolowanie poszczególnych funkcjonalności i napisanie dla nich testów i automatyczne zapuszczenie ich w celu weryfikacji czy w procesie iterowania oprogramowania nic nie zostało uszkodzone?

    Pikuś z komunikacją, bo tak jest najprostrza do testów, ale powiedzmy taki wyświetlacz w jaki sposób platforma pozwoli zweryfikować czy funkcja obsługująca wyświetlacz, wyświetla to co ma? Odpowiedź, że użytkownik na to popatrzy i już wie jest nie satysfakcjonująca, bo to katorga a nie testy regresyjne.
    Dość istotna sprawa by były automatyczne, gdyż nie chcemy by deweloper za każdą zmianą ręcznie przeprowadzał testy regresyjne, bo to człowieka doprowadzi do chorób psychicznych.
  • #36
    khoam
    Level 42  
    _lazor_ wrote:
    Ciekawe czy rozumiemy tak samo testy regresyjne... Arduino udostępnia jakieś środowisko testowe, które pozwala na izolowanie poszczególnych funkcjonalności i napisanie dla nich testów i automatyczne zapuszczenie ich w celu weryfikacji czy w procesie iterowania oprogramowania nic nie zostało uszkodzone?

    Sądzę, że rozumiemy pojęcie testów regresywnych tak samo, ale w dalszym ciągu upierasz się, że Arduino to jest jakieś zintegrowane środowisko deweloperskie. Nie, to jest platforma programistyczna, a w zasadzie framework w C++. Natomiast osobno są dostępne narzędzia do przeprowadzania testów czy symulacji programów, które ten framework wykorzystują. Zdaje sobie sprawę, że przez wiele lat narosło wiele mitów na temat pojęcia "Arduino" - niektórzy do dzisiaj uważają, że "Arduino" to po prostu ładna płytka z atmega328p, a programy to się pisze w "języku Arduino" z użyciem (jednego z najgorszych na świecie) Arduino IDE, a programy to są skecze. Nic na to nie poradzę.
  • #37
    _lazor_
    Moderator of Designing
    Ja nie widzę takiego arduino w swoich zastosowaniach, nawet tego co robię po godzinach w domu. Elementy jakie to oferuje są trywialne, a zaawansowane i tak trzeba realizować samodzielnie. Poświęcanie czasu na naukę tego jest moim zdaniem stratą czasu, ten czas można poświęcić np na naukę pisania unit testów w gtest...
  • #38
    dondu
    Moderator on vacation ...
    dasej wrote:
    Profesjonalista zrobiłby by porządnie, amator zrobi to na Arduino weźmie dużo niższą kasę i gościu który za to zapłacił będzie się z tym męczył nie wiedząc jak by to wyglądało gdyby to było zrobione porządnie przez fachowca.

    Ale zauważ, że to się właśnie zmienia. Skoro powstają platformy sprzętowo zbliżone do profesjonalnych, to może jednak należy dopuścić myśl, że "pokolenie Arduino" niechybnie doprowadzi do pewnych zmian na rynku w zakresie częśći przedsiębiorstw, o których pisałem wcześniej:

    dondu wrote:
    ... przemysł to nie tylko wielkie fabryki samochodów, ale także małe firmy, gdzie w szczególności liczą się niskie koszty implementacji i tani serwis za 3000zł, a nie za 13000zł miesięcznie. Mikro (96,2%), małe (2,8%) i średnie firmy (0,8%), to 99,8% wszystkich podmiotów prowadzących działalność w Polsce. Wytwarzają odpowiednio 31%, 8% i 11%, razem dokładnie 50% PKB.

    Zwraca na to uwagę także kol.:

    Chris_W wrote:
    ... za kilka lat będą przemysłowe klony amatorskich modułów - nie dlatego że one są dobre, ale z powodu wykorzystania zasobów ludzkich - całego pokolenia które się na tym uczy.

    Z drugiej strony Linux nie wyparł i nie zanosi się, by wyparł Windowsy, ale jakąś część rynku przejął.

    Ja tylko zwracam uwagę na to, że:
    - 10 lat temu, Arduino to była ciekawa nowinka dla amatorów,
    - z biegiem czasu sukcesywnie opanowała świat hobby i ...
    - ... aktualnie na uczelniach wyższych Arduino jest wykorzystywane w programie nauczania,
    - teraz zaczynają pojawiać się rozwiązania dedykowane dla przemysłu,
    - ... naturalnym więc krokiem jest, że mając dostęp do sprzętu "pokolenie Arduino" zabierze część rynku.
  • #39
    _lazor_
    Moderator of Designing
    dondu wrote:
    - ... naturalnym więc krokiem jest, że "pokolenie Arduino" zabierze część rynku.


    Zapominasz jeszcze o bardzo ważnym ruchu vendorów - układy pokroju stm32MP1 gdzie masz duży rdzeń cortex-a z linuksem i malutkie dodatkowe rdzenie do real time. I to jest moim zdaniem przyszłość, bo customowo zbudowany linuks daje bardzo potężne przyśpieszenie w projektach a małe rdzenie mogą wykonywać swoje zadanie, dodatkowo być modyfikowne w locie.

    I na to jest zapotrzebowanie na rynku, na ludzi co potrafią budować i robić programy w kernel landzie i znają się na embedded.
  • #42
    khoam
    Level 42  
    _lazor_ wrote:
    Zapominasz jeszcze o bardzo ważnym ruchu vendorów - układy pokroju stm32MP1 gdzie masz duży rdzeń cortex-a z linuksem i malutkie dodatkowe rdzenie do real time.

    Ruch ze strony ST, którego celem zabranie kawałka tortu z istniejącego rynku linux embedded. OpenSTLinux to prostu kolejna customowa wersja linuksa, która ma wspomóc sprzedaż procesorów ST - nie nazwałbym tego rewolucją przemysłową ;)

    A przy okazji tematu tego wątku, to Arduino Core dla STM32MP1 jest "w drodze" :)
    https://community.st.com/s/question/0D50X0000BcSrQf/arduino-for-stm32mp1-will-arrive
  • #43
    _lazor_
    Moderator of Designing
    Napisałem "układy pokroju stm32MP1" Dobrze może być IMX od NXP lub jakikolwiek inny... Jakby kogoś obchodziło jaki to vendor robi. A tak arduino interesuje, bo jak ktoś nie sportuje to do tego czasu dla was ten sprzęt nie istnieje.
  • #44
    tzok
    Moderator of Cars
    Arduino jest piękne, bo jest proste. Wszystko jest zintegrowane i... po prostu działa. Nie trzeba konfigurować środowiska, toolchainów. Programuje się prawie jak za starych dobrych czasów w BASICu. Można się skupić na problemie jaki oprogramowanie ma rozwiązać, a nie na walce z konfiguracją środowiska deweloperskiego. Owszem otwiera to drzwi do tworzenia oprogramowania wielu bardzo słabym programistom, może dlatego ogólny odbiór jest taki zły.

    Tendencja do używania języków wysokiego poziomu w zastosowaniach embedded jest obecna od dawna. Mimo ewidentnych braków mocy obliczeniowej NASA nie pisała oprogramowania pojazdów i sond kosmicznych w języku maszynowym tylko w Fortranie, później w C.

    Arduino jako "język" jest bez porównania bardziej elastyczne, niż język "drabinkowy" sterowników PLC, a popularność i wszechobecność Arduino daje pewność, że nie zniknie ono z dnia na dzień i nie braknie dla niego wsparcia.
  • #45
    Anonymous
    Level 1  
  • #46
    Freddie Chopin
    MCUs specialist
    atom1477 wrote:
    Np. ponad 100 lat temu nie używało się śrub i nakrętek. Bo ich wykonanie było bardzo trudne. Czasami nawet pilnikiem się wypiłowywało gwint.

    Wspaniała historia, biorąc pod uwagę to, że gwint i pierwsze śruby wg archeologów wynalezione zostały jakieś 300 lat przed naszą erą, w pierwszym wieku p.n.e. drewniane śruby były powszechnie stosowane w rejonie Morza Śródziemnego, a maszyny do masowej produkcji śrub metalowych zostały na dużą skalę wprowadzone w 18tym wieku. Przy okazji epoka industrialna zaczęła się gdzieś z 200 lat temu, dobrze wiedzieć, że jeszcze przez 100 lat robili te swoje maszyny pilnikami (;

    atom1477 wrote:
    Albo koła. Robiło się praktycznie tylko drewniane, i robieniem zajmowali się ludzie którzy się na tym znali. Pewnie było wiele sposobów robienia, i każdy mógł coś wymyśleć nowego. Nikt raczej nie przypuszczał że kiedyś koła się będzie robiło na tokarce, albo po prostu kupowało w sklepie (czyli że ktoś będzie produkował masowo bardzo zaawansowane koła).

    W istocie. Wręcz niesamowite, że pierwszy samochód powstał ponad 100 lat temu, gdy jeszcze ręcznie robiło się drewniane koła, a to wszystko bez żadnych śrub i nakrętek!

    atom1477 wrote:
    A śruby przecież są produkowane w dość skomplikowanym procesie, i np. dodatkowo cynkowane czy jakoś tam obrabiane chemicznie.

    Tak. Jest to tak skomplikowane, że było stosowane już w 17tym wieku.

    Nie no... Trochę odjechałeś, nie sądzisz?
  • #47
    Anonymous
    Level 1  
  • #48
    _lazor_
    Moderator of Designing
    Też uważam że odleciałeś i co gorsze nie doceniasz umiejętność dawnych rzemieślników.
  • #49
    tzok
    Moderator of Cars
    Ja myślę, że przykład, może i historycznie nie był precyzyjny, ale był bardzo adekwatny. Niektórzy się bronią rękami i nogami, ale świat zwariował na punkcie Arduino i RPI i garstka specjalistów, którzy są innego zdania, tego nie zmieni.
  • #50
    _lazor_
    Moderator of Designing
    @tzok Pamiętaj o zjawisku Pareta i wtedy ta "garstka" może mieć trochę inny wydźwięk ;)

    Powiedzmy sobie też otwarcie, profesjonalny świat (robienie produktów na skalę światową, w wolumenie setek tysięcy rocznie) nie zwariował na punkcie arduino, a amatorzy może, ale tak samo amatorzy zwariowali na punkcie ZVS, cewek tesli i HHO, nadal nikt tego nie używa na dużą skalę.
    Jeszcze raz powiem, płytko z arduino nie przejdą testów EMC, a jak ktoś uważa że testy EMC są tylko zbędnym wymysłem to znaczy że należy do grupy amatorskiej elektroniki.
  • #51
    Anonymous
    Level 1  
  • #52
    khoam
    Level 42  
    atom1477 wrote:
    Jest taka różnica że BASIC nie miał za wiele skomplikowanych procedur. A w Arduino one są. Ich wywołanie zajmuje sporo zasobów procesora.

    Co to za konkretnie "skomplikowane procedury" w Arduino, "które zajmują sporo zasobów procesora"?

    atom1477 wrote:
    Równie dobrze można napisać że Arduino nie pozwala zająć się na problemami, bo ma własne rozwiązania na problemy, a jednocześnie utrudnia samodzielne budowanie rozwiązywań.

    Tezę kolega już postawił, a teraz poproszę o dowód.

    atom1477 wrote:
    Mam na myśli to że ma wiele własnych bibliotek, ale jednocześnie ma mocno utrudniony dostęp do zasobów sprzętowych.

    W Arduino nie występują żadne ograniczenia dostępu do zasobów sprzętowych, wręcz przeciwnie.

    atom1477 wrote:
    Użycie Arduino w takim wypadku ogranicza się tylko do użycia środowiska oraz szablonu projektu (czy jak to tam zwał).

    Nic podobnego. Kolejny mit.

    Kolego @atom1477 wygłosiłeś bardzo wiele tez na temat Arduino. Naprawdę jestem pod wrażeniem kolegi kreatywności. Mam gorącą prośbę, aby następne tego rodzaju opinie o Arduino kolega poparł przykładami (kodem) i wtedy będzie można merytorycznie podyskutować.
  • #53
    _lazor_
    Moderator of Designing
    No ogranicza możliwości konfiguracji, weźmy przykład baaardzooo trywialny czyli mruganie diodą.
    https://circuitdigest.com/microcontroller-projects/getting-started-with-stm32-development-board-stm32f103c8-using-arduino-ide

    Widzę tam takie inicjalizowanie pinu:
    Code: c
    Log in, to see the code


    Kurcze, STM32 ma dość rozbudowane możliwości ustawienia pinu, niż tylko output. W końcu można ustawić mu również rezystor tłumiący który jest baardzoo ważny jeśli chodzi o EMC. Czy Arduino po prostu to olewa i aby zapewnić kompatybilność olewa część funkcjonalności sprzętu?
  • #54
    khoam
    Level 42  
    _lazor_ wrote:
    Kurcze, STM32 ma dość rozbudowane możliwości ustawienia pinu, niż tylko output.

    To niech kolega wykorzysta bezpośrednio Cube, jeżeli potrzebne są bardziej finezyjne ustawienia pinu. Arduino Core dla STM32 bazuje w 100% na Cube, można więc kod z obu bibliotek "mieszać".

    W samym Arduino Core są tylko takie możliwości ustawienia pinu, jakie są dostępne również dla innych platform sprzętowych, nie tylko dla STM32. Chodzi o zachowanie możliwości przenoszenia kodu źródłowego pomiędzy platformami sprzętowymi - taki jest jeden z głównych imperatywów Arduino.
  • #55
    adamusx
    Level 27  
    Moim zdaniem arduino w przemyślę pojawia się raczej w "garażowych" rozwiązaniach na zasadzie "hej stary, Ty się znasz na elektronice i programowaniu, mam taką maszynkę którą muszę zautomatyzować., tak żeby ten silnik się zatrzymywał jak tu się pojawi sygnał".
    Ewentualnie na szybko jakiś temat do zrealizowania, gdzie faktycznie wydajność i "niezawodność" Arduino jest wystarczająca.
    W średnich firmach (nie wspominając o dużych), gdzie dział RD istnieje stosuje się sprawdzone i rozwijane od lat rozwiązania, przetestowany kod itd. Nowa osoba, która do takiego zespołu trafia w 99% (imho) uczy się tego co zastaje na miejscu. Wątpię by przeszło coś na zasadzie "hej, a ja znam dobrze arduino, może zbudujemy sterownik oparty o tą platformę ?". Chciałbym wówczas zobaczyć miny starszych stażem kolegów z działu ;-) No chyba, że firma powstała na zasadzie startupu i cały dział RD to osoby, które znają tylko Arduino.
    Osobiście nie mam nic do Arduino, sam kilkukrotnie je wykorzystałem, ale najczęściej jako np tester do innego urządzenia lub jakaś prosta elektronika użytkowa.
  • #56
    Wojciech.
    Level 36  
    tzok wrote:
    Arduino jako "język" jest bez porównania bardziej elastyczne, niż język "drabinkowy" sterowników PLC, a popularność i wszechobecność Arduino daje pewność, że nie zniknie ono z dnia na dzień i nie braknie dla niego wsparcia.

    Ale drabinka to nie jedyny język programowanie PLC. Mamy chociażby tekst strukturalny który daje duże możliwości. Mamy też możliwość wykorzystanie C/C++ do sterowania procesem.
  • #57
    Anonymous
    Level 1  
  • #58
    khoam
    Level 42  
    atom1477 wrote:
    Chyba nie muszę odpowiadać na pozostałe pytania jakie mi zadałeś. Bo ta odpowiedz odpowiada w sumie na wszystkie z nich.

    Nie odpowiedziałeś merytorycznie kolego na żadne z moich pytań. Powielasz kolejny raz po prostu FUD, bazując na własnych spekulacjach i przypuszczeniach.
    Jakość kodu, który korzysta z Arduino Core wynika wprost z "jakości" programisty. Wszystkie "wady" Arduino, które kolega wymienił można odnieść do dowolnej platformy programistycznej, jeżeli będzie z niej korzystał równie "dobry" programista. Amen.
  • #59
    Anonymous
    Level 1  
  • #60
    Wojciech.
    Level 36  
    atom1477 wrote:
    lecz o "aurze" jakie ono nad sobą roztacza.


    Zgadzam się bo zazwyczaj arduino dedykowane jest dla ludzi którzy nie mają dużo wspólnego z elektroniką. To że zawodowcy wykorzystują w 100% peryferia arduino to inna sprawa.