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