Překvapilo mne, že na FEL ČVUT nemáte nic lepšího než arduino. U nás v Liberci taky zkouší borci "programovat" arduino, ale množství kritiky je obrovské. Chápu to jako nástroj pro strojaře, kteří neumí programovat bare-metal MCU. Já zase nedovedu navrhnout strojařinu a spolupráce strojař-elektronik opravdu chybí.
Pustil jsem se do http://sourceforge.net/projects/kroklic/, kde je LPC s jádrem Cortex-M4 a s arduinem se to nemůže rovnat. Teď ještě najít čas dokončit tu řídící jednotku.
Podobných projektů je vícero a všechny úspěšnější než ten můj. Můžu si vzpomenout třeba na http://www.3dprinting-r2c2.com/. Nejde mi tedy do hlavy, proč se pořád do tiskáren cpe to příšerné arduino, když je rozhodně z čeho vybírat.
Arduina uz bezia aj na ARM pripadne Intel procesoroch (Galileo). Arduino ma sice svoje muchy, ale siroka dostupnost kniznic (prisiel mi displej z ebay a o 5 minut som vygooglil kniznicu a rozchodil som ho) a nasledna rychlost vyvoja ho robia nenahraditelnym.
Vyvoj na bare-metal dava zmysel hlavne pri seriovej vyrobe, kde optimalizacia a nasledna moznost pouzit menej suciastok alebo lacnejsie suciastky, dokaze pri masovej vyrobe usetrit dost penazi.
Tady není problém s tím, jestli na FEL mají nebo nemají ARM, a proto bastlí na Arduino. Arduino je totiz víceméně standard na řízení těchto tiskáren.
Moje zkušenost je následující: Před asi dvěma lety jsem stavěl Reprap. Nechtělo se mi kupovat Arduino, použil jsem nějakou desku s ARM co jsem zrovna měl. Cena srovnatelná s Arduinem. Pak jsem strávil asi měsíc času, než jsem upravil firmware FiveD, který byl původně pro Arduino, aby jel na ARM. Sice to všechno fungovalo a funguje doteď, ale uzavřel jsem si cestu k novým funkcím, které mezitím komunita do tohoto firmware dodělala.
Teď stavím novou tiskárnu, postavil jsem to na Arduino. Sice se mi kdovíjak nelíbí, ARM byl pěknější, ale funguje. Forknul jsem (zarytí češtináři by řekli, že jsem napíchnul na vidle) jcrocholl/Marlin. Sice s ním taky byly problémy, ale dal jsem to dohromady a úpravy, které jsem v tom musel udělat jsou relativně malé a můžu sledovat využívat vývoj komunity. Mimoto posílám patche do hlavní větve, takže moje práce neskončí v jednom exempláři, ale může být užitečná i někomu jinému.
To je silný argument, ale nelíbí se mi: "Komunita používá arduino právě proto, že arduino používá komunita".
Kromě RepRap existuje spousta dalších stolních CNC a mají ne-arduino řízení. Tím jak je specifická, se komunitní elektronika odděluje od ostatního světa. Funguje i tiskárna, která rozumí pouze kódu G1, takže budu radši nekompatibilní s komunitním firmware než s celým ostatním světem. Doufám, že univerzální CNC v RepRap stylu dovede tisknout, ale nepřežil bych upravovat arduino firmware pro nějaký atypický stroj.
Ještě jsem nepochopil jednu věc, co máš vlastně proti Arduino? Výkonově stačí, kapacitně taky (využívá se přibližně 50-60% kapacity flash, cenově je taky výhodné - za klon Arduino2560 + RAMPS1.4 + 6 POLOLU jsem dal 68$. To je přibližně tolik, kolik jsem dal před 3 lety za desku s ARM (jenom ARM, nic jiného, zbytek jsem musel dobastlit).
Tak proč bych tam dával ARM a musel bych dodělat celý zbytek sám, když za stejnou cenu můžu mít celou elektroniku.
Jediné co mi vadí na Arduino je to jejich šílené IDE. Zatím ho používám (jenom na překlad a programování), nepodařilo se mi zatím dostat do provozuschopného stavu Makefile, abych mohl překládat normálním způsobem.
Upravovat Arduino firmware je úplně to samé jako upravovat jakýkoliv jiný firmware, protože je napsaný v C. Pokud potřebuješ popřehazovat signály, přidat další FET na vyhřívanou postel (heatbed pro ty, co nerozumí česky :-) ), upravit směr točení motorů a podobné věci, stačí změnit pár #define
Arduino je hračka pro děti. To jejich IDE není ani parodie na vývojové prostředí. Daleko víc práce zastane i gedit a já už si zvykl na komfort eclipse.
Kromě toho ten styl arduino je plný nesmyslů. Jako dítě s hračkou bych byl rád, že napíšu PWM a něco to dělá, ale vývojář musí znát periferie čipu, aby věděl jak v čítači nastavit dead-time. Podobných příkladů by se určitě dalo najít mnoho. S arduinem se prostě nedá udělat nic vážného.
Jejich IDE nemusíte používat. Klidně si to programuje v geditu nebo eclipse. Pokud umíte nastavit makra pro kompilaci, tak nebudete mít žádný problém. A ať už si o Arduinu myslíte cokoliv, tak pořád je to AVR mikrořadič. Nic, ani ta deska, vám nezakazuje používat si ho jak chcete. Pokud máte potřebu nastavovat v čítači dead-time, tak vám nic nebrání to udělat.
Jinak řečeno, to co popisujete jako problém sice je problém, ale je to problém vzdělání lidí co s tím pracují, nikoliv dané platformy. Není to hračka pro děti, byť si s tím nejčastěji hrají děti.
Ostatně nejčastější uznávaná kritika je: proč tomu někdo říká Arduino, když jen vyrobil univerzální desku s AVR mikrořadičem, přidal tam USB a na web dal jinak zabalenou verzi avr-gcc doplněnou o mizerný textový editor a pár scriptů, které se beztak dají vygooglit jako "avrdude". S tímto názorem souhlasím, takže vaši kritiku vlastně chápu jen jako kritiku ATMEGA mikrořadiče. A tam jsme zpět u toho, že se to snadno programuje, je to dobrý mikrořadič a výkon to má více než dostatečný za velmi přijatelnou cenu. Co tedy dělá ARM komfortnějším oproti ATMEGA čipům?
přesně tak - to jejich IDE je šíííílenost. Stačí si otevřít projekt, kde je víc files, než se vejde nahoře na lištu. Kromě toho, při spuštění si to nevezme z command line jméno file, který chci otevřít, musím se do toho proklikat. Naštěstí se mi podařilo někde nastavit directory, kde bude hledat "sketch", na directory s mým projektem, tak se tam teď dá dostat na dva kliky. Samozřejmě jenom na kompilaci, editovat bych v tom nechtěl, edituju v normálním editoru. Z celého tohoto IDE přímo čiší to, že autoři očekávali, že se bude používat na hraní a na programy s maximálně 5 files a 100 řádků kódu v každém.
Ovšem to nic neubírá na kvalitě hardware. IDE k tomu vůbec nepotřebuješ. Kdybych nebyl líný a našel, proč mi to nejde slinkovat s použitím standardního gcc a make, tak bych tohle IDE už dávno smazal. Ale vzhledem k tomu, že to funguje i takhle, tak proč s tím ztrácet čas. Snad někdy :-)
Nechápu tohle: "Ostatně nejčastější uznávaná kritika je: proč tomu někdo říká Arduino, když jen vyrobil univerzální desku s AVR mikrořadičem...". Nějak to pojmenovat museli. Nemůžeš očekávat, že všichni budou chtít kupovat něco, čemu se říká "univerzální destička s AVR ke které jsme přidali USB a loader". Mimo jiné, ten loader je taky velmi důležitý. Ještě doteď se mi válí po stole JTAG adapter, který jsem musel zbastlit, abych před 2 lety dostal loader do již zmíněné "univerzální destičky s ARM, ke které jsme přidali USB", kterou jsem použil na minulý reprap. Tahle destička se sice taky nějak jmenovala, ale něco na způsob ABC1234. kdo si to má pamatovat. Tuhle bych už znovu nekoupil jednak kvůli loaderu a druhak kvůli tomu, že jsem už dávno zapomněl, jak se jmenovala.
Mimochodem, stejně tak Rapsberry Pi se taky mohlo jmenovat "velmi malý computer s ARM a konektorama na všechny strany" :-)
Znáte http://ed.am/dev/make/arduino-mk ? Sice to potřebuje mít nainstalované arduino, ale nemusíte ho spouštět ;)
Jasně, že to museli nějak pojmenovat. Ta kritika není myšlena nijak radikálně. Ozývá se prakticky jen ve chvílích, kdy to někdo začne označovat za revoluční technologii, nebo se začne ohánět patenty a průmyslovými vzory. To se v diskusích občas stává, řada lidí skutečnost, že Arduino je ochranná známka, chápou tak, jako kdyby autoři vymysleli AVR a zachránili tak svět před temnotou. Teprve pak se kontruje argumentem, že tam žádná revoluce nebyla.
Na podobných deskách jsem se učil v době studií na VŠ (konec minulého tisíciletí). Některé byly dost nadupané (i s FPGA), jiné za příčetné peníze. Zaměřené to bylo na studenty, tedy normální lidi. Software k tomu byl zdarma, ať již od Atmelu nebo Xilinxu, a fungoval. Akorát ty desky nebyly natolik profláknuté jako platforma a ani tam nebyla snaha o standardizaci. V každém případě desky byly dodávané za přijatelné ceny a SW k nim byl zdarma i s dokumentací. Tahle praxe existuje dodnes, viz všelijaké development boardy, discovery boardy atd.
Arduino našlo marketingovou mezeru na trhu a uspělo. A to bez toho, že by dodali nový nebo inovativní produkt. Revoluce se konala v tom, že dokázali k tomu projektu nalákat nadkritické množství lidí. Dnes je zná skoro každý a klony se dají sehnat za cenu pod $10. A to tomu ještě není ani deset let. Perličkou je, že některé z klonů Arduina jsou starší než Arduino - výrobce jen před pár lety změnil konektory tak, aby byly "Arduino compatible". To je výhoda toho, když je něco udělané podle referenčních schemat od Atmelu a FTDI.
PS: Občas někdo za revoluční označí Wiring. To ano, to revoluční počin byl. Ale tahle revoluce se odehrála dříve, než se Arduino objevilo.
To je zhruba to co jsem měl na mysli. Arduino Due + ICE (nebo jak se jmenuje ten JTAG debugger od Atmelu) vidím jako rozumnou záležitost. Nerozumný je jen způsob programování a komunitní firmware z něj vychází. Navíc mi také nepřijde logické slučovat arduino a Atmel jako by to bylo to samé.
Co se ARM proti AVR týče to by vydalo na knihu. Na AVR jsem kdysi spokojeně začínal, ale jsou to 8 bit procesory, což má přísná omezení. Cortex-M jsou 32 bit, takže není problém spočítat 1000*1000. Systém přerušení je mnohem komplikovanější a tím, že jsou RAM, FLASH a někdy i speciální ROM adresované společně lze kouzlit daleko více. Spíš se výrobci snaží odlehčit ARM pro nejjednodušší aplikace než, že by vylepšovali 8 bit rodinu. Zajímavé jsou nové LPC800, které by cenou a spotřebou mohly překonat nejenom AVR, ale i PIC16.
on není problém spočítat 1000*1000 ani na Arduino
unsigned long int a,b,c;
a=1000;
b=1000;
c=a*b;
:-)
Spíš mě překvapuje, že Marlin (firmware) je plný floating point operací a ono to stíhá. Na ARMu jsem měl všechno integer, abych šetřil processor, který byl na 60MHz a teď vidím, že podstatně slabší AVR na 16MHz to stíhá ve floatech.
Kromě toho ten můj poslední výtvor je postavený na Delta mechanice, takže je tam spousta výpočtů s odmocninama a stíhá to taky.
Ale jak správně píšeš - na AVR musíš mít funkce extra na práci se stringy ve flash a na stringy v ram, prostě hnus. Zlatý flat 32bitový adresový prostor. Ale co naděláš. Na PICu to máš taky a ještě horší.
Já vidím největší problém ve spojení AVR a jakékoliv pohyblivé části s přispěním lidové tvořivosti. To už bych udělal jenom kdybych dostal papír od člověka, který rozhodl o použití AVR, na kterým vezme veškerý rizika na sebe a bude tam jeno úředně ověřený podpis.
Atmel neumí dělat analogařinu, to ví kjaždý, kdo měl v ruce něco od nich (nespolehlivý brownout v XMEGA s odběrem 128uA, probouzení oscilátoru 500us, nefungující RESETy a krystaly u starších řad, kalibrace kde čeho ve FALSH,...). No a protože ta číslicová technika stojí a padá s analogem (napájení, power management, časování, A/D převodníky), je při pspojení špiček z motorů, domácího bastl zdroje a AVR zaděláno na průšvih a je to jenom otázka času.
Před cca osmi lety jsem se nachomýtl z pozice subdodavatele k jednomu CNC ve fabrice. Měli tam na pojezdu motor tuším 2,2kW a ovládala ho deska, na které bylo mozkem AVRko. Řídící systém prošel zkušebnou (i na EMC), zdroj měl všechny certifikace, rozvaděč typovou i kusovou zkoušku včetně změn napájení a EMC. Těchhle desek bylo ve světě pár set a bez problémů. Jenom se tehdy Atmelu asi nějak nepovedla šarže procesorů. Pak stačilo, aby v hale večer rozsvítili a odešla při tom jedna 300W lineární halogenka. Motor se rozjel, zlomil chlapovi ruku a byl průšvih jak sviňa. To jste neviděli, jak lítaly papíry a jak po sobě všichni házeli exkrementy, montovaly se do toho úřady, padaly smluvní pokuty,...
Od té doby si dávám pozor, abych neměl AVRko nikde, kde jsou pohyblivý části, tam dávám výhradně procesory od Renesasu, který mají bezpečnostní certifikace. Ostatně, na nich (řada uPD - bývalý NEC) jedou třeba frekvenční měniče a PLC od Schneider Electric... A třeba řada H8S od Renesasu (bývalý Hitachi) by tomu co do bezpečnosti vyhověla. Navíc má možnost uploadu firmware po UARTu. GNU kompilátor KPit, IDE mají založený na Eclipse. Má to přátelský TQFP pouzdro, pro připojení k PC klidně to FTDI a jupí čerte, jedééém. Tak proč se crcat s pochybným AVR? Jenom proto, že ho mají na pultě u slona?
Mám podobnou špatnou zkušenost s nezvládnutou analogařinou s procesory značky Analog Devices. :) Ale dík za informaci, musím to prověřit, zrovna stojím před problémem výběru spolehlivého MCU pro funkčně sice nenáročnou aplikaci, ovšem vyžadující maximální spolehlivost, EMC/EMI odolnost/pasivitu, dostupnost (ne ve stylu momentálně ne, snad přespříští kvartál atp.)
U AD mě to celkem překvapuje, ti analogařinu zvládají celkem dobře. Asi zrovna přetáhli inženýra z jiné firmy :D Ale je fakt, že procesory od nich jsem ještě nepouřil. Na EMC pochcípaly zatím jenom AVRka a PICy.
Každopádně, zkušenostti s Renesasem jsou pozitivní. Viděl jsem na vlastní oči likvidaci výrobní linky, na které se vyrobilo několik 6M zařízení s H8S/2118 a H8S/2134. Zbyla tam krabice "špatných" procesorů, kolem asi 800ks. Renesas si je vyžádal neaanalýzu. Výsledek byl, že u 650 byla ujetá tolerance a nepotkalo se to s programátorem, takže nešly naflashovat. Kdyby s to povedlo naflashovat, nebyla by to závada s vlivem na funkci nebo bezpečnost výrobku. Jeden balíček byl špatně uskladněný, dostala se tam vlhkost a procesory se poškodily během reflow. 7ks bylo vadných z výrobní linky Renesasu. Zbytek byl poškozený vyšším napětím, ty byly z výměny po testech, takže nejspíš závada zdroje výrobku nebo testeru. Musel jsem si to 3x přečít, skoro tomu nešlo věřit.
U Atmelu jsem zažil, ža zákazník objednl 250 procesorů a ani u jednoho nefungoval externí resetovací obvod. A dohledat věci jako "oscilátor AT90S8535" je na krátký googlení a dlouhý čtení :(
Teď tu myslím jen demonstrujete své ignorantství. Nastavit eclipse aby generoval něco co se dá nahrát do arduina je otázkou chvilky googlení, a můžete si sám vybrat jestli to budete psát v "programovacím jazyce arduino" nebo třeba v čistém C.
Jo a najít jak v ardiunu nastavit dead time je záležitostí jednoho dotazu do google.
Tak tiskárna není felu a není v ní arduino, ale s arduinem kompatibilní deska. Použité MCU (ATmega 2860) pro potřeby 3d tisku dostačuje.
Desky založené na arduinu (připadně RAMPS shield přímo na arduino) mají několik důležitých výhod - existuje na ně čile vyvíjený kvalitní opensource firmware, který funguje víceméně okamžitě. A pak ještě bývají skladem a stojí pod sto euro, abych vyjmenoval zbylé důvody proti ARMovým řešením (4pi, smoothieboard, r2c2) ;)
Suhlas. K znamejsim armovym projektom patri tiez smoothieboard (http://smoothieware.org/) postaveny na cortex-m3.