Arduino a knihovny

Idris

  • *****
  • 2 286
Re:Arduino a knihovny
« Odpověď #45 kdy: 08. 03. 2021, 01:54:38 »
Citace od: Křišťan Surname 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/
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í.


Longin

  • ***
  • 184
Re:Arduino a knihovny
« Odpověď #46 kdy: 08. 03. 2021, 08:10:15 »
Také to vysvětluje, proč se vyrojilo tolik "odborníků", co si myslí, že jsou embeďáci. :D

Idris

  • *****
  • 2 286
Re:Arduino a knihovny
« Odpověď #47 kdy: 08. 03. 2021, 11:23:29 »
Citace od: Longin kdy 08. 03. 2021, 08:10:15
Také to vysvětluje, proč se vyrojilo tolik "odborníků", co si myslí, že jsou embeďáci. :D
Nestačí umět používat setup/loop? :D

Re:Arduino a knihovny
« Odpověď #48 kdy: 08. 03. 2021, 19:11:58 »
Citace od: Idris kdy 08. 03. 2021, 01:54:38
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 :)

Re:Arduino a knihovny
« Odpověď #49 kdy: 08. 03. 2021, 20:24:00 »
Citace od: Mirek Prýmek kdy 08. 03. 2021, 19:11:58
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).

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.

Citace od: Mirek Prýmek kdy 08. 03. 2021, 19:11:58
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?

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.


Idris

  • *****
  • 2 286
Re:Arduino a knihovny
« Odpověď #50 kdy: 08. 03. 2021, 20:26:32 »
Citace od: Mirek Prýmek kdy 08. 03. 2021, 19:11:58
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).
Na tom Svazarmu něco bylo.

Idris

  • *****
  • 2 286
Re:Arduino a knihovny
« Odpověď #51 kdy: 08. 03. 2021, 20:27:49 »
Citace od: Mirek Prýmek kdy 08. 03. 2021, 19:11:58
Možná by šel zbastlit nějakej pěknej, čistej framework v Rustu nebo Go?
Určitě šel, ale kdo to udělá?

Re:Arduino a knihovny
« Odpověď #52 kdy: 08. 03. 2021, 21:49:40 »
Citace od: Ondrej Nemecek kdy 08. 03. 2021, 20:24:00
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/ )

Citace od: Ondrej Nemecek kdy 08. 03. 2021, 20:24:00
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).

Citace od: Idris kdy 08. 03. 2021, 20:27:49
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? ;)

Idris

  • *****
  • 2 286
Re:Arduino a knihovny
« Odpověď #53 kdy: 08. 03. 2021, 21:59:06 »
Citace od: Mirek Prýmek kdy 08. 03. 2021, 21:49:40
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ů.

Re:Arduino a knihovny
« Odpověď #54 kdy: 08. 03. 2021, 22:04:51 »
Citace od: Idris kdy 08. 03. 2021, 21:59:06
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 :)

Idris

  • *****
  • 2 286
Re:Arduino a knihovny
« Odpověď #55 kdy: 08. 03. 2021, 22:07:50 »
Citace od: Mirek Prýmek kdy 08. 03. 2021, 22:04:51
Citace od: Idris kdy 08. 03. 2021, 21:59:06
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++...
Na tohle má Go mnohem lepší syntax. Ale v tom Rustu by to asi taky šlo, je to o zvyku, blikat diodou se dá i s borrow checkerem :)

Idris

  • *****
  • 2 286
Re:Arduino a knihovny
« Odpověď #56 kdy: 08. 03. 2021, 22:12:45 »
Citace od: Mirek Prýmek kdy 08. 03. 2021, 22:04:51
Citace od: Idris kdy 08. 03. 2021, 21:59:06
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ů.
Takhle nějak bych si to představoval. Kanály, eventy, transformace. Vůbec neřešit vlákna, coroutiny, procesy, paměť...
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í).

Re:Arduino a knihovny
« Odpověď #57 kdy: 08. 03. 2021, 22:13:20 »
Citace od: Idris kdy 08. 03. 2021, 22:07:50
Na tohle má Go mnohem lepší syntax.
To urcite jo, ale plati se za to, zejo, nic neni zadarmo...

Citace od: Idris kdy 08. 03. 2021, 22:07:50
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.

Re:Arduino a knihovny
« Odpověď #58 kdy: 08. 03. 2021, 22:16:08 »
Citace od: Idris kdy 08. 03. 2021, 22:12:45
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.

Idris

  • *****
  • 2 286
Re:Arduino a knihovny
« Odpověď #59 kdy: 08. 03. 2021, 22:18:53 »
Citace od: Mirek Prýmek kdy 08. 03. 2021, 22:13:20
Citace od: Idris kdy 08. 03. 2021, 22:07:50
Na tohle má Go mnohem lepší syntax.
To urcite jo, ale plati se za to, zejo, nic neni zadarmo...

Citace od: Idris kdy 08. 03. 2021, 22:07:50
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.
IMHO stačí slušný "select" (jako v Go, Rust to má tuším jako makro, kdyby byl nativní, není co řešit).