Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Mirek Prýmek

Stran: 1 ... 17 18 [19] 20 21 ... 618
271
Vývoj / Re:Arduino a knihovny
« kdy: 08. 03. 2021, 22:50:55 »
Různé libůstky a blbůstky se najdou všude. Na blikání diodou stačí bare bones CSP. Ovšem ani to nikde v embedded/IoT nevidím.
Embedaci jsou z velke casti dost stara skola, pokrok je, ze uz neprogramuji v assembleru :)

272
Vývoj / Re:Arduino a knihovny
« kdy: 08. 03. 2021, 22:41:17 »
Mají async/await. Kanály taky (mpsc, posláním se předá vlastnictví (“move”)).
Jo, vim. Ale nemel jsem zatim cas si to dobre prostudovat a vyzkouset. Dabel je vzdycky v detailu. V Erlangu jsem treba poznal, jak extremne sikovny, az bych rekl v nekterych pripadech nezbytny, je moznost selektivniho vyberu zprav. Coz treba Go nema a Rust nevim. Ale strasne to zvysi expresivnost. (Jak rika klasik: ...a pritom takova blbost :) )

273
Vývoj / Re:Arduino a knihovny
« kdy: 08. 03. 2021, 22:16:08 »
To je easy, stačí CSP. Buď osekané Go, nebo třeba Smalltalk s kanálama (a odpovídající syntaxí) by byl na tohle super (trochu úlet, ale pozitivní).
Jj, tak jsem to presne myslel - dat lidem CSP s peknym API a vhodnou sadou nastroju a lisacky jim vubec nerikat, ze je to CSP :)

Akorat teda treba u toho Rustu jsem si jeste neprostudoval, jakej je soucasnej stav prace s konkurenci. Nejaky kanaly jsem nekde z rychliku videl, ale jak je to pouzitelny netusim.

274
Vývoj / Re:Arduino a knihovny
« kdy: 08. 03. 2021, 22:13:20 »
Na tohle má Go mnohem lepší syntax.
To urcite jo, ale plati se za to, zejo, nic neni zadarmo...

Ale v tom Rustu by to asi taky šlo, je to o zvyku, blikat diodou se dá i s borrow checkerem :)
Kdyby se vhodne navrhlo API, tak by se na vetsine mist na ten borrow checking vubec nemuselo narazit. Kdyz budes vetsinou predavat skalary (u toho blikani: cislo pinu a true/false) a slozitejsi veci jako zpracovani eventu budou z drtive vetsiny immutable struktury, neni problem.

275
Vývoj / Re:Arduino a knihovny
« kdy: 08. 03. 2021, 22:04:51 »
Rust by technicky šel (jen teda nevím, nakolik je vhodný pro začátečníky... vlastně vím...), ale to Go — cos zmiňoval výše — není dobrý nápad, ledaže by existovala nějaká verze s korutinami a kanály, ale bez GC (jo, vím o TinyGo, ale to není to pravé). Smalltalk by byl vhodný z didaktických důvodů.
Jo, já si taky myslím, že Rust by byl daleko vhodnější. "Pro začátečníky" - no ten framework by musel být natolik vysokoúrovňový, aby se nováček se samotným jazykem vůbec netrápil - podobně jako se v Arduino netrápí s C++...

K té druhé úplně vysokoúrovňové variantě taková kacířská myšlenka: spoustu lidí (včetně mě) hodně baví Factorio. Z informatickýho hlediska je to vlastně stavění masivně paralelního stroje. Ale z takových primitiv, která jsou naprosto srozumitelná a dají se skvěle spojovat do větších celků. Takže člověk úplně bezbolestně vytvoří něco, co by v C absolutně neměl šanci dát, i kdyby to byla funkčně ekvivalentní věc. Takhle nějak bych si to představoval. Kanály, eventy, transformace. Vůbec neřešit vlákna, coroutiny, procesy, paměť... Prostě jenom skládat srozumitelná primitiva ve funkční celek. To by byla nirvána :)

