Arduino a knihovny

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Arduino a knihovny
« Odpověď #30 kdy: 06. 03. 2021, 16:33:18 »
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 :-)
To zní skoro hororově...

Trochu odbočím: Nějaký tip na knihovny/OS pro eZ80?


Re:Arduino a knihovny
« Odpověď #31 kdy: 06. 03. 2021, 16:34:45 »
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.
Jasný, tak to máš každopádně pravdu. Dneska stavět cokoli kromě nejprimitivnějších sensorů na AVR nedává moc smysl a ten nedostatek periferií a RAMky je děsná limitace.

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 :-)
Je to možný. Anebo je to už jenom tím názvem. Někdo slyší "OS", představí si Windows a už vidí, jak bude mít problémy s balastem pitomostí v registrech :))) Proto je potřeba si nějakej RTOS vyzkoušet, aby člověk zjistil, že to je vlastně jenom přepínání konktextu a primitivní semafory a fronty :)

Re:Arduino a knihovny
« Odpověď #32 kdy: 06. 03. 2021, 16:36:34 »
Trochu odbočím: Nějaký tip na knihovny/OS pro eZ80?
Proč?

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Arduino a knihovny
« Odpověď #33 kdy: 06. 03. 2021, 16:44:29 »
Trochu odbočím: Nějaký tip na knihovny/OS pro eZ80?
Proč?
Protože to je super procesor.

Re:Arduino a knihovny
« Odpověď #34 kdy: 06. 03. 2021, 19:02:29 »
Protože to je super procesor.
Na hraní, kvůli kompatibilitě se Z80, nebo kvůli něčemu jinýmu?


Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Arduino a knihovny
« Odpověď #35 kdy: 06. 03. 2021, 19:05:35 »
Protože to je super procesor.
Na hraní, kvůli kompatibilitě se Z80, nebo kvůli něčemu jinýmu?
Do produkce, je směšně levný, superskalární a zvládá 16 MB RAM, což je v embedded segmentu docela luxus. (Ta kompatibilita se Z80 je v dnešní době podružná až nedůležitá.)

Re:Arduino a knihovny
« Odpověď #36 kdy: 06. 03. 2021, 20:53:05 »
Do produkce, je směšně levný, superskalární a zvládá 16 MB RAM, což je v embedded segmentu docela luxus. (Ta kompatibilita se Z80 je v dnešní době podružná až nedůležitá.)
To je zajímavý. Ale slyším o něm teda poprvé, nijak zvlášť se asi nepoužívá.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Arduino a knihovny
« Odpověď #37 kdy: 06. 03. 2021, 21:23:03 »
Do produkce, je směšně levný, superskalární a zvládá 16 MB RAM, což je v embedded segmentu docela luxus. (Ta kompatibilita se Z80 je v dnešní době podružná až nedůležitá.)
To je zajímavý. Ale slyším o něm teda poprvé, nijak zvlášť se asi nepoužívá.
Používá se dost, ale nejsou k němu kity na hraní (kdysi byly). Je nativně 24-bitový a třístupňově superskalární, takže poměrně rychlý. Ideální pro RT s nízkým příkonem.

Re:Arduino a knihovny
« Odpověď #38 kdy: 06. 03. 2021, 22:00:28 »
Používá se dost, ale nejsou k němu kity na hraní (kdysi byly). Je nativně 24-bitový a třístupňově superskalární, takže poměrně rychlý. Ideální pro RT s nízkým příkonem.
Na Wikipedii mě zaujalo "equally predictable when it comes to exact execution times", což mi teda nejde dohromady s těma pajplajnama, ale tak třeba jsou deterministické, nebo to tvrzení nesmím brát tak doslova :)

Re:Arduino a knihovny
« Odpověď #39 kdy: 06. 03. 2021, 22:02:19 »
Protože teď není až zas tak moc co dělat, pořídil jsem si nějaké Arduino klony a začal experimentovat. A protože jsem trochu víc na sw než na hw, začal jsem se hrabat i v sw knihovnách. A nemile mne překvapila jejich kvalita. Vše je zpravidla podřízeno jednoduchosti a rychlosti, objevují se i systematické chyby. Pro příklady typu blikání led nebo čtení teploty to vystačí, ale pokud začnete uvažovat nad nízkou spotřebou a optimalizací, začíná to být problém. Neobvyklé nejsou prázdné časové smyčky a podobné záležitosti, naprosto nevhodné pro dlouhodobé používání. Fóra jsou pak plná stížností, že nějaký program přestává fungovat po x hodinách nebo dnech.
Mezi svátky jsem se nudil a vydal jsem se toutéž cestou. Koupil jsem originál arduino uno , doporučený zdroj 12 V a ethernet shield, abych si postavil jednoduchý web, s použitím Arduino knihoven. (Jen pro test dostupnosti).
 Byl jsem nadšený, do 30 minut od vybalení to jelo. Asi tak den.
