logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Dlaczego pokochałem Arduino, i Wy też powinniście

Urgon 01 Kwi 2023 15:48 3255 41
  • Dlaczego pokochałem Arduino, i Wy też powinniście
    Kto zna mnie na forum, albo czytał moje artykuły, ten wie, że delikatnie rzecz ujmując nie jestem wielkim fanem Arduino. Okoliczności ostatnich tygodni jednak sprawiły, iż nie tylko musiałem przerwać redagowanie nowych, wspaniałych artykułów, ale też zapoznać się z tą platformą bliżej. Kilka tygodni pracy z Arduino sprawiło, iż pokochałem tę platformę, i jest ku temu wiele powodów. Postaram się przybliżyć w tym artykule kilka z nich.


    Jeden standard, by wszystkimi rządzić


    Projektowanie układów z użyciem Arduino jest proste. Płytki Arduino i moduły rozszerzeń do nich mają standardowy kształt i rozstaw złączy, dzięki czemu możemy ułożyć całą wieżę z gotowych modułów z płytką Arduino na samym spodzie. Ba, ten format jest tak genialny i intuicyjny, iż wielu innych producentów bezczelnie go ukradło i użyło w swoich zestawach. Jasne, nie pasuje do płytek stykowych, ale płytki stykowe to problemy ze stykaniem właśnie i straszne pojemności pasożytnicze, które tylko szkodzą, gdy chcemy uzyskać duże prędkości komunikacji szeregowej czy równoległej. Arduino jednak ma też wersje micro i nano z rozstawem wyprowadzeń z myślą o "stykówkofilach". Ta polityka różnorodności i inkluzywności to coś, co należy chwalić, zwłaszcza że walka z wykluczeniem to obecnie ważny cel dla USA i UE. Doceńmy to i my.


    Piękno w prostocie - jest IDEalnie


    Mówi się, że doskonałość formy i funkcjonalności osiąga się wtedy, gdy nie można już niczego odjąć, a nie wtedy, gdy nie można już niczego dodać. I to właśnie Arduino zrobiło ze swoim środowiskiem programistycznym, czyli IDE. MPLAB-X zajmuje na moim dysku prawie 9GB, przy tym ArduinoIDE zajmuje mniej, niż Gadu-Gadu 10 lat temu, bo ledwo kilkadziesiąt megabajtów. Żadnych zbędnych kreatorów kodu i konfiguracji, kobylastych bibliotek, jeden kompilator (bo po co więcej?) i biblioteki tylko dla tego, czego chcemy używać. Nie jestem pewien, czy jest tu jakiś debugger, manager plików i projektów, czy inne, zbędne głupoty, z których i tak się nie korzysta. IDE jest proste i przejrzyste, jak systemowy Notatnik, w którym piszę swoje artykuły. Odwracam kolory i mogę pisać kod godzinami. Obsługa innych płytek i dodatkowe biblioteki dodaje się w miarę potrzeby, dlatego całość oszczędza miejsce. Ba, nawet instalacja nie jest konieczna, bo można wypakować archiwum i od razu zacząć pisać programy. Prościej się nie da, i to jest piękne.


    Programowanie proste, jak budowanie cepa


    Arduino było pomyślane jako platforma edukacyjna oraz dla artystów, którzy chcą dodać elektronikę do swojej sztuki bez czytania Sztuki elektroniki. Dlatego wiele aspektów programowania mikrokontrolera jest realizowanych "w tle". Nie musimy ustawiać zegara, konfiguracja dowolnych peryferiów to zwykle jedno lub dwa polecenia, używanie GPIO czy peryferiów nie wymaga nawet zaglądania do noty katalogowej mikrokontrolera. To wielkie ułatwienie dla początkujących, a i zaawansowany programista znajdzie w tym przyjemność niemyślenia o tym, czy stan pinów ustawia się pisząc do portu, czy do zatrzasku, gdzie się ustawia kierunek działania portu, albo rezystory podciągające. Wszystko jest proste, przyjemne i pełne relaksu. Znalazłem swoje centrum i programując osiągam zen.

    Arduino jest tak proste, że nawet początkujący piszą biblioteki dla innych początkujących, by im początki ułatwić na początek. Ten wysoki poziom prostoty i abstrakcji osiąga się niewielką stratą wydajności, ale czymże jest wydajność wobec niebiańskiego doświadczenia w programowaniu Arduino? Arduino powinno być w szkołach zamiast lekcji religii.


    Pogadajmy o pieniądzach


    Oryginalne płytki Arduino swoje kosztują, ale to dobrze wydane pieniądze - płacimy w końcu za jakość platformy, IDE i podstawowych bibliotek. Plus, co kilka miesięcy firma próbuje stworzyć nowe, lepsze Arduino, a to też swoje kosztuje. I tak ceny są niższe, niż za coś w rodzaju Nvidia Jetson, czy choćby Raspberry Pi, a funkcjonalność jest dużo większa - na co komu platforma, która wymaga całego systemu operacyjnego do działania, a do tego jest programowana w tym okropnym Pythonie? Arduino jest tak dobre, że powstały potężniejsze jego warianty, często od innych producentów. Na przykład Digilent ukradł pomysł Arduino i stworzył platformę ChipKIT. Na szczęście ten zuchwały skok na nieswoją kasę wyszedł im bokiem, a my możemy się cieszyć używanymi płytkami w niskiej cenie.

    Do tego nasi skośnoocy przyjaciele z Chin też klonują Arduino i klepią je w niskich cenach. Jak kogoś nie stać na oryginał, to może sobie takiego klona kupić, ale niech pamięta, że tym samym wspiera komunistyczny reżim.

    Poza samym Arduino mamy też wysyp ogromnej liczby modułów, układów i płytek z nim współpracujących. Od płytek z przekaźnikami przez najróżniejsze czujniki, kontrolery wyświetlaczy LCD i LED, po żyroskopy, akcelerometry i układy syntezy DDS. Ba, ostatnio kupiłem moduł do EKG przeznaczony dla Arduino. I znów nasi komunistyczni bracia z dalekiej Azji oferują nam te moduły w absurdalnie niskich cenach. Nie ma żadnej innej platformy, która tyle zrobiła dla elektroniki, co Arduino.


    Arduino Inside


    Na Arduino zrealizowano wiele fantastycznych projektów. Sam miałem świetną frezarkę CNC opartą na kontrolerze z Arduino. Arduino pojawiało się też w wielu innych projektach, zarówno amatorskich jak i w komercyjnych. Jest tak proste, genialne i uniwersalne, że zrealizowano na nim wspaniały i dobrze przemyślany projekt otwartego kontrolera silnika spalinowego - zamiennika dla fabrycznych ECU, za które producenci samochodów liczą sobie nieprzyzwoicie dużo.

    Jeśli uda się zmniejszyć rozmiar Arduino i obniżyć jeszcze jego pobór prądu, to powstaną też na nim implantowane urządzenia medyczne, jak rozruszniki serca czy pompy insulinowe. To będzie wspaniałe, gdy każdy z nas będzie mógł wziąć udział w rozwoju medycyny.


    Niniejszym chciałbym przy okazji przeprosić za moją bezpodstawną krytykę - nie wiedziałem, o czym piszę. Kocham Arduino. A Wy? Napiszcie!

    Fajne? Ranking DIY
    O autorze
    Urgon
    Poziom 38  
    Offline 
  • #2 20519660
    khoam
    Poziom 42  
    Najlepsze wersje płytek Arduino są z mikrokontrolerami PIC. Na nich to można nawet odpalić AI, przy objętości kodu wynikowego programu poniżej 100 kB. Specjalnie przygotowane rozszerzenia do Arduino IDE dla tych płytek pozwalają na bezstresową pracę mniej uzdolnionych i niezwykle wymagających programistów PIC, z niezwykle podobnym i przyjaznym środowiskiem do MPLAB. Większość kodu można "wyklikać" bez wchodzenia w niepotrzebne niuanse działania poszczególnych fragmentów programu. Dedykowany kompilator HWC umożliwia automatyczne szyfrowanie kodu programu, więc nie ma obaw, że kod ten zostanie zhakowany. Oczywiście pociąga to za sobą czasami konieczność zakupu dedykowanego sprzętowego debuggera za jedyne 999$.

    Całkiem niedawno Boeing w swoich systemach pokładowych masowo zaczął wymieniać elektronikę na tę opartą na Arduino PIC, stąd też wzięła się nazwa tego nowego systemu: APANIC.
  • #3 20519870
    XS_Sowa
    Poziom 13  
    Co do debuggera w arduino to jest, oczywiście. Wszystkie zmienne można obserwować oraz zmieniać online, rewelacja. Sam debugger debuguje aż tak że gdy masz jakiś bug w programie to sam Ci go pokaże. Jednym ptaszkiem w ustawieniach mozesz wszystko zautomatyzować, więc w zasadzie wszystko robi się samo. Nawet za bardzo nie trzeba pisać kodu wtedy.
  • #4 20519913
    ZbeeGin
    Poziom 39  
    Urgon napisał:
    Nie jestem pewien, czy jest tu jakiś debugger, manager plików i projektów, czy inne, zbędne głupoty, z których i tak się nie korzysta. IDE jest proste i przejrzyste, jak systemowy Notatnik, w którym piszę swoje artykuły. Odwracam kolory i mogę pisać kod godzinami.

    Powinieneś spróbować PlatformIO zintegrowanego z Visual Studio Code.
  • #5 20519929
    sylweksylwina
    Moderator - Komputery Serwis
    Zależy kto co preferuje. Kiedyś używałem CLion od JetBrains z PlatformIO i też się świetnie sprawował :) Na pewno lepiej niż zwykły "notatnik" :P
  • #6 20520453
    Matheu
    Poziom 24  
    Urgon napisał:
    Kocham Arduino.
    Pierwszy kwietnia???
  • #7 20520553
    gulson
    Administrator Systemowy
    khoam napisał:
    Najlepsze wersje płytek Arduino są z mikrokontrolerami PIC. Na nich to można nawet odpalić AI, przy objętości kodu wynikowego programu poniżej 100 kB

    Bardzo ciekawe, poddałeś mi pomysł.
    Jakbyś chciał najtaniej zrealizować podłączenie mikrokontrolera do API GPT-4, co byś użył? Na pewno potrzeba dostępu do sieci, tutaj jakiś moduł Wi-Fi (bo to najwygodniejsze).
    Później trzeba robić zapytania pod określony adres https z swoim kluczem o odpowiedniej strukturze tablicy. Zdarzają się bardzo często awarie, trzeba mieć możliwość ponawiania.
    Występują spore opóźnienia w odpowiedzi, kilkanaście sekund to standard.
    Do czego zmierzam, może się uda wyprowadzić GPT-4 do świata rzeczywistego?
  • #8 20520841
    khoam
    Poziom 42  
    gulson napisał:
    Jakbyś chciał najtaniej zrealizować podłączenie mikrokontrolera do API GPT-4, co byś użył? Na pewno potrzeba dostępu do sieci, tutaj jakiś moduł Wi-Fi (bo to najwygodniejsze).

    Niewykluczone, że kluczem do sukcesu byłby tutejszy OpenBeken, ale mogę się mylić i nie jestem tym zainteresowany.
  • #9 20520891
    _lazor_
    Moderator Projektowanie
    Z punktu widzenia profesjonalisty, to nie widzę zastosowania dla arduino oraz całe szczęście nie widze ofert pracy by ktoś chciał wiedzy w zakresie arduino.

    Urgon napisał:
    Piękno w prostocie - jest IDEalnie


    IDE to też ciekawa sprawa, zawodowo kilka razy spotkałem na wymuszeniu używania IDE i edytorów tekstowych (iar, keil czy zgrozo visual studio (nie visual studio code). Jednak najczęściej firmy wymuszają toolchain i build system a resztę kto co lubi (i ma licencję). I to jest dla mnie IDEalne rozwiązanie.
    Jednak rozumiem że hobbysta nie chce się interesować detalami i dla niego wygodnie jest ściągnąć paczkę wszystkich składników i żyć w błogiej nieświadomości

    Urgon napisał:
    Programowanie proste, jak budowanie cepa

    Tutaj powiem że ta prostota jest dla mnie ograniczeniem. Na rynku jest tak dużo układów, że nie jest możliwe by wszystko było obsługiwane przez arduino. Dobieranie układu pod kątem możliwości zrealizowania projektu + sprawdzanie czy arduino to wpiera jest za bardzo problematyczne. Wiem można sobie samemu dopisać obsługę peryferiów, ale jak już piszę obsługę peryferiów samemu to po co mi arduino?

    Urgon napisał:
    Pogadajmy o pieniądzach


    Ogólnie płytki są aktualnie tanie jak barszcz, nie zależnie czy dla arduino, bare metal czy linux embedded





    Jeśli ktoś chce się bawić w programistę embedded to arduino jest super i nie będę tego negować. Jednak jeśli ktoś myśli o uczeniu się w kierunku zawodowym to zdecydowanie nie. Aktualnie by wejść w świat embedded samo programowanie nie wystarczy i lepiej uczyć się pisania kodu pod takie stm32mp1 (lub ekwiwalent) czy używanie RTOS'a na jakimś małym boardzie niezależnie od kogo.
    Nawet ja zagorzały bare metalowiec i DSP zwróciłem się w kierunku linuks embedded, bo... tam jest więcej projektów co za tym idzie większe pieniądze.



    khoam napisał:
    Całkiem niedawno Boeing w swoich systemach pokładowych masowo zaczął wymieniać elektronikę na tę opartą na Arduino PIC, stąd też wzięła się nazwa tego nowego systemu: APANIC.


    Szukam szukam i nic nie znajduje. Śmiem wątpić.

    khoam napisał:
    Najlepsze wersje płytek Arduino są z mikrokontrolerami PIC. Na nich to można nawet odpalić AI, przy objętości kodu wynikowego programu poniżej 100 kB


    Jak na rasberry pico można odpalić przetwarzanie obrazu z AI to naprawę to można robić na byle czym. W malinie pico są przecież 2 rdzenie cortex-m0, to są najprostsze układy z serii cortex-m, bez hardwarowego wparcia do AI. Sugerowanie że na mikrokontrolerach PIC można odpalić AI brzmi jakby na innych nie można było. Na innych jak najbardziej można, w końcu IA to tylko upośledzony algorytm, który nie ma 100% pewności że zadziała poprawnie.
  • #10 20520932
    khoam
    Poziom 42  
    @_lazor_ Zerknij proszę na datę publikacji tego artykułu oraz mojego posta, do którego się odnosisz.
  • #11 20520946
    _lazor_
    Moderator Projektowanie
    A no tak. Tak to bywa jak się człowiek przestał posługiwać kalendarzem tylko dzień po dniu leci.
  • #12 20520965
    Urgon
    Poziom 38  
    AVE...

    Pewną wskazówką powinno być użycie przeze mnie Comic Sans w grafice tytułowej...
  • #13 20520974
    Matheu
    Poziom 24  
    @_lazor_
    zobacz, proszę na post #6

    podpowiem - jest "zaplusowany" przez ...Urgona! :)

    pozdrówka i - miłego dnia!
    Maciek
  • #14 20520980
    _lazor_
    Moderator Projektowanie
    Ja jestem człowiekiem o ujemnych umiejętnościach estetycznych. Ktoś w ogóle zwraca uwagę na czcionkę oprócz jakiś memów przypominająca że w ogóle różne czcionki istnieją?
  • #15 20520991
    Urgon
    Poziom 38  
    AVE...

    Comic Sans to najbardziej znienawidzona czcionka na świecie - synonim kiczu i tandety. Nie dlatego, że jest jakoś szczególnie brzydka, ale dlatego że była mocno nadużywana. I tak, ludzie na to zwracają uwagę. Wysłanie CV napisanego czcionką Comic Sans gwarantuje, że pracy nie dostaniesz... ;)
  • #16 20521005
    _lazor_
    Moderator Projektowanie
    Możesz mieć racje, jak zatrudniają ludzie nietechniczni to zostaje im skupiać się na pierdołach jak kształt literek.

    Powiem wam że fikołki ostatnio takie widziałem że to już nie jest śmieszne. Mnie rekrutowali niedawno na C bare metal a klepie skrypty w bashu na linux embedded (mam najdroższe praktyki w życiu). A znajomego pytali z Cpp20, a robił bare metal C :D
    Tak więc ten tego, oni naprawdę skupiają się na kształcie literek.
  • #17 20521059
    sylweksylwina
    Moderator - Komputery Serwis
    _lazor_ napisał:
    Mnie rekrutowali niedawno na C bare metal a klepie skrypty w bashu na linux embedded

    Heh, skąd ja to znam. Co prawda nie byłem rekrutowany na bare metal, tylko C pod linuxem, ale głównie skrypty miałem ;) Do czasu pełnego wdrożenia to tak zostaje :)
  • #18 20522560
    Janusz_kk
    Poziom 38  
    Urgon napisał:
    AVE...

    Pewną wskazówką powinno być użycie przeze mnie Comic Sans w grafice tytułowej...

    Nie rozumiem, to w końcu przekonałeś się do arduino czy nie?
  • #19 20522572
    Mlody_Zdolny
    Poziom 30  
    Janusz_kk napisał:
    to w końcu przekonałeś się do arduino czy nie?

    @Urgon od dawna kochał się w Arduino a to swego rodzaju coming out ;)
  • #20 20522594
    khoam
    Poziom 42  
    _lazor_ napisał:
    Powiem wam że fikołki ostatnio takie widziałem że to już nie jest śmieszne. Mnie rekrutowali niedawno na C bare metal a klepie skrypty w bashu na linux embedded (mam najdroższe praktyki w życiu). A znajomego pytali z Cpp20, a robił bare metal C
    Tak więc ten tego, oni naprawdę skupiają się na kształcie literek.

    Wiele wskazuje na to, że fala zwolnień w IT nadejdzie w Polsce tuż przed wakacjami. Pocieszające jest to, że w jakimś stopniu dotknie również działy HR.

    Dodano po 4 [minuty]:

    Janusz_kk napisał:
    Nie rozumiem, to w końcu przekonałeś się do arduino czy nie?

    Redaktor @Urgon czerpie osobistą satysfakcję z wyrażania nienawiści do wszystkiego, co ma w nazwie "Arduino", gdzie tylko może. To uczucie jest niezwykle gorące.
  • #21 20522691
    Janusz_kk
    Poziom 38  
    khoam napisał:
    Redaktor @Urgon czerpie osobistą satysfakcję z wyrażania nienawiści do wszystkiego, co ma w nazwie "Arduino", gdzie tylko może. To uczucie jest niezwykle gorące.

    Pierwsze słyszę :) cóż wg mnie to taki lepszy Baskom, też o tyle że ma dodatkowo sprzęt. Sam nie używam wolę sam pisać tym bardziej że zawsze się bazuje na wcześniejszych dokonaniach.
  • #22 20522753
    khoam
    Poziom 42  
    Janusz_kk napisał:
    cóż wg mnie to taki lepszy Baskom, też o tyle że ma dodatkowo sprzęt.

    Dobre. To tak, jak powiedzieć, że samochód to taka lepsza dorożka. Osobiście nie mam problemu z tymi wszystkimi hejtami czy dowcipami o Arduino. Nie używam już Arduino Core od dłuższego czasu, ale nadziwić się nie mogę, czego to ludziska nie wymyślą na ten temat.
  • #23 20522765
    Urgon
    Poziom 38  
    AVE...

    Samochód to jest taka lepsza dorożka. Na początku były produkowane modele z dołączonym sztucznym koniem na froncie, coby prawdziwych koni tak bardzo nie denerwować.

    A Arduino, to moim zdaniem bardzo fajna platforma edukacyjna, ale z pewnymi brakami i problemami. Największym jej problemem jest to, co było problemem i z Bascomem, PiCAxe i podobnymi platformami: użytkownicy tych platform często nie potrafili przerzucić się na bardziej zaawansowane i lepsze narzędzia, jak pełnoprawne IDE z "dorosłym" kompilatorem, gdzie poziom abstrakcji jest niższy, a wydajność wyższa.

    A za te pokrzywione złącza na płytkach Arduino projektant powinien być batożony pękiem kabli do "stykówki". Leniowi nie chciało się projektu poprawić po pierwszej partii prototypów...
  • #24 20522796
    khoam
    Poziom 42  
    Przykładowy wygląd IDE u typowego użytkownika Arduino Core:

    Dlaczego pokochałem Arduino, i Wy też powinniście
  • #25 20522823
    Janusz_kk
    Poziom 38  
    khoam napisał:
    Przykładowy wygląd IDE u typowego użytkownika Arduino Core:

    Raczej okno debugera. A IDE raczej nie wygląda na arduinowe.

    Dodano po 1 [minuty]:

    O teraz na dolnym pasku dojrzałem że nawet pisze że to debuger :)
  • #26 20522830
    khoam
    Poziom 42  
    Janusz_kk napisał:
    A IDE raczej nie wygląda na arduinowe.

    Ale jest w 100%. Zdaję sobie sprawę, że dla wielu jest to niewygodny fakt.

    Dlaczego pokochałem Arduino, i Wy też powinniście
  • #27 20522836
    Janusz_kk
    Poziom 38  
    To gdzie jest ten debug jest wywoływany z typowego ide arduino?

    Dodano po 1 [minuty]:

    A może to IDE jest z VSC? bo tak widzę w nagłówku.
  • #28 20522946
    khoam
    Poziom 42  
    Janusz_kk napisał:
    A może to IDE jest z VSC? bo tak widzę w nagłówku.

    W zasadzie, to odniosłem się do:

    Urgon napisał:
    Największym jej problemem jest to, co było problemem i z Bascomem, PiCAxe i podobnymi platformami: użytkownicy tych platform często nie potrafili przerzucić się na bardziej zaawansowane i lepsze narzędzia, jak pełnoprawne IDE z "dorosłym" kompilatorem, gdzie poziom abstrakcji jest niższy, a wydajność wyższa.
  • #29 20523033
    Janusz_kk
    Poziom 38  
    khoam napisał:
    W zasadzie, to odniosłem się do:

    Urgon napisał:
    Największym jej problemem jest to, co było problemem i z Bascomem, PiCAxe i podobnymi platformami: użytkownicy tych platform często nie potrafili przerzucić się na bardziej zaawansowane i lepsze narzędzia, jak pełnoprawne IDE z "dorosłym" kompilatorem, gdzie poziom abstrakcji jest niższy, a wydajność wyższa.

    Ja zrozumiałem że autor miał na myśli Avr Studio, szczególnie 7, która wymaga nowych nawyków.
  • #30 20523179
    Urgon
    Poziom 38  
    AVE...

    Arduino ma swoje, uproszczone IDE, i do niego się odnosiłem. Jak chciałem bardziej zaawansowane IDE gdy testowałem ChipKITa i Pinguino, to brałem UECIDE, które jest ciut bardziej rozbudowane i, moim zdaniem, wygodniejsze. Co do debuggera, to Arduino chyba nawet nie ma takiej możliwości, bo używa bootloadera i interfejsu szeregowego, więc trza to robić "na piechotę". Prawdziwe debuggowanie wymaga użycia programatora, jak w każdej rodzinie mikrokontrolerów...

Podsumowanie tematu

W dyskusji poruszono zalety i wady platformy Arduino, z naciskiem na jej prostotę i dostępność dla hobbystów. Użytkownicy podkreślają, że standardowy format płytek Arduino ułatwia projektowanie układów, a także że istnieją alternatywne IDE, takie jak PlatformIO i UECIDE, które oferują bardziej zaawansowane funkcje. Wspomniano również o możliwościach debugowania oraz integracji z systemami, takimi jak ESP32. Krytyka dotyczyła ograniczeń Arduino w kontekście profesjonalnych zastosowań oraz braku optymalizacji kodu. Użytkownicy dzielili się doświadczeniami z nową wersją Arduino IDE 2.0, która wprowadza poprawki w zakresie użyteczności i wydajności.
Podsumowanie wygenerowane przez model językowy.
REKLAMA