Vlákno názorů k článku Arduino Mega na zbernici s PC od ventYl - Nejako som nechapal, preco na taku primitivnost, ako...

  • Článek je starý, nové názory již nelze přidávat.
  • 22. 9. 2021 11:46

    ventYl

    Nejako som nechapal, preco na taku primitivnost, ako meranie jedneho Dallasu treba atmegu32. Potom som sa pozrel do zdrojakov a vidim, ze arduino.h a C++. Not good.

    Kazdy, kto prerastie Arduino shieldy, vezme do ruky pajkovacku, nebodaj si navrhne vlastny plosak, by sa uz mal na Arduino vykaslat. Obmedzuje ho to v rozlete. V skutocnosti Arduino neprinasa ziadne zjednodusenie, vsetko co vie arduino sa da dosiahnut inak, ale stale podobne jednoducho. Inu Atmega je primitivny kontroller. A ked clovek z Arduina vystupi, zisti, ze aj ine kontrollery, ktore toho vedia viac su vlastne rovnako primitivne ako Atmega, len opat trocha ine.

    S Arduinom sa cloveku lahko moze zdat OK, ze na takyto "stredne velky automatizacny task" treba Atmega32, aj ked sa v skutocnosti podobna funkcnost da vtrepat do <7kB. (v 1kB bootloaderi mam serial / i2c komunikacny protokol s podporou remote flashingu a diagnostiky odvodeny od ISO14229-1).

    A dalej mi pride cely dizajn uplne blby. Komunikacna kniznica by mala byt niekde na spodku a aplikacia by mala byt nad nou. Takto je to strasne tazkopadne, ak by som chcel do komunikacie pridat nieco, na co autor na zaciatku nemyslel. Pritom sa to da aj naopak, bez C++ka a s ovela mensim memory footprintom.

  • 22. 9. 2021 12:03

    Bez Podezdívky

    Podle mě Arduino má svoje místo, teď jde jen o to, kde je ještě vhodné a kde nikoliv. Má několik zásadních výhod. V první řadě bych to viděl hlavně na integrovaný převodník USB-UART a bootloader, díky čemuž se snadno programuje bez nutnosti vlastnit cokoliv jiného než USB kabel. Pak je výhoda velký ekosystém knihoven (ano, vím, kvalita může být poněkud... různá) a obrovská komunita, co dokáže poradit s vyskytnuvšími se problémy.

    Ale jinak souhlasím.

  • 22. 9. 2021 12:09

    ventYl

    Tak zasa no. USB-uart prevodnik je zalezitost max. dvoch eur. Jedina vec, cez ktoru nepojde vlak je ten predprogramovany bootloader. Programator pri ATmege moc zmysel nema, pretoze nim zas tak vela spravit nemozno (M8 nema ani debugwire), ale oplati sa nanho zvyknut si. Na inych procesoroch je to uzitocna vec. Ale USBasp stoji tiez radovo jednotky EUR a pre velkych junkies, co este niekde maju paralelny port, da sa urobit doma uplne z nuly asi za jedno euro.

  • 22. 9. 2021 12:53

    Zdeno Sekerák

    Tak ono je to hlavne o tom ze koupim za 2 dolary desticku pripojim a jedu. Proste ta pocatecny zed je hrozne nizko (temer zadna neni).
    Pak IDE ktere vybec neni spatne. Ne neni to na profi praci, je to zase o jednoduchosti kdy si nainstaluji a uz prvni tutorial jede. Par minut a z toho ditete je najednou hacker. Pak uz je to o postupu jak se s tim hraje a pripaji desticky a dela co ho napadne.

    Kazdy kdo zacne rikat ze je Arduino spatne uz tohle ma za sebou a mel by si vybrat neco profi. Pak kdyz se bude trapit 2 dni s instalaci "neceho" oceni ze tady to slo samo a za cenu velikeho zjednoduseni.

    PS: Mne arduino bavi prave pro tu jednoduchost. Na profi veci mame HW oddeleni ktere to udela 100x lepe ale az za 2 mesice.

    22. 9. 2021, 12:54 editováno autorem komentáře

  • 22. 9. 2021 13:08

    ventYl

    Ja prave pisem, ze v momente, ked uz som schopny do ruky zobrat pajkovacku, alebo mi prestavaju tak obecne stacit shieldy, je vhodny cas sa na cele Arduino vykaslat. Dalo by sa povedat, ze v momente, ked mu zacne clovek rozumiet, tak ho zacne brzdit.

    A ono to trapenie je vacsinou prinosne. Ked proste pichnem Arduino do USBcka a ono to ide, v IDEcku kliknem na jedno tlacidlo a program mam v Arduine, tak je sice fajn, ze to funguje, ale moc som sa nenaucil. To moze byt OK, pokial nieco potrebujem rozpohybovat a nejako velmi netuzim vediet, ako to funguje (napr. umelci, na ktorych bolo Arduino povodne cielene). Na druhu stranu ak stravim dva dni riesenim toho, ze "nieco" nefunguje a nakoniec to rozchodim, tak mi to da viac, nez dva dni stahovania examplov z netu a vytesovania sa nad sebekomplikova­nejsim ozivenym shieldom, ktory chodi bez toho aby som napisal jediny riadok zdrojoveho kodu.

    Nezacinali sme vsetci takto s Linuxom? Teda aspon ti, co s nim zacinali v 90tkach a kratko po roku 2000?

  • 22. 9. 2021 22:41

    Jan Hrach
    Stříbrný podporovatel

    > Ja prave pisem, ze v momente, ked uz som schopny do ruky zobrat pajkovacku, je vhodny cas sa na cele Arduino vykaslat.

    Já myslím, že pájku dokážu vzít do ruky moc dobře, ale Arduino používám pořád - jednak na bastlení přímo ty desky (typicky nějaké Fakeduino Nano za $2 z Aliexpressu), jednak custom desky typicky dělám tak, že tam plácnu AtMegu328 a v ní mám Arduino SW.

    > Ked proste pichnem Arduino do USBcka a ono to ide, v IDEcku kliknem na jedno tlacidlo a program mam v Arduine, tak je sice fajn, ze to funguje, ale moc som sa nenaucil.

    Ale kompilátor si taky nepíšeš sám a svoje MCU si nevyrábíš sám z křemíku, byť by ses při tom jistě mnoho naučil. Alespoň já mám typicky cíl někde dál, a rozumět MCU je k tomu samozřejmě důležité, ale není to primární cíl.

    Btw. zrovna ta Dallas knihovna je pěkně zákeřná v tom, že requestTempera­tures() defaultně blokuje, jenže teploměrům trvá změření teploty asi 800 ms.

  • 23. 9. 2021 0:58

    Pavel Píša

    Nové STM má rovnou v sobě DFU, takže lze rovnou přes dfu-util --device 0483:df11 -a 0 --dfuse-address 0x08000000 -D neco.bin naflashovat. Přitom ten bootlader v ATmega lze asi softwarově zlikvidovat, nevím. Ten v STM ROM vydrží vše. Jasné je, že kromě DFU nabízí každý současný Cortex-M MCU SWD, takže stačí jeden STM kit nebo maličký adaptér SWD_USB, třeba náš http://pikron.com/pages/products/accessories.html , jeho konstrukci jsem již několikrát zdarma nabízel, jestli si ho nechtějí udělat další nebo se lze dohodnout na nějaké hromadnější výrobě, a můžete krokovat přes OpenOCD každou desku a to na úrovni HW. Jak něco takového nabídne historické AVR?

    Když již musíte Arduino studio tak je třeba Teensy 4.1, to má druhý malým MCU vyřešený HW loader kompatabilní se studiem. Můžete zkusit to a až zjistíte jak je Adruino omezující, tak si na něm pustit NuttX.

    Jinak různé USB a CAN a RS-485 loadery jsme si pro každý náš systém připravili. Jsou od nás ve veřejných GITech... atd. Takže AVR nemá již nic co nabídnout. Jen tu komunitu podobných tápačů ve tmě a pak schopných, kteří kvůli neochotě tápačů jít dále, složitě připravují řešení, jak ze slušných procesorů udělat omezené hračky s tím jediným ne-IDE, které jsou ochotní někteří připustit.

  • 24. 9. 2021 7:06

    Jan Hrach
    Stříbrný podporovatel

    > Přitom ten bootlader v ATmega lze asi softwarově zlikvidovat, nevím.

    Lze, ale velmi složitě (na zápis do flashky jsou speciální instrukce, které se jinde nepoužívají). To DFU v STM zase vyžaduje skočit do něj z tvé aplikace, ne? Takže to můžeš snadno bricknout tak, aby to vyžadovalo fyzický reset. Oproti tomu Ardiuna se resetují (a do bootloaderu se vstupuje) zataháním za RTS linku sériáku.

  • 24. 9. 2021 18:09

    Pavel Píša

    DFU minimálně na L476RE je v ROM od výroby a při přivedení VCC na BOOT0 najede do DFU rovnou po resetu. Takže nevidím jak to zlikvidovat. Otázka je, jak je BOOT0 na různých kitech dostupný. Na HW od Ing. Porazila pro Elektroline se na to myslelo a dělal jsem na to pak další level boot loaderu přes CAN, do které lze vynutit start dalším uživatelským tlačítkem, i když je jednotka v rozvaděči.

  • 24. 9. 2021 18:14

    Jan Hrach
    Stříbrný podporovatel

    > Otázka je, jak je BOOT0 na různých kitech dostupný.

    No ne, na kitech samozřejmě dostupný je (používal jsem jenom čínský BluePill), jde mi ale o to, že to někam daleko dám a pak to bricknu a co pak jako budu dělat. (kamarád se mi vysmál, že se tohle může stát jenom blbci, a že přece do vzdálených zařízení bude nahrávat jenom otestovaný firmware… načež asi za půl roku přesně takhle bricknul při ladění jednoho problému zařízení 250 km daleko)

  • 22. 9. 2021 22:33

    Jan Hrach
    Stříbrný podporovatel

    Kde jsi vzal tu atmegu32? V článku ani v diskuzi se string "32" vůbec nevyskytuje (kromě "STM32").

    > V skutocnosti Arduino neprinasa ziadne zjednodusenie, vsetko co vie arduino sa da dosiahnut inak, ale stale podobne jednoducho.

    Tak ukaž jak se vyčte třeba ten Dallas nebo DHT22 „bez arduina“.

    > Nejako som nechapal, preco na taku primitivnost, ako meranie jedneho Dallasu treba atmegu32.

    Není potřeba, ale rozdíl cenový mezi tímto a nějakým MCU který „stačí“ je asi 10 Kč. To se jednak nevyplatí řešit když se vyrábí pár kusů, a jednak i když se těch pár kusů vyrábí, tak je lepší tam dát tu součástku o 10 Kč dražší, aby až pak přijde další požadavek, se to dalo jednoduše doprogramovat. (Pokud někdo dělá velké série, tak to samozřejmě vidí jinak.)