Tak jsem začal pátrat. Kromě modifikace jednoho pinu mi bylo doporučeno, že se to hřeje kvůli (doporučeným) 12V, ať tam dám 7V zdroj. No nebudu se rozepisovat, postupně jsem vystřídal asi 4 zdroje, různá voltáž, přes USB nebo Jack - různý TTL. Teď jsem na 9V Jack a vydrží  mi to už týden :-O (Ironie). Program a knihovny pořád ty stejné.
Jak jsem to vyřešil ? Půjde to do .... šuplete.
« Poslední změna: 06. 03. 2021, 22:08:06 od FKoudelka »

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Arduino a knihovny
« Odpověď #40 kdy: 06. 03. 2021, 22:20:29 »
Používá se dost, ale nejsou k němu kity na hraní (kdysi byly). Je nativně 24-bitový a třístupňově superskalární, takže poměrně rychlý. Ideální pro RT s nízkým příkonem.
Na Wikipedii mě zaujalo "equally predictable when it comes to exact execution times", což mi teda nejde dohromady s těma pajplajnama, ale tak třeba jsou deterministické, nebo to tvrzení nesmím brát tak doslova :)
Ty pajplajny jsou celkem primitivní, žádná intelí černá magie.

Re:Arduino a knihovny
« Odpověď #41 kdy: 07. 03. 2021, 20:23:39 »
Mezi svátky jsem se nudil a vydal jsem se toutéž cestou. Koupil jsem originál arduino uno , doporučený zdroj 12 V a ethernet shield, abych si postavil jednoduchý web, s použitím Arduino knihoven. (Jen pro test dostupnosti).
 Byl jsem nadšený, do 30 minut od vybalení to jelo. Asi tak den.
Tak jsem začal pátrat. Kromě modifikace jednoho pinu mi bylo doporučeno, že se to hřeje kvůli (doporučeným) 12V, ať tam dám 7V zdroj. No nebudu se rozepisovat, postupně jsem vystřídal asi 4 zdroje, různá voltáž, přes USB nebo Jack - různý TTL. Teď jsem na 9V Jack a vydrží  mi to už týden :-O (Ironie). Program a knihovny pořád ty stejné.
Jak jsem to vyřešil ? Půjde to do .... šuplete.
Loni na jaře jsem měl v práci volněji tak jsem dostal interní úkol IoT - spáchat něco co bude kontrolovat kvalitu vzduchu v kanceláři a upozorňovat, pokud je pořeba vyvětrat.
Trochu jsem si zadání rozšiřil, krabička měří teplotu, vlhkost, tlak, CO2, organické plyny, hluk, světlo a pohyb v okolí. Frekvence skenování 1x za sekundu, frekvence odesílání dat přes wifi na server 1x za minutu. Na serveru pak běží webová služba ukládající data do databáze vyhodnocující limity a rozesílající maily. K tomu pak aplikace pro zobrazování dat v grafech a konfiguraci limitů, email adres  a pár dalších věcí.
Krabičku založenou na ESP32 + hromádku senzorů jsem v kanceláři na stole zapnul v srpnu 2020 od té doby běží bez výpadku (nebo zaseknutí řeší automaticky nějaký interní HW watchdog) já v kanceláři od září nejsem jen přes VPN - za mě se spolehlivostí a funkčností spokojenost.

Re:Arduino a knihovny
« Odpověď #42 kdy: 07. 03. 2021, 21:55:23 »
Mezi svátky jsem se nudil a vydal jsem se toutéž cestou. Koupil jsem originál arduino uno , doporučený zdroj 12 V a ethernet shield, abych si postavil jednoduchý web, s použitím Arduino knihoven. (Jen pro test dostupnosti).
 Byl jsem nadšený, do 30 minut od vybalení to jelo. Asi tak den.
