Radíme si navzájem

Datum
Vložil
Titulek

Re: Re: Re: Znáte?

Nemyslel jsem to jízlivě. Jenom mluvím z vlastní zkušenosti. Pokud si řekneš např., že by jsi chtěl mít některé věci doma připojené k síti a ovládat je po internetu, tak budeš řešit cenu. Pak ti vyjde asi nejlevněji koupit na ebay nějaké arduino mini nebo nano s 32kB flash a k tomu ethernet modul ENC28J60. U toho ethernetu doporučuju koupit si variantu s vestavěným stabilizátorem, aby jsi to mohl napájet 5V. Vlastní čip je totiž na 3.3V . No a tak máš k dispozici atmela s 32 kB flash paměti. Pro čip ENC28J60 je výborná arduino knihovna UIPEthernet, kterou stvořil Norbert Truchsess. Takže vezmeš tuto knihovnu, necháš si zapnuté DHCP, protože to je "jednodušší" a začneš pokusovat. No a najednou přijde šok. Zjistíš, že když chceš jenom rozsvítit ledku po ethernetu, tak se ti už program nevejde do flash pamětu atmela! Takže vypneš DHCP a nastavíš si pevnou IP adresu. Pak už ti konečně zbyde i trochu místa na kus programu, který by mohl něco užitečného dělat. Ok, další pokus. Chvíli to vypadá, že to i funguje, ale pak to zamrzne. Pátráš a zkoušíš hodinu, dvě, den, několik dnů... Pak zjistíš, že po přeložení programu musí zbývat určité minimální množství volné SRAM v procesoru. Řekněme 500 bajtů. To znamená kompletní refaktoring kódu a minimalizaci množství a velikosti proměnných. Takže máme řekněme dva týdny až měsíc pokusů pryč, ale když se to povede, tak svítá naděje na lepší zítřky. Stále však budeš svádět boj s malou flash pamětí, což se dozvíš ihned při překladu v IDE a bohužel také s malou SRAM, což se zpravidla projevuje až za chodu programu, který zamrzá a nebo dělá nepředvídatelná zvěrstva. Další krok tedy bude vypnutí UDP protokolu. Tím ušetříš cca 5kB flash, což je sakra znát. Takže teď už můžeš svůj program na rozsvícení ledky upravit, aby šla také zhasnout. No a až to všechno odladíš, tak budeš chtít přidat ještě jednu led a opět nastane začarovaný kruh s malou pamětí, takže vezmeš externí programátor, vymažeš s čipu bootloader a začneš jej krmit jenom pomocí USB programátoru, aby jsi využil 2kB, které zabíral bootloader.
Ale většinu lidí to tak dlouho nebaví, takže to celé mrsknou do šuflíku ;-)

Samozřejmě existuje také možnost použít arduino mega 2560 a k němu ethernet shield s čipem W5100, ale to se dostaneš finančně do úplně jiného levelu. Při nákupu v čechách ti ze dvou tisíc Kč moc nezbude a to asi nebude ta správná cesta, jak si doma zavést "internet věcí" pro 10 žárovek.

Takže tím jsem jenom chtěl říci, že rozhodně nechci nikoho podceňovat nebo odrazovat, ale upozorňuji na možná přehnaná očekávání při vývoji arduino ethernet projektů ;-)

Zpět na diskuzi

Vyhledávání

arduino8.cz © 2015 Všechna práva vyhrazena.