Arduino a knihovny

Re:Arduino a knihovny
« Odpověď #15 kdy: 05. 03. 2021, 16:53:32 »
Pro ESP8266 a ESP32 se dá vyvíjet v Micropython, Lua (+ ve standardním Arduino IDE). Pro řadu použití je to IMHO celkem zajímavá alternativa k Arduino s wifi jakožto bonusem. 

ESP čipy jsou i ve spoustě spotřebních zařízení (např. chytrá zásuvka z OBI s ESP8266 - hotový kus hw, kam si můžete skvěle dobastlit další funkce, čidla, displej, atd.)


Re:Arduino a knihovny
« Odpověď #16 kdy: 05. 03. 2021, 23:05:26 »
Nedávno si někdo stěžoval, že tam nejsou výjimky, takže osekané to asi je, ale přežít se to dá. Už to nějakou dobu nesleduju, třeba to někdo s aktuální znalostí potvrdí/vyvrátí.
Preklada se normalnim C++ prekladacem, akorat zdrojaky jsou predtim specialne predzpracovane. Staci si zapnout verbose compilation a clovek to vidi, co se tam deje. Takze normalni C++ pouzit jde, neni to zadny "specialni jazyk" (navzdory urban legends).

Samozrejme jina otazka je, co pouzivaji a podporuji knihovny.

Specialne pak z duvodu, jak preklad probiha, byva (byvala?) tendence cpat do hlavickoveho souboru i implementaci, ktera by se do nej v "normalnim" C++ nedavala.


Re:Arduino a knihovny
« Odpověď #17 kdy: 05. 03. 2021, 23:14:21 »
Robiť rôzne riěšenia do domu, alebo do auta na zákazku (vrámci voľného času) A neskôr keby sa mi v tom darilo tak by som nahradil moj terajší zdroj obživy (FE development v ReactJS), tým čo ma baví naj-viac (elektronika a low level programovanie v C++).
To neni tak zabavny ani lukrativni, jak se to mozna na prvni pohled zda. Vyvoj HW je vyrazne narocnejsi, drazsi a rizikovejsi nez vyvoj software. Vysoka cena vyvoje se musi bud rozpocitat do (sta)tisicovych serii nebo musi jit o nejakou oblast, kde ve vzduchu litaji opravdu velke castky (a pak to zas nikdo nesveri amaterovi).

Tim nechci od bastleni odrazovat, v zadnym pripade, je to skvela zabava a seberozvoj, ale spis je to o bastleni si pro sebe a pro kamarady, nebo o klasickym zamestnani v nejake firme, nez ze by z toho koukaly nejake snadne miliony, ktere jenom cekaji, az se pro ne nejaky amater* sehne :)

---
* "amater" neni mysleno pejorativne. Ja jsem v hw taky amater - samouk.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Arduino a knihovny
« Odpověď #18 kdy: 06. 03. 2021, 00:04:59 »
Nedávno si někdo stěžoval, že tam nejsou výjimky, takže osekané to asi je, ale přežít se to dá. Už to nějakou dobu nesleduju, třeba to někdo s aktuální znalostí potvrdí/vyvrátí.
Preklada se normalnim C++ prekladacem, akorat zdrojaky jsou predtim specialne predzpracovane. Staci si zapnout verbose compilation a clovek to vidi, co se tam deje. Takze normalni C++ pouzit jde, neni to zadny "specialni jazyk" (navzdory urban legends).

Samozrejme jina otazka je, co pouzivaji a podporuji knihovny.

Specialne pak z duvodu, jak preklad probiha, byva (byvala?) tendence cpat do hlavickoveho souboru i implementaci, ktera by se do nej v "normalnim" C++ nedavala.


Taky to je o nestandardních nastaveních, třeba ty výjimky jsou prostě jen vypnuté (protože kód pro unwinding je poměrně velký a vesměs nepotřebný).

Re:Arduino a knihovny
« Odpověď #19 kdy: 06. 03. 2021, 00:08:05 »
Taky to je o nestandardních nastaveních, třeba ty výjimky jsou prostě jen vypnuté (protože kód pro unwinding je poměrně velký a vesměs nepotřebný).
Jo, to je možný, nevím, C++ se dvacet let vyhýbám jak čert kříži.


Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Arduino a knihovny
« Odpověď #20 kdy: 06. 03. 2021, 01:00:24 »
Taky to je o nestandardních nastaveních, třeba ty výjimky jsou prostě jen vypnuté (protože kód pro unwinding je poměrně velký a vesměs nepotřebný).
Jo, to je možný, nevím, C++ se dvacet let vyhýbám jak čert kříži.
Co máš proti C++?

Re:Arduino a knihovny
« Odpověď #21 kdy: 06. 03. 2021, 01:01:27 »
Co máš proti C++?
Spíš nemám nic pro :)

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Arduino a knihovny
« Odpověď #22 kdy: 06. 03. 2021, 01:07:06 »

Co máš proti C++?
Spíš nemám nic pro :)
Ale píšeš "dvacet let", tos přeskočil C++03, C++11 atd. V podstatě úplně jiný jazyk...

Re:Arduino a knihovny
« Odpověď #23 kdy: 06. 03. 2021, 01:09:07 »
Ale píšeš "dvacet let", tos přeskočil C++03, C++11 atd. V podstatě úplně jiný jazyk...
Hm. A vůbec mi to neva :)

Re:Arduino a knihovny
« Odpověď #24 kdy: 06. 03. 2021, 10:52:49 »
Nedávno si někdo stěžoval, že tam nejsou výjimky, takže osekané to asi je, ale přežít se to dá. Už to nějakou dobu nesleduju, třeba to někdo s aktuální znalostí potvrdí/vyvrátí.

