„konkurencni“ projekt obdobneho charakteru je ethernut, zrovna davam dohromady desku, http://www.ethernut.de
Osobně jsem na kontaktním poli vyzkoušel jedno minimalistické zapojení s atmega8 + enc28j60
http://www.tuxgraphics.org/electronics/200611/embedded-webserver.shtml
Sice jsou vlastnosti MCU (1 kB RAM, 8 kB Flash) omezující, ale funguje.
A je zde jeste jeden rozdil mezi EtherNut a Arduino. Ethernut je primarne navrzen pro „ethernetove aplikace“, tomu odpovida i HW, kdy je ethernetovy port zakladnim vybavenim desky a kde nejslabsi Ethernut je postaven kolem ATmega128, coz je znacne lepsi CPU nez ATmega8/168/328 (Arduino); rozdil neni ve vykonu, ale v mnozstvi dostupne pameti, hlavne RAM. Pak, EtherNut se nevaze jen na 8-bit AVR CPU, dnes existuje i deska pro ARM a mozna i jine platformy.
Ardruino se spise hodi na jednodussi veci, na pokusy se senzory, rizeni malych robotu, pripadne jako externi jednotka k PC. Ethernet je jen jednou z moznosti a nezda se mi jako uplne idelni, spise je to ukazka, ze to take jde udelat (externi HW TCP/IP stack, jen IPv4). Pokud clovek vazne uvazuje o psani SW pro Etehrnet, EtherNut je lepsi volba nez Arduino s Ethernet Shieldem.
Pro zacatecnika s „embedded systemy“ se mi zda Arduino jako lepsi volba. Nejsem si uz tak jisty zda je dobre zacinat hned s Ethernet Shield. Ale treba me autor v serialu presvedci, jak moc se mylim…
Jeste jeden dulezity rozdil je ve zpusobu programovani. Andruino ma uz v CPU nahrany zakladni firmaware, ktery umozni nahrani uzivatelskych aplikaci pres USB/RS232. EtherNut nic takoveho nema pokud vim (zmenilo se snad neco?) a pro jeho programovani potrebujete jeste programator, tedy dalsi malou krabicku, ktere se pripoji mezi PC a EtherNut. Programatoru existuje mnoho, pro ruzna rozhrani USB/RS232/LPT. S timto programatorem lze pak treba i prepsat zavadec v Arduino desce… ;-) Pokud nemate ISP programator, pak vyhoda pro Arduino.
S vývojovým prostředí Arduina snadno zbastlí jednoduchý program kdekdo. Tím ale síla vývojového prostředí končí.
S IDE Arduina se vše programuje v nekonečné smyčce, bez přerušení, bez uspávání. Jinak v něm programovat prakticky nelze.
I ten pitomý teploměr s displejem funguje mnohem hůř, než by mohl. Proč? Protože když se posílají data na displej, nelze číst teplotu. Alespoň trochu zkušený programátor by nechal procesor spát, a probouzel by ho událostmi jako „čas pro měření teploty uplynul“, „na displej je možné odeslat další bajt“.
Takže Arduino má několik slabin:
- IDE
- Hardware, který se nemusí vypořádat s uspáním procesoru (některé verze mají nevhodný stabilizátor)
- Nechápu, proč použili drahý samostatný USB<->serial čip (který navíc natvrdo obsadil sériový port ATmegy) namísto ATmegy s USB, nebo chytrého firmware, které USB protokol na té nejnižší rychlosti také zvládne.
Jako hardware na pokusy mi přijde zajímavý také Teensy. je menší, má nativní USB, a je levnější. Lze jej také programovat pomocí Arduino IDE. http://www.pjrc.com/teensy/