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

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

Urgon 01 Apr 2023 15:48 2769 41
Computer Controls
  • 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!

    Cool? Ranking DIY
    Do you have a problem with Arduino? Ask question. Visit our forum Arduino.
    About Author
    Urgon
    Level 38  
    Offline 
    Urgon wrote 6136 posts with rating 1999, helped 195 times. Live in city Garwolin. Been with us since 2008 year.
  • Computer Controls
  • #2
    khoam
    Level 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
    XS_Sowa
    Level 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
    ZbeeGin
    Level 39  
    Urgon wrote:
    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
    sylweksylwina
    Moderator of Computers service
    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
    Matheu
    Level 24  
    Urgon wrote:
    Kocham Arduino.
    Pierwszy kwietnia???
  • #7
    gulson
    System Administrator
    khoam wrote:
    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
    khoam
    Level 42  
    gulson wrote:
    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
    _lazor_
    Moderator of Designing
    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 wrote:
    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 wrote:
    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 wrote:
    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 wrote:
    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 wrote:
    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.
  • Computer Controls
  • #10
    khoam
    Level 42  
    @_lazor_ Zerknij proszę na datę publikacji tego artykułu oraz mojego posta, do którego się odnosisz.
  • #11
    _lazor_
    Moderator of Designing
    A no tak. Tak to bywa jak się człowiek przestał posługiwać kalendarzem tylko dzień po dniu leci.
  • #13
    Matheu
    Level 24  
    @_lazor_
    zobacz, proszę na post #6

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

    pozdrówka i - miłego dnia!
    Maciek
  • #14
    _lazor_
    Moderator of Designing
    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
    Urgon
    Level 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
    _lazor_
    Moderator of Designing
    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
    sylweksylwina
    Moderator of Computers service
    _lazor_ wrote:
    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
    Janusz_kk
    Level 36  
    Urgon wrote:
    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
    Mlody_Zdolny
    Level 25  
    Janusz_kk wrote:
    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
    khoam
    Level 42  
    _lazor_ wrote:
    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 wrote:
    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
    Janusz_kk
    Level 36  
    khoam wrote:
    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
    khoam
    Level 42  
    Janusz_kk wrote:
    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
    Urgon
    Level 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
    khoam
    Level 42  
    Przykładowy wygląd IDE u typowego użytkownika Arduino Core:

    Dlaczego pokochałem Arduino, i Wy też powinniście
  • #25
    Janusz_kk
    Level 36  
    khoam wrote:
    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
    khoam
    Level 42  
    Janusz_kk wrote:
    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
    Janusz_kk
    Level 36  
    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
    khoam
    Level 42  
    Janusz_kk wrote:
    A może to IDE jest z VSC? bo tak widzę w nagłówku.

    W zasadzie, to odniosłem się do:

    Urgon wrote:
    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
    Janusz_kk
    Level 36  
    khoam wrote:
    W zasadzie, to odniosłem się do:

    Urgon wrote:
    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
    Urgon
    Level 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...