Skocz do zawartości

Dyskusja: w czym tkwi sukces Arduino, jakie są wady i zalety tej platformy?


Treker

Pomocna odpowiedź

Masz rację, ale ja najpierw [zanim uwierzyłem] przeczytałem artykuł w miarę dokładnie. Sprawę licencji jednak pominąłem, bo mnie nie dotyczy - nie mam z tym problemów - w końcu jestem amatorem. Spodobał mi się opis podejścia inżyniera do problemu mikroprocesorów [bardzo], który to zgadza się z moimi poglądami, więc dlatego podałem ten link, a nie ze względu na poglądy autora na temat licencji. Możliwe, że dzisiejsi inżynierowie i kandydaci tak nie postępują, ale ja jestem starej daty - tyle że w całkiem innej branży.

Link do komentarza
Share on other sites

4 minuty temu, narbej napisał:

Sprawę licencji jednak pominąłem, bo mnie nie dotyczy - nie mam z tym problemów - w końcu jestem amatorem.

Rozumiem to podejście, ale polecam jednak z własnej ciekawości sprawdzać licencję. Za jakiś czas będziesz chciał wykorzystać jakieś narzędzia do komercyjnego projektu, a później się okaże, że jednak nie możesz i dojdziesz do wniosku, że bez danego narzędzia nie dasz rady nawet ruszyć tego projektu. Warto znać licencje nawet tylko dla ciekawostki, bo można się później "zapomnieć" 😉

Link do komentarza
Share on other sites

Ja powiem tak - teraz przeczytałem artykuł do końca i nadal uważam że to w 90% bełkot. Poprawny jest wniosek - faktycznie Arduino lepiej nie używać w komercyjnych / profesjonalnych zastosowaniach. Racją jest że brakuje debuggera, chociaż moim zdaniem bez tego można spokojnie żyć. Najgorsze są oczywiście biblioteki, bo nigdy nie wiadomo jakie paskudztwa z nimi włączymy do projektu. Na koniec racja odnośnie energochłonności - stare AVR nie są niskoprądowe, a biblioteki Arduino raczej nie starają się ograniczać apetytu na prąd.

Jednak poza tym artykuł zawiera same kłamstwa, bzdury i moim zdaniem świadczy o kompletnej ignorancji autora:

  • Arduino używa gcc oraz C++, więc mówienie o ograniczonym języku to bzdura
  • podobnie fragment odnośnie klas - są używane przez większość bibliotek
  • dziedziczenie nie jest używane, ale to ze względu na brak RAM-u i nawet bez Arduino trzeba byłoby ograniczać takie metody na starym AVR
  • o licencjach już pisałem - autor artykułu nic nie rozumie, ale pisze bo i kto mu zabroni
  • dalej autorowi myli się zarządzanie strukturą projektu z kontrolą wersji
  • jak chodzi o pierwszy temat, to nie jestem ekspertem od Arduino IDE, ale widziałem projekty podzielone na wiele modułów, chociażby kod sterownika RepRap
  • natomiast kontrola wersji wcale nie musi być zintegrowana z IDE. Ja nigdy nie używam wtyczek eclipse i jakoś mi to nie przeszkadza. Więc jak ktoś chce używać system kontroli wersji, to nic nie stoi na przeszkodzie
  • pisanie o tym, że Arduino jest "bardzo energochłonne z uwagi na wbudowane oprogramowanie do wgrywania projektów itp." nawet nie jest śmieszne, to żal komentować
  • nie rozumiem narzekania na brak plików .map, itd. są przecież tworzone, jak ktoś potrzebuje to znajdzie. A że typowy początkujący ich nie potrzebuje to nie muszą się pojawiać od razu na pulpicie
  • strasznie nie lubię jak ktoś pisze "najlepiej"  i poleca co-tam-zna-i-lubi, nawet jeśli to HAL i STM32. Po pierwsze CubeMX jest też napisany w Javie (jak Arduino IDE), ale dużo gorzej działa - pod linuxem sypie się jak... lepiej nie napiszę. Arduino chociaż daje się używać pod innymi systemami niż Windows, a cubeMX (nie mylić z HAL), to właściwie aplikacja pod windows i tylko jak ma humor działać
  • na koniec polecanie Keil-a. Oczywiście zawsze lepiej być młodym, zdrowym i bogatym niż starym, chorym i biednym... jako ciekawostkę polecam wyszukać cenę licencji Keil-a. Oczywiście to świetne narzędzie, ale nie całkiem tanie. No i licencja daje aktualizacje na rok - później trzeba 20%, czy 30% ceny płacić co roku (czyli i tak kilka tys. PLN)

