Osobně si myslím že Arduino je mrtvé... Existuje spousta jiných a lepších alternativ např friendlyarm desky, které mají v sobě ARMy, ethernet, vga a mnoho dalšího... jednoduše se na tom spustí linux, je to malé a může to sloužit k více učelům než Arduino... Nehledě na to že v dnešní době jsou už k dispozici i vývojové Kity s GPU čipy na desce určené například pro OpenGL ES :)
Co by to bylo za diskuzi bez opozice. Jeste, ze tu jsem. Mam nejaky to arduino i nejaky ten SBC s linuxem a je pravda, ze pripojit se po ssh pres wifi a zkompilovat si kod primo na zarizeni pomoci gcc je proste - jak to rict - prijemneeee.
Ale je tu moment, kdy to chcete dat do auta, nebo nekam na baterku a pak najednou pocitate kazdy miliamper. A linuxy mi berou par watu, coz znamena treba nekolikSET mA. A to uz v aute nejde. Zarizeni, ktery se davaji do aut maji mit max spotrebu v radu 10-20mA, jinak uz ohrozujete startovani. No, a kdyz si koupite malinkou gelovku, tak mate za nepriznivych okolnosti treba jen par hodin. S arduinem jsem videl nejaky projekt, ktery ho posila kazdou vterinu do spani a muzete s nim jet tydny na baterku (bohuzel si ted nevybavim, co to bylo).
Mozna se tu v diskuzi dozvim o nejakych SBC s linuxem, ktere maji efektivne 0.1W ?
Leckterá dnešní auta mají v klidu takovou spotřebu, že už je nějakých 50mA navíc vůbec nerozhází, a baterku beztak vysají za pár týdnů.
S některými verzemi Arduina se zrovna spaní CPU vůbec nedoporučuje. Mají špatně navržený zdroj, a přechod do spánku způsobí prudké zakolísání napájení směrem vzhůru (použitý stabilizátor má poměrně velký minimální povolený odběr).
Pokud chcete s baterií šetřit, zvolte něco, co má pulsní regulátor, a hned dostanete z jedné 9V baterie o polovinu delší výdrž. Anebo rovnou nízkopříkonové CPU od TI, kde se lze s příkonem dostat na jednotky mikroampérů (s Arduinem jde spíš o stovky mikroampérů až miliampéry).
Dovoluji si s Vámi naprosto nesouhlasit.
Existuje sice nekvalitní autoelektropříslušenství z Číny, například autorádia s klidovou stand-by spotřebou 50mA, ale současný kvalitní vůz má odběr z baterie max 5 mA (centrál a hodiny) případně s GSM ochranou max 15 mA. Běžné samovybíjení autobaterie je větším problémem než klidový odběr.
Arduino neznám detailně, tak nepolemizuji s vaším tvrzením o napájení, ale divím se tomu. Běžný LDO lineární stabilizátor uspání mcu zvládá obvykle bez problémů.
Použití 9V baterie a LDO regulátoru na 3V3 je nesmysl. Tato kombinace lze použít maximálně na Lion baterii 3,7V - u vyšších napájení (jako je třeba 9V) se zcela normálně používá impulzní regulátor. Ale to není šetření. Šetření s napájením znamená, že se snažíme omezit spotřebu například tím, že máme záložní Lithiovou baterii, která má výdrž mnoho let a hlavní napájení se zapíná jen v případě potřeby. Tj. mcu spí/stojí a buď se sám pravidelně probouzí hodinami nebo wakeup pinem (např. po stisku tlačítka). Moderní ARMy mají v šetřících módech mizivou spotřebu. Např. STM32F103 má v plném zatížení na 72 MHz cca 50 mA spotřebu, ale ve stand-by modu, kdy mu běží interní RC oscilátor, RTC hodiny a watchdog, má spotřebu jen cca 3 uA. Takže jen z pouhého nabitého kondenzátoru běží mnoho týdnů.
Použití nízkopříjmových variant mcu není nezbytné, ale pochopitelně že např. STM32L umožní i další snižování spotřeby.
Dobrá, správně fungující auto má klidovou spotřebu 5-15mA. Správně fungující auto s běžným autorádiem už může mít 50-100mA (i více). Špatně fungující auto může mít i 150mA, aniž by si toho často jezdící majitel všiml. Vysoký klidový odběr z baterie zůstává majiteli dlouho skrytý. Až do dne, kdy nenastartuje.
(Právě jsem řešil, zda mám měnič 5V 3A s klidovou spotřebou 7mA nechat ve svém autě běžet trvale, nebo řešit jeho vypínání (a zapínání, pokud bych chtěl něco dobíjet v parkujícím autě). Když jsem přeměřil autorádio, ukazovalo více (a to v klidu ukazuje pouze hodiny). Nakonec jsem to zapojil na napájení na Unilink konektoru (překvapivě také nevypínané).)
Standardní Arduino nemá pulzní měnič ani náhodou. Stabilizátor k prvním verzím Arduina měl údajně nenulový minimální odběr (mám to z druhé ruky, a schémata na webu arduino.cc jeho typ neuvádějí). Zdá se, že od modelu Duemilanove (2009) to už napravili. Ten nový MC33269D-5.0 už tuto neblahou vlastnost nemá, ale zase si to vynahrazuje slušným klidovým odběrem (výrobce garantuje max. 20mA). LDO zde znamená 1V. Popravdě nechápu, proč tam takový regulátor vůbec dávají, a nejedou jen na 5V.
A nejenom to. Měly by být diferenciální a měly by mít předepsanou impedanci na obou stranách (rozdílnou pro low a high speed zařízení). USB datové linky má v Arduinu na starosti FT232RL, a to si řeší konverzi na USB úrovně samo a vystačí si k tomu s 5V napájením. Stejně jako použitá Atmega.
Právě proto mi konektor pro externí napájení "z baterie", na kterém je pověšený takový stabilizátor, nedává moc smysl. Dioda, která Arduino chrání proti přepólování, má úbytek 0,6V (kdyby použili k tomu určenou Schottkyho diodu, dostali by se pod 0,2V). Za ní je stabilizátor s vysokým klidovým odběrem a ztrátou minimálně 1V. Přepínání mezi tímto zdrojem a USB kabelem neřeší moderní přepínač napájení, ale obvod s operačním zesilovačem, který si vezme další 1mA. A FT232RL je napájený trvale, i když při provozu na baterie nemá co na práci.
Takže ve výsledku:
- špatný design napájení znemožňuje napájet Arduino ze 4 tužkových baterií a mít přitom stabilní napětí
- nejméně 25% energie z baterie se ztratí ve stabilizátoru (ale spíš 45% při napájení z 9V, neboť 6.5V baterie jaksi neexistují)
- klidový odběr stabilizátoru a obvodů kolem je vyšší než odběr Atmegy v zátěži
Takze to vnimam negativne, nikdo nehlasi linux se spotrebou 10mA. K diskuzi o spotrebe arduina - kuknete sem
http://hackaday.com/2009/08/13/sleepy-arduino-saves-batteries/
rikaji ze z 20mA (coz je docela fajn) umeji hackem udelat 30uA (extrem).
Spotřeba 20mA s Atmegou vůbec není fajn - za 90% této spotřeby mohou obvody okolo.
30uA je spotřeba samotného čipu ve sleep režimu - jak ukazuje obrázek v linku, na leckterou aplikaci může stačit.
Nicméně obyčejný uživatel Arduino IDE si sleep režimů vůbec neužije - Arduino IDE vše řeší nekonečnou smyčkou.
Ale já mluvím o programech, které používají Arduino IDE. A tam:
1. Všechny programy jsou standardně psány jako nekonečná smyčka s neustálým testováním úrovní na některém GPIO.
2. A dokonce ani delay() nepoužívá WDT ani náhodou:
void delay(unsigned long ms)
{
unsigned long start = millis();
while (millis() - start <= ms)
;
}
Takže ano, procesory Atmel krásně podporují sleep režimy. Ale Arduino IDE je ukázkou, jak programy pro mikrokontroléry nepsat. (Možná proto je tak populární.)
Ale ja tiez hovorim o programoch ktore pouzivaju Arduino IDE. S touto kniznicou som dost experimentoval, jednoducho ak sa zavola sleep() z kniznice Narcoleptic v nekonecnej slucke ktora je default v Arduino sketchi tak procesor prejde do sleep modu a zobudi ho az WDT.
void NarcolepticClass::sleep(uint8_t wdt_period) {
wdt_enable(wdt_period);
wdt_reset();
WDTCSR |= _BV(WDIE);
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_mode();
wdt_disable();
WDTCSR &= ~_BV(WDIE);
}
Teda jednoducho povedane, staci nakopirovat kniznicu Narcoleptic do adresara "libraries", jeden #include a pouzit miesto delay() funkciu sleep() z kniznice a usporny rezim krasne funguje. Napriklad hodiny s nepodsvietenym LCD a externym RTC mali odber cca. 300 uA (z toho 250 uA odoberal samotny displej).
Arduino je testovací a prototypovací deska. Pokud jde o low power aplikace, odladíte zapojení na arduinu a pak pro už odladěné zapojení navrhnete samostatnou desku jen s tím co je potřeba. Ale pokud si chcete stále hrát s destičkou a nic koncového z toho není tak je to podle mě k prdu :-)
Stručně řečeno zastaralá ARM jádra, celá deska je relativně drahá (to už je levnější si koupit dva routery) a displej je k tomu většinou za tučný příplatek. Na ebay je spousta takovýchle desek pod různým názvem. Pokud není podmínkou Linux, tak se dají sehnat levnější desky s Cortex M3.
Pokud člověk umí hledat a nakupovat tak se dostane i se shippingem pod 1500,- Kč u mini2440 s velikým displejem. Záleží jen na tom kolik za to chcete utratit reálně. Nicméně ano je to zastaralé mnohem zajímavější jsou novější desky, které na sobě mají GPU čip. Ovšem i to mini2440 najde uplatnění v jednoúčelových aplikacích například vstupní terminál do firmy. Tam si myslím že by se dalo její nasazení využít. Ve většině případů si s tím stejně jenom hrají nadšenci :)
Na hraní doporučuji STM32 VL Discovery kit za cca 250 Kč http://cz.farnell.com/stmicroelectronics/stm32vldiscovery/board-eval-stm32vl-discovery/dp/1824325
Pre zaciatocnikov je kit vhodny, pretoze do "cistej" 328 treba minimalne naprogramovat bootloader a nastavit "fuses"(nie kazdy ma doma programator, aj ked urobit sa da jednoducho).
Ja osobne pouzivam original Arduino na vyvoj a do hotoveho zariadenia davam priamo 328 alebo iny AVR cip, Arduino prostredie sa da rozchodit aj na 1284P, ktora je oproti 328 "luxus" (128kB FLASH, 16 kB RAM )
Proboha proč ztrácet čas nákupem a sestavováním jednotlivých součástek, které nakonec vyjdou daleko dráž než kompletní deska v jednom celku včetně konektorů? Nějaký základ je stejně potřeba. Zrovna ty USB programátory (pokud to není AVR s nativním USB) bych moc nepropagoval, je to hrozná prasárna, která vůbec nesplňuje standardy, navěšení zenerek na datové linky pro omezení napětí je opravdu amatérismus, ostatní ochrany či filtry veškeré žádné.
Protože Arduino přece jen nedává takové možnosti (pevně nastavený krystal, dostupných je (u nejpopulárnější verze Uno) jen 14 pinů z 23 (resp. 28 pokud bereme v úvahu SMD, v obou případech nepočítám VCC/GND, AREF,AVCC,AGND). A hlavně protože (alespoň pro mě) je práce s mikrokontroléry i o tom hardwaru.
>je to hrozná prasárna, která vůbec nesplňuje standardy
Funguje to? Funguje. Provozuje na tom někdo kritické aplikace nebo se to využívá jen pro domácí bastlení? Pokud vím, b je správně. Tak koho to zajímá?
> navěšení zenerek na datové linky pro omezení napětí je opravdu amatérismus.
Funguje to? Funguje. Já zenerky neměl tak jsem tam vrazil proti zemi LEDky s úbytkem cca 3.5V - taky to funguje. A teď do mě :)
No a mě jako totálního AVR začátečníka před lety zlákalo Seeduino. Na něm jsem si vyzkoušel jak se s arduinem pracuje, a pro skutečné projekty jsem si pak už začal kupovat přímo samostatné ATmega procesory a programoval jsem je s využitím Seeduina jako programátoru.
Možná by mě to bez *duina vyšlo levněji, ale jelikož elektroniku mám pouze jako koníčka (neživí mě a živit nebude), tak mi práce s *duinem připadla o dost pohodlnější než řešit jak propojit nepájivé kontaktní pole s noťasem, jak uploadnout bootloader, atd.
Proc? Kompatibilita! To co se povedlo Arduinu se nepovedlo zadnemu velkemu vyrobci kitu anebo procesoru. K Arduinu existuji desitky modulu a stala se z nej defacto referencni platforma pro prototypovani a bastleni a vyuku. Dnes uz vznikaji i desky s jinymi procesory, ktere jsou navrzeny tak, aby mohli pouzit shieldy pro Arduino (kompatibilita na urovni konektoru a napeti).
Klidne si pouzivejte kontaktni pole a v nem bastl kompatibilni s Arduinem; SW kompatibilitu muzete mit, HW treba nepotrebujete. Podobne to delali (delaji) i vyrobci CPU. Treba TI anebo Freescale, co prototypova deska, to original...
S Arduina se stala referencni platforma. Kdyz reknete Arduino, kazdy vi o cem je rec. Kdyz reknete kontaktni pole s AVR, tak tam to uz tak jednoznacne neni... ;-)
Protože lidi se chtějí bavit a přitom pokud možno vynakládat minimum úsilí. Což bych jim neměl zazlé. Horší je, když za vámi přijdou s rádoby profesionálním zařízením na kšeft, jež se chová divně, a oni nemohou přijít za boha proč to tak je a vy zjistíte, že je to celé zbastlené z podobných modulů způsobem, že se naopak divíte, že to někdy jedenkrát náhodou mohlo aspoň přibližně dělat to, co se od toho čekalo, a že dotyční tuto variantu zvolili kvůli tomu, že o elektroniku se nikdy nezajímali (proč taky, když existují takovéto desky) a vlastně se ani nikdy nezajímali o mikrořadiče (proč taky, když jsou pro ty desky hotové všelijaké pluginy a tutoriály, které stačí jen upravit a zmatlat dohromady).
Zkrátka - když si chce někdo ze zvědavosti a dlouhé chvíle vyzkoušet horské kolo, ať si klidně koupí v supermarketu celoodpružený stroj, sedne na lanovku a pak si sjede dolů... Ale hlavně ať nepropadá dojmu, že tím se z něj stal cyklista a nehlásí se s tím do profesionálních (nebo raději vůbec žádných) závodů.
Vážně?
Já se třeba teď živím jako vývojář softwaru embedded systémů pro automobilový průmysl. A ve volném čase si doma hraju třeba i s Arduinem. Vůbec mně nepřipadá pro daný účel špatné - ideální vývojový nástroj/prototyp pro jednoduché aplikace (s Arduinem Mega se dá dělat i leccos "většího").
Taky jsem dřív bastlil na hradlovém poli, dělal pro každou kravinu destičku s AVR apod....Teď čím dál méně - Arduino a jeho shieldy jsou velmi pohodlné. Trochu mě jen štve k němu dodané vývojové prostředí - to je skutečně až příliš jednoduché, ale nic vám nebrání Arduino programovat třeba přímo pomocí gcc-avr nebo to dělat v assembleru...
I mě máte za vola? Já bych podobně (a že mám chuť) mohl prohlásit za id.ota borce, který řeší ovládání výtahu pomocí ARMu na kterém běží Linux (ne Linux za to nemůže - teď na něm třeba zrovna píšu - ), protože používání hrubé síly považuji za neumětelství nejhrubšího zrna...bohužel čím dál častěji se dnes vyskytující i v embedded, nejen na PC :-(. Děsím se doby, kdy Picmochové budou tyto věci lepit v Javě...
To ze dnes nekdo pouzije "forthovske" jadro J1 v dobe cloudu, megabajtovych frameworku a virtualnich pocitacu cloveka pekne zahreje u srdicka :-) mooc pekne
Ethernetový shield je drahý z toho důvodu, že Atrduino je založeno na mcu s jádrem AVR a toto mcu nemá zaintegrovánu ethernet periférii. Proto shield musí mít jak PHY, tak i MAC a tudíž obvod je trochu dražší. Navíc asi se tento shield moc neprodává. Kdo chce ethernet, tak moc po AVR nekouká. Přeci jen nároky na obsluhu TCP/IP stacku jsou vyšší.