avr-g++ backend výjimky nepodporuje, takže se podle dokumentace musí front-endu předávat -fno-exceptions. Možná s Clangem by to šlo? Nebo rovnou s Rustem nebo Zigem, obojí má standardní error handling i na AVR. Ten poslední jmenovanej je na osmibitech raketa :-)

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Arduino a knihovny
« Odpověď #25 kdy: 06. 03. 2021, 11:21:38 »
Nedávno si někdo stěžoval, že tam nejsou výjimky, takže osekané to asi je, ale přežít se to dá. Už to nějakou dobu nesleduju, třeba to někdo s aktuální znalostí potvrdí/vyvrátí.

avr-g++ backend výjimky nepodporuje, takže se podle dokumentace musí front-endu předávat -fno-exceptions. Možná s Clangem by to šlo? Nebo rovnou s Rustem nebo Zigem, obojí má standardní error handling i na AVR. Ten poslední jmenovanej je na osmibitech raketa :-)
Taky jsem pro Rust bez výjimek :)

Re:Arduino a knihovny
« Odpověď #26 kdy: 06. 03. 2021, 11:29:14 »
MicroPython (nebo fork CircuitPython) je skvělá věc, když si to můžete dovolit (chce dost ROM i RAM). Máte pak v podstatě i na mikrokontroleru ekvivalent ssh přístupu a dá se velmi dobře ladit a vyvíjet. Na ESP s MicroPythonem to jde i přes wifi, over-the-air updaty jsou automaticky k dispozici.

Co se Arduino knihoven týče, ani mi tolik nevadí ta organizace do setup/loop funkcí. Je to primitivní, ale nic mě nenutí to používat - chovám se k setup() jako k main(), a v ní si napíšu vlastní event loop nebo cokoliv chci. Nebo jejich main.c s vyhodím úplně a používám vlastní main.c s klasickou funkcí main.

Co mi na nich vadí je ta kvalita. Je to jak kdyby někdo vzal desktop program a jen ho portoval na free-standing AVR. Všude drahý lookupy, zbytečný volání funkcí bez cachingu, ve standardní knihovně se používá heap, což je na mikru s několika sty bajty paměti sebevražda, atd.

Ale lidi jsou nepoučitelný. Rok co rok dělám na projektech, kde firma nejprve udělala proof of concept na Arduinu, pak si řekli "počkat, ono to už funguje!" a místo opravdového vývoje jen vzali Arduino a překlopili ho na custom desku. Po roce "dolaďování" bývají obvykle připravení to zahodit i s rukama :-) protože AVR je finanční a časová sebevražda.

Re:Arduino a knihovny
« Odpověď #27 kdy: 06. 03. 2021, 15:15:51 »
Co se Arduino knihoven týče, ani mi tolik nevadí ta organizace do setup/loop funkcí. Je to primitivní, ale nic mě nenutí to používat - chovám se k setup() jako k main(), a v ní si napíšu vlastní event loop nebo cokoliv chci.
On je problém spíš v tom "jednovláknovém přístupu", který Arduino nastolilo. Spousta knihoven obsahuje delaye, blokující čekání apod., což je úplně zbytečný.

Ale lidi jsou nepoučitelný. Rok co rok dělám na projektech, kde firma nejprve udělala proof of concept na Arduinu, pak si řekli "počkat, ono to už funguje!" a místo opravdového vývoje jen vzali Arduino a překlopili ho na custom desku. Po roce "dolaďování" bývají obvykle připravení to zahodit i s rukama :-) protože AVR je finanční a časová sebevražda.
Takhle absolutně to těžko můžeš říct. Je to prostě procesor jako jakejkoliv jinej. My třeba ve firmě máme produkt postavenej na AVR a funguje, prodané jsou desetitisíce.

Akorát teda dneska už AVR moc nedává smysl, už je poněkud za zenitem :)

Re:Arduino a knihovny
« Odpověď #28 kdy: 06. 03. 2021, 15:43:47 »
Jo, myslel jsem to v nových produktech. Vídám běžně IoT projekty staré 1-2 roky, kde se začalo na Arduinu, pak se postupně nabalovaly periferie, a výsledek je ATMega2560 za 250 Kč, kolem ní další tisícovka v periferiích (RTC, Ethernet, CAN, lepší ADC atd.), a k tomu neskutečná doba zabitá hackováním kolem těch nejtriviálnějších problémů (například aby to umělo odeslat HTTPS GET). Přitom "moderní" (8 let staré) STM32 to všechno integruje za slabou stokorunu, knihovny s běžnou funkcionalitou na tom normálně fungují, není třeba šít na koleni SSL. V lidech pořád existuje jakýsi mem, že AVR = prověřená a stabilní věc (protože nečetli errata :) zatímco cokoliv novějšího je risk.

Myslím, že právě Arduino má prsty v tom odporu k RTOS, co vídám - operační systém nechceme, protože je to další point of failure, ale klidně postavíme aplikaci s gigantickou MotherOfAllMainLoops, ve které může kterákoliv pochybná knihovna blokovat :-)

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Arduino a knihovny
« Odpověď #29 kdy: 06. 03. 2021, 16:30:37 »
On je problém spíš v tom "jednovláknovém přístupu", který Arduino nastolilo. Spousta knihoven obsahuje delaye, blokující čekání apod., což je úplně zbytečný.
"Jednovláknový" neznamená "blokující", klasické "non-blocking IO" (i ne-IO) je jednovláknové.