Więc moim zdaniem artykuł jest do niczego, ale sam tytułowy wniosek jest słuszny.

Edytowano przez Elvis
  • Lubię! 1
Link do komentarza
Share on other sites

To może odejdźmy od wad, pora spojrzeć na jakieś zalety 😉

Na pewno wielką zaletą Arduino jest to, że naprawdę każdy może zacząć i mam tu na myśli szczególnie osoby z innych branż. Przykładowo: jeśli malarz chce wstawić w swój obraz LEDy i sterować nimi w rytm muzyki to jest w stanie zrobić to dzięki Arduino (i to stosunkowo łatwo). Po pierwsze, dlatego, że cała platforma jest przyjazna i można zacząć bardzo szybko, a po drugie dlatego, że jest tu zgromadzona społeczność, która wspiera takie osoby. Jakoś nie widzi mi się, aby taki malarz miał realne szanse uruchomienia takiego urządzenia, jeśli miałaby programować AVR na rejestrach 😉

Inną zaletą, którą trzeba docenić jest chyba to, że dzięki Arduino powstaje mnóstwo shieldów, modułów z czujnikami itd. Mam wrażenie, że kiedyś było tego mniej. A jakie jest Wasze zdanie w tej sprawie?

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

3 godziny temu, Treker napisał:
5 godzin temu, deshipu napisał:

Arduino odniosło sukces, bo było wpychane na siłę studentom na uniwersytecie, którzy nauczyli się właśnie tego używać i już przy tym zostali.

Ale sugerujesz, że wepchnięto im to na siłę (w sensie negatywnym)? Ja do tej pory miałem wrażenie, że to była właśnie platforma, dzięki której wiele osób mogło zająć się uC i to było dla nich raczej zbawieniem.

Ale tak jak inni pisali, przecież było wiele podobnych albo nawet bardziej przyjaznych platform do wyboru, a gdyby to potrwało jeszcze dłużej, to pojawiłyby się jeszcze lepsze. Arduino wybiło się do przodu, bo udało się zebrać "masę krytyczną" użytkowników, którzy nie za bardzo mieli ani wybór, ani wiedzę żeby jakichkolwiek wyborów dokonywać. Oczywiście nie można powiedzieć, że to się odbyło wbrew woli uczniów — w sytuacji, kiedy nie mają własnego zdania i w zasadzie zwisa im czego użyją, byle dostać zaliczenie — ale mimo wszystko właśnie taka uprzywilejowana pozycja tego projektu pozwoliła mu się wysunąć na prowadzenie.

Podobnie zresztą jest z Raspberry Pi — wszyscy piszą, że przewagę ma bo społeczność, ale ta społeczność nie wzięła się znikąd — nie bez powodu od samego początku cały marketing był ostro skierowany na nauczycieli — bo to oni mogą jedną prostą decyzją zwabić na daną platformę setki nowych użytkowników. A nauczycieli przekonać jest łatwo — wystarczy dać im gotowe materiały, plany lekcji, ba, nawet wzory testów — będą łykać jak pelikany, bo sami są zbyt przeciążeni i zapracowani żeby przygotowywać coś oryginalnego.

Żeby zilustrować to co piszę, mamy na hackaday.io nauczyciela akademickiego, który uczy programowania mikrokontrolerów. Proszę sobie zobaczyć ilu ma "followerów": https://hackaday.io/bruceland

  • Lubię! 2
Link do komentarza
Share on other sites

Do mnie argument o wmuszaniu studentom zupełnie nie przemawia. Natomiast znacznie bardziej trafia taniość i łatwość obu platform. Warto zwrócić uwagę jaka była sytuacja te powiedzmy 10 lat temu. Płytki ewaluacyjne były o wiele droższe niż teraz. Porządna płytka do linuksa emebedded potrafiła kosztować grubo ponad tysiąc złotych. Były i tańsze, ale miały słabszą dokumentację i wymagały na starcie dużo więcej umiejętności. Właściwie powinien wtedy wygrać BeagleBone, ale Raspberry skradło im sukces za pomocą marketingu - magiczne 35$ za płytkę działało na wyobraźnię.

A co do Arduino, to nawet nie trzeba grzebać w mrokach pamięci. Wystarczy przucić okiem na ofertę firmy Atmel, żeby docenić jak tanie i sympatyczne jest Arduino. Płytka kosztuje ułamek ceny, ma o wiele lepsze wsparcie, bibliotekę która działa na różnych wersjach sprzętu itd.