Tak jsem začal pátrat. Kromě modifikace jednoho pinu mi bylo doporučeno, že se to hřeje kvůli (doporučeným) 12V, ať tam dám 7V zdroj. No nebudu se rozepisovat, postupně jsem vystřídal asi 4 zdroje, různá voltáž, přes USB nebo Jack - různý TTL. Teď jsem na 9V Jack a vydrží  mi to už týden :-O (Ironie). Program a knihovny pořád ty stejné.
Jak jsem to vyřešil ? Půjde to do .... šuplete.
Loni na jaře jsem měl v práci volněji tak jsem dostal interní úkol IoT - spáchat něco co bude kontrolovat kvalitu vzduchu v kanceláři a upozorňovat, pokud je pořeba vyvětrat.
Trochu jsem si zadání rozšiřil, krabička měří teplotu, vlhkost, tlak, CO2, organické plyny, hluk, světlo a pohyb v okolí. Frekvence skenování 1x za sekundu, frekvence odesílání dat přes wifi na server 1x za minutu. Na serveru pak běží webová služba ukládající data do databáze vyhodnocující limity a rozesílající maily. K tomu pak aplikace pro zobrazování dat v grafech a konfiguraci limitů, email adres  a pár dalších věcí.
Krabičku založenou na ESP32 + hromádku senzorů jsem v kanceláři na stole zapnul v srpnu 2020 od té doby běží bez výpadku (nebo zaseknutí řeší automaticky nějaký interní HW watchdog) já v kanceláři od září nejsem jen přes VPN - za mě se spolehlivostí a funkčností spokojenost.
FKoudelka mluví o Arduinu Uno s ethernet shieldem a ty o ESP32. Takže to je asi tak jakoby někdo nadával, že mu Trabant jede špatně a tys na to reagoval, že s Porsche jsi nezaznamenal žádný problém :)

Ethernet shieldy pro Arduino Uno opravdu jsou problematické samy o sobě (speciálně ENC28J60) a knihovny navíc nejsou moc kvalitní. Takže to opravdu moc stabilní být nemusí. Důvodů může být spousta, od sice deterministických, ale pro nováčka těžko odhalitelných, přes černou magii (HTTP komunikace je už docela na hranici toho, co má smysl s AVR dělat, takže stačí mít tam pár nešťastných dynamických alokací a nedeterministické padání je na světě...) až po opravdu hw problémy. ESP32 s pohodlným dostatkem paměti a zabudovaným wifi chipem je úplně jiný případ.

Re:Arduino a knihovny
« Odpověď #43 kdy: 07. 03. 2021, 23:36:52 »
Pro začátečníka je nelehké se v „Arduino“ světe vyznat - různý hw (nejen ATmega328 ale taky třeba zmíněné ESP32 nebo taky STM32), k tomu různé knihovny a navíc Arduino IDE. A většina zdrojů opomíjí některá témata, třeba výběr adekvátního hw, vhodné programátorské postupy nebo právě informace o RT systémech. Podle mě moho Arduino bastlířů ani pořádně neví, jak to pod kapotou funguje (IMHO trochu didaktická chyba, pokud to měl být původě hlavně vzdělávací projekt). To tak nějak i koreluje s úrovní knihoven a setup/loop() mantrou (nic proti, ale bylo by asi fajn mít i pokročilejší možnosti, které se ostatně mohou ledaskdy i snáze používat).

Chci tím třeba říct, že třeba netuší, co může čekat (co získá) pokud bude (s Arduino IDE) používat místo Arduina třeba STM32 BluePill.
« Poslední změna: 07. 03. 2021, 23:46:45 od Ondrej Nemecek »

Re:Arduino a knihovny
« Odpověď #44 kdy: 08. 03. 2021, 00:08:59 »
Ono to bude souviset s tím, že Arduino původně vůbec neměla být vzdělávací platforma (a podle některých není ani dnes). Vzniklo to někdy kolem roku 2005 jako jednoduchej nástroj pro umělce, kteří si chtějí rozblikat nějakou svoji instalaci, aniž by se zbytečně museli něco učit.

The objective of the thesis was to make it easy for artists and designers to work with electronics, by abstracting away the often complicated details of electronics so they can focus on their own objectives.

https://arduinohistory.github.io/