276
Vývoj / Re:Arduino a knihovny
« kdy: 08. 03. 2021, 21:49:40 »
Mě by se líbilo to samé, ale pro programátory, tj. zprostředkovat pokročilejším vývojářům  specifika a různé možnosti v přístupu k embedded vývoji. Klidně to udělat na základě nějaké existující vývojové desky (nevím zda se na to hodí Arduino, ale třeba ten ESP nebo STM32 mi přijde vhodný určitě). Věřím že spousta programátorů si ráda pohraje nebo se jim to bude hodit v nějakém projektu.
Existují různé knížky pro Arduino, které jdou fakt krok za krokem přes různé experimenty. Většina asi jenom v angličtině, ale u nás máme úplně úžasný triptych od Martina Malého. Každá z knížek má jiné téma, takže si člověk musí dobře vybrat, co ho opravdu zajímá. Jsou k dispozici zdarma v PDF, ale silně bych doporučil je koupit papírové, protože si to autor fakt zaslouží, je to úžasně udělané. (EDIT: to nejdůležitější bych málem zapomněl: https://www.nic.cz/page/4205/v-edici-cznic-vychazi-kniha-data-cipy-procesory-autorem-je-znamy-publicista-martin-maly/ )

Tak mě přijde, že by šel klidně zahrnout i docela vysokoúrovňový přístup, četl jsem o robotech programovaných v Smalltalku apod. Události, fronty, zpracování streamů, hlídání limitů - IMHO podle mě ideální pro řadu aplikací. A zkušenější programátoři se s tím už určitě setkali jinde, navíc je tu synergie se současným trendem mikroslužeb. To by bylo ideální téma na Arduino v2.0 nebo konkurenční projekt.
To částečně existuje ve formě Micropythonu nebo Lua a mně osobně to moc nesedí. Něco tomu podle mě chybí. Mně by se líbil framework buď fakt výkonný (rustí zero-cost abstraction by mohly být nadějné) nebo naopak geniálně vysokoúrovňový (ten smalltalk je dobrej příklad, ale možná i nějaká spešl verze Erlangu by mohla být cool). Micropython mi přijde přesně v tom prostředku, který mi přijde nejmíň sexy (čistě subjektivní záležitost).

Určitě šel, ale kdo to udělá?
Tak chce to chytrej design, na to je potřeba někoho trochu zkušenějšího, s otevřenou myslí a rozhledem, a pak je to kupa rutinní práce, která by byla krásným zadáním diplomky. Takže minimálně tu druhou část bys mohl trochu pošťouchnout ty, ne? ;)

277
Vývoj / Re:Arduino a knihovny
« kdy: 08. 03. 2021, 19:11:58 »
Hm, to hodně vysvětluje. Vzdělávání v této oblasti by mělo být zaměřené na asynchronní, událostmi řízené aplikace. To je asi jen zbožné přání.
To by bylo moc pěkný téma na celodenní brainstorming+hackaton.

Prvně si vyjasnit, co myslím slovem "vzdělání" - u Arduina a podobných popularizačních projektů to imho není "naučit dobré základy pro seriozní vývoj v embedded", ale spíš "poskytnout děckám a jiným laikům co nejvíc cool quick win, abysme je vůbec k zájmu o techniku přitáhli" (a tohle se mu imho daří fantasticky, alespoň v mojí generaci, u mladších si tím nejsem jistej).

Udělat něco, co by poskytlo podobně nízkoprahový quick win a zároveň neučilo špatným návykům, to by byla fakt výzva. Protože bohužel v C ten asynchronní, událostmi řízený kód vyžaduje spoustu ne moc srozumitelné bižuterie, která by asi laiky dost odrazovala. Možná by šel zbastlit nějakej pěknej, čistej framework v Rustu nebo Go?

Byl by to super hackaton, úplně to vidím, hned bych do toho šel :)

278
Vývoj / Re:Arduino a knihovny
« 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.

279
Vývoj / Re:Arduino a knihovny
« 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 :)

280
Vývoj / Re:Arduino a knihovny
« 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á.

281
Vývoj / Re:Arduino a knihovny
« 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?

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

283
Vývoj / Re:Arduino a knihovny
« 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 :)

284
Vývoj / Re:Arduino a knihovny
« 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 :)

285
Vývoj / Re:Arduino a knihovny
« 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 :)

Stran: 1 ... 17 18 [19] 20 21 ... 618