Wydaje mi się, że konkurencyjne rozwiązania w większości popełniają jeden z dwóch błędów. Pierwszy to walka o najniższą cenę. Takie produkty (klony), mają bardzo słabe wsparcie, a producent często z nich rezygnuje po krótkim czasie - po prostu to się nie opłaca. Druga wersja to drogie rozwiązania związane z określonym producentem, albo handlarzem wiedzą jak wspomniana firma. Chociaż okazuje się że takie rozwiązania potrafi być nadspodziewanie długo na rynku.

Zaletą zarówno Arduino jak i Raspberry było obniżenie kosztów produkcji oraz inwestycja w marketing i wsparcie. Może z inżynierskiego punktu widzienia to niepotrzebne, ale produkty się same nie sprzedadzą i nawet najlepsze trafiają na śmietnik historii. A na reklamę niestety trzeba mieć środki.

  • Lubię! 2
Link do komentarza
Share on other sites

1 godzinę temu, Elvis napisał:

Zaletą zarówno Arduino jak i Raspberry było obniżenie kosztów produkcji oraz inwestycja w marketing i wsparcie. Może z inżynierskiego punktu widzienia to niepotrzebne, ale produkty się same nie sprzedadzą i nawet najlepsze trafiają na śmietnik historii. A na reklamę niestety trzeba mieć środki.

To nie jest tak, że wystarczy pchnąć kasę w marketing i nagle magicznie odnosisz sukces. Arduino marketingu w zasadzie wcale nie robiło na początku, dokumentacja była bardzo taka sobie, a społeczności nie było wcale — ale rozrośli się "po znajomości" i nagle powstała społeczność i zaczęła tworzyć lepszą dokumentację.

Możesz sobie też porównać Raspberry Pi z produktami Intela (zapomniałem już nawet jak to się nazywało). Na marketing poszło na pewno znacznie więcej kasy niż Broadcom mógł sobie pozwolić, ale pies z kulawą nogą się nie zainteresował. Dlaczego? Bo zamiast celować w uczniów czy inne łatwe cele, próbowali to sprzedawać "makerom", którzy po pierwsze mają wyższe wymagania, po drugie duży wybór i mało czasu, a po trzecie już są częścią swoich społeczności. Oczywiście kompletna wtopa z brakiem dokumentacji nie pomogła,  ale wydaje mi się, że ona też jest efektem tego, że społeczność im nie urosła tak szybko, jak na to liczyli.

A teraz spójrzmy na słonia w pokoju. ESP8266. Zaczęło się od jakiegoś artykułu gdzieś na jakimś forum, w którym ktoś się zorientował, że to można przeprogramować. Ludzie się rzucili, mimo, że pierwsze moduły miały tylko dwie używalne nóżki GPIO — bo każdy chciał WiFi, no i cena była właściwa. Za chwilę ktoś zrobił interpreter Lua i płytkę prototypową i nagle połowa webdeveloperów z dnia nadzień stała się inżynierami od internet of things. W tym momencie Espressif zauważył co się dzieje i wykorzystał szansę — zainwestował w dokumentację, wsparcie, zatrudnił zachodnich programistów, zaczął wspierać projekty. Dzisiaj mamy rdzeń Arduino, Lua, MicroPython, JavaScript, kilka Lispów i całą rodzinę firmware-ów AT, do tego prawdopodobnie więcej jest na świecie ESP8266 zaprogramowanych w Arduino niż płytek Arduino.

  • Lubię! 2
Link do komentarza
Share on other sites

13 godzin temu, Elvis napisał:

strasznie nie lubię jak ktoś pisze "najlepiej"  i poleca co-tam-zna-i-lubi, nawet jeśli to HAL i STM32. Po pierwsze CubeMX jest też napisany w Javie (jak Arduino IDE), ale dużo gorzej działa - pod linuxem sypie się jak... lepiej nie napiszę. Arduino chociaż daje się używać pod innymi systemami niż Windows, a cubeMX (nie mylić z HAL), to właściwie aplikacja pod windows i tylko jak ma humor działać

Mam dziwne wrażenie, że Twoja opinia dotycząca CubeMX opiera się tylko i wyłącznie na wrażeniach pracy w linuksie. Pod linuksem nie mam w tej sferze żadnych doświadczeń, natomiast pod windows (7 i 10) używam tego programu od dawna i nie miałem z nim do tej pory żadnego problemu. Oczywiście jedna opinia to może być mało, ale używam tego oprogramowania od dawna na kilku platformach, od Intela pod AMD, również nie widzę tam żadnego problemu z narzutem związanym z Java, być może za wyj. uruchomienia, które oceniam, że trwa dłużej niż inne programy. U mnie CubeMX  nie ma żadnych "humorów", nie działa "dużo gorzej" od arduino. Z chęcią poznałbym opinię na ten temat jeszcze od kogoś innego, a na razie słowo przeciw słowu 🙂

  • Lubię! 1
Link do komentarza
Share on other sites

14 godzin temu, Treker napisał:

Wracając jeszcze do ogólnych "wad" takiego podejścia do mikrokontrolerów: nie uważacie, że to "złe", że na kierunkach technicznych dopuszcza się projekty dyplomowe na Arduino? Oczywiście zdaję sobie sprawę, że ona świetnie ułatwia wykonanie urządzenia, ale czy na tym poziomie nie powinno się wymagać od ludzi już czegoś więcej?

To zależy od projektu. Jeśli jest tam dużo autorskiego kodu, albo jest jakaś praca badawcza a arduino było tylko pomocą to czemu nie. Osobną kwestią jest to ile człowiek się przy tym nauczy, bo widze po ofertach pracy że znajomość arduino nie jest czymś wysoko cenionym, a posiadanie własnego projektu na STM32 to praktycznie gwarancja dostania pierwszej pracy. A moim zdaniem STM32 po opanowaniu podstaw jest znacznie wygodniejsze od AVR.

  • Lubię! 1
Link do komentarza
Share on other sites

@Zealota - do CubeMX próbowałem się przekonać wielokrotnie. Najpierw na Mac OS, później na Linux-ie, w międzyczasie też i pod Windows. Niestety nadal uważam, że to bardzo niedopracowany program. Na mac testowałem już dość dawno, wtedy prawie nic nie działało - pod eclipse zawieszał się cały plugin, samodzielna aplikacja wytrzymywała kilka kliknięć.

Pod linuksem jest nieco lepiej. Program działa, mając dużo szczęścia da się coś wygenerować. Niestety trochę więcej zabawy i całość się wysypuje. Najbardziej mnie rozbawiło jak w wygenerowanym kodzie pojawiły się znaki \r\n nie jako kody, ale dokładnie tak zapisane - jednym słowem, brak testowania.

Natomiast po Windowsem jest znacznie lepiej. Tylko nadal uważam, że jedyne zastosowanie tego narzędzia to szybkie wygenerowanie pierwszego projektu. Po pierwsze po zmianach program czasem się gubi - albo chociaż mój się pogubił. Druga sprawa to niestabilność - zapisałem się kiedyś na kurs programowania USB organizowany przez Kamami. Okazało się, że przykłady działają na starszej wersji CubeMX, a jak ktoś zainstalował najnowszą wówczas wersję to tylko co drugi działa... Pewnie w kolejnej wersji to poprawili. Ale dla mnie to jasny znak - fajna zabawka, nie do używania.

No i na koniec to koszmarny wygląd wygenerowanego przez CubeMX kodu. Ta paskudna miesznka CamelCase ze snake_case, do tego niekończące się komentarze i źle zakodowane końce linii. Może i w eclipse da się to przeżyć, ale jak otworzysz kod vim-em to oczy bolą.

Stąd moja opinia o tym narzędziu. Ale jak ktoś lubi, to niech używa 🙂

Edytowano przez Elvis
  • Lubię! 1
Link do komentarza
Share on other sites

3 minuty temu, Elvis napisał:

No i na koniec to koszmarny wygląd wygenerowanego przez CubeMX kodu. Ta paskudna mieszanak CamelCase ze snake_case, do tego niekończące się komentarze i źle zakodowane końce linii. Może i w eclipse da się to przeżyć, ale jak otworzysz kod vim-em to oczy bolą.

Z tym się zgodzę. Pierwsze co robię z takim kodem pod eclipse to Ctrl+A, Ctrl+Shift+F czyli formatowanie kodu  🙂

Dodatkowo używam tylko do generacji szablonów i podglądu zegarów. Może faktycznie w takim zastosowaniu nie ma problemów o których pisałeś

Edytowano przez Zealota
  • Lubię! 1
Link do komentarza
Share on other sites

12 godzin temu, deshipu napisał:

A nauczycieli przekonać jest łatwo — wystarczy dać im gotowe materiały, plany lekcji, ba, nawet wzory testów — będą łykać jak pelikany, bo sami są zbyt przeciążeni i zapracowani żeby przygotowywać coś oryginalnego.

Oczywiście nie tyczy się to wszystkich nauczycieli, bo jest spora część "aktywnych" osób, która sama szuka ciekawych rozwiązać. Jednak faktycznie "na masową skalę" najlepiej podsuwać nauczycielom gotowe scenariusze lekcji. Ma to też swoje zalety - przynajmniej uczniowie mają ciekawsze zajęcia od programowania "na kartce papieru".

2 godziny temu, deshipu napisał:

Możesz sobie też porównać Raspberry Pi z produktami Intela (zapomniałem już nawet jak to się nazywało). Na marketing poszło na pewno znacznie więcej kasy niż Broadcom mógł sobie pozwolić, ale pies z kulawą nogą się nie zainteresował. Dlaczego? Bo zamiast celować w uczniów czy inne łatwe cele, próbowali to sprzedawać "makerom", którzy po pierwsze mają wyższe wymagania, po drugie duży wybór i mało czasu, a po trzecie już są częścią swoich społeczności. Oczywiście kompletna wtopa z brakiem dokumentacji nie pomogła,  ale wydaje mi się, że ona też jest efektem tego, że społeczność im nie urosła tak szybko, jak na to liczyli.

W przypadku tych produktów budżet na marketing był gigantyczny, patrz: program telewizyjny w USA w stylu "Mam talent", który był produkowany z dużym rozmachem, a opowiadał o ludziach tworzących projekty (chyba) na Genuino 101. Do wad tych platform trzeba też zaliczyć to, że ich zgodność z Arduino była głównie "na papierze". W praktyce sporo rzeczy się rozjeżdżało. Mój "ulubiony" smaczek to fakt, że na Edisonie interfejs 1-wire, wymagał korzystania z dwóch wyprowadzeń układu (bo pojedyncze było zbyt wolne).

29 minut temu, Harnas napisał:

A moim zdaniem STM32 po opanowaniu podstaw jest znacznie wygodniejsze od AVR.

Raz, że wygodniejszy, a dwa, że jednak jest poziom projektów, którego się nie da zrealizować na AVR'a z Arduino (chociażby przez stosunkowo ubogie peryferia).

---

Jeśli chodzi o zalety Arduino to ja bym jeszcze tutaj wypisał fakt, że łatwo znaleźć biblioteki. Nie chodzi mi o fakt istnienia dużej liczby bibliotek, ale chociażby o te managery bibliotek, spisy dostępne na stronie Arduino itd. Dzięki temu znacznie łatwiej ruszyć z tematem. Mam wrażenia, że takie systematyczne zbieranie bibliotek sprawiło też, że więcej ludzi chciało się nimi dzielić i teraz baza bibliotek jest gigantyczna. Oczywiście z czasem znacznie więcej bibliotek pojawiło się na GitHubie, ale tam też można je dość łatwo znaleźć. W przypadku AVR/STM ciężej znaleźć biblioteki pod konkretne peryferia.

Link do komentarza
Share on other sites

33 minuty temu, Treker napisał:

Jeśli chodzi o zalety Arduino to ja bym jeszcze tutaj wypisał fakt, że łatwo znaleźć biblioteki. Nie chodzi mi o fakt istnienia dużej liczby bibliotek, ale chociażby o te managery bibliotek, spisy dostępne na stronie Arduino itd. Dzięki temu znacznie łatwiej ruszyć z tematem.

Ale to przecież jest od niedawna. Dotychczas biblioteki dostępne były w formie plików zip załączonych na losowych forach, w milionie różnych wersji, nie wiadomo która ostatnia, z koniecznością zarejestrowania się na forum żeby je ściągnąć.

  • Lubię! 1
Link do komentarza
Share on other sites

To może już mi pamięć szwankuje, bo byłem przekonany, że ten menager pozwalający na pobieranie bibliotek prosto w programie jest już od bardzo, bardzo dawna.

Przy okazji dziwi mnie trochę, że tak rzadko pojawia się jakaś istotna zmiana w IDE. Ostatnia widoczna zmiana to było chyba dodanie tego narzędzia do rysowania wykresów, od tego czasu żadnych widocznych nowości chyba nie ma.

Link do komentarza
Share on other sites

Jest jeszcze updater po WiFi, eksport binarek, archiwizowanie skeczy, etc. — ale generalnie rewolucji nie ma i dobrze. Podejrzewam, że są dosyć zajęci w tej chwili dodawaniem obsługi nowych płytek.

W sumie jak się spojrzy do release notes, to trochę tego jest: https://www.arduino.cc/en/Main/ReleaseNotes

Edytowano przez deshipu
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.