Jste zde

Vývojové desky pro nositelné aplikace

Nositelné aplikace jsou speciálním druhem elektroniky, které vyžadují dostatečný výkon pro sběr dat z připojených senzorů, mají vysoké nároky na rozmístění součástek kvůli omezenému prostoru a zároveň musí splňovat kritéria pro velmi nízký odběr elektrické energie. Proto je nutné tyto vlastnosti ověřit na vývojových deskách, než se navrhne konečné řešení.

Koncept Arduino s otevřeným zdrojovým kódem se ukázal jako obrovský úspěch mezi „bastlíři“. Časem si získal své místo mezi profesionálními vývojáři, kteří si potřebovali ověřit daný návrh, ještě před tím, než se pustili do konečného řešení. Není to tak dávno, kdy se desky Arduino začaly objevovat i mezi hotovým designem u koncového zákazníka. V tomto článku si stručně projdeme, jak desky Arduino se v čase přizpůsobovaly potřebám vývojářům a představíme si nový přírůstek do rodiny Arduino v podobě Seeeduino XIAO od Seeed Technology Co.

Přizpůsobení desek Arduino pro nositelné aplikace

Nositelná elektronika se stává součástí všedního života. Uvnitř zařízení, které jsou miniaturních rozměrů se musí vměstnat mikroprocesor spolu s několika senzory či zobrazovacími prvky. V některých případech tyto zařízení slouží jako špičkové šperky. Jelikož se tyto zařízení často nosí v blízkosti nebo přímo na povrchu kůže, mohou detekovat, analyzovat a přenášet data o tělesných vlastnostech nositele. Mezi ně patří tělesná teplota, srdeční frekvence a pulsní oxygenace. V některých případech poskytují uživateli okamžitou informaci o svém těle tzv. biofeedback.

Při výběru správného senzoru se používají Arduino desky, které nám umožní hodnotit dynamické a statické vlastnosti daného senzoru. Arduino deska, se kterou vývojáři obvykle začínají je A000073 Arduino Uno Rev3 (Obrázek 1).

Tato deska je založena na 8-bitovém mikrokontroleru ATMEGA328P-AUR od společnosti Atmel (nyní Microchip Technology). Mikrokontroler je napájen 5 V a nabízí 14 digitálních vstupů / výstupů (I / O), z nichž šest může poskytovat PWM modulaci a šest analogových vstupů lze v případě potřeby použít také jako digitální I / O. Mikrokontroler podporuje dvě externí přerušení na digitálních I / O pinech 2 a 3, spolu s jedním přerušení z rozhraní UART, SPI a I 2 C.

Obrázek 1: Vývojová deska Arduino Uno Rev3 je založena na 8-bitovém mikrokontroleru ATmega328P běžícím na 16 MHz. Nabízí 14 digitálních I / O piny, 6 analogových vstupů a různé výkonové, zemnící a referenční piny. (Zdroj obrázku: Arduino.cc)

Arduino Uno nabízí pouze 32 kB programové paměti Flash a 2 kB SRAM. Bohužel je tato deska pro mnoho aplikací příliš velká, jelikož její rozměry jsou 68,6 x 53,4 mm (36,63 cm2).

Jedním ze způsobů, jak snížit fyzickou stopu na desce plošných spojů je přechod na Arduino Nano ABX00028, která je založena na mikrokontroleru ATMEGA4809-MUR od společnosti Atmel (obrázek 2). Má o 50% více programové paměti (48 kB) a 3x větší SRAM (6 kB).

Stejně jako u Arduino Uno je mikrokontroler Arduino Nano Every napájen 5V a nabízí 14 digitálních I / O spolu se šesti analogovými vstupy, které lze v případě potřeby použít také jako digitální I / O. Stejně jako Uno nabízí Nano Every také rozhraní UART, SPI a I2C. Na rozdíl od Uno, které podporuje pouze dvě externí přerušení, lze všechny digitální piny Nano Every použít jako externí přerušení.

Obrázek 2: Arduino Nano Every obsahuje výrazně výkonnější procesor ATMEGA4809, který má o 50% více programové paměti než Arduino Uno a má mnohem více prostoru pro proměnné, protože SRAM je 3x větší, a to 6 kB. (Zdroj obrázku: Arduino.cc)

Ačkoli Arduino Nano Every má stále omezení 8bitové datové sběrnice, má rychlejší hodiny (20 MHz) a více paměti (48 Kb na Flash a 6 Kb na SRAM). To nejdůležitější je, že je mnohem menší. Arduino Nano Every má rozměry 45 x 18 mm (8,1 cm 2).

Další populární alternativou, kterou lze použít pro vývoj ve vývojovém prostředí Arduino (IDE), je DEV-13736 Teensy 3.2 od SparkFun Electronics (obrázek 3). Napájecí napětí této desky je 3,3 V a disponuje 34 digitálními piny, z nichž 12 podporuje PWM a 21 jich lze přepnout na analogové vstupy s vysokým rozlišením.

Obrázek 3: Teensy 3.2 je malá vývojová deska, kterou navrhl Paul Stoffregen (PRJC.com). Tato uživatelsky přívětivá vývojová deska přináší levnou 32bitovou platformu Arm Cortex-M4 pro studenty i profesionály. (Zdroj obrázku: PRJC.com)

Teensy 3.2 obsahuje mikrokontroler MK20DX256VMC7R od společnosti NXP, který má 32bitové jádro Arm Cortex-M4 běžící na 72 MHz, 256 kB paměť Flash a 64 kB SRAM paměť. Rozměry Teensy 3.2 jsou přibližně o tři čtvrtiny menší než Arduino Nano Every (35 x 18 mm - 6,3 cm 2).

Představujeme Seeeduino XIAO

Přestože je plocha Teensy 3.2 pouhých 6,3 cm 2, je pro mnoho aplikací stále příliš velké. Pro ty, kteří hledají ještě menší a výkonnější platformu najdou ji v Seeeduino XIAO od Seeed Technology (obrázek 4), jejichž rozměry jsou pouhých 23,5 x 17,5 mm (4,11 cm 2). To odpovídá velikosti standardní poštovní známky.

Obrázek 4: Seeeduino XIAO je v současné době nejmenší vývojová deska patřící do rodiny Arduino. Obsahuje výkonný 32bitový procesor Cortex-M0+ pracující na frekvenci 48 MHz. (Zdroj obrázku: Seeed Studio)

XIAO obsahuje mikrokontroler ATSAMD21G18A-MUT od Atmel. Tento mikrokontroler obsahuje 32bitové jádro Arm Cortex-M0+ s taktovací frekvencí 48 MHz. K dispozici je 256 kB Flash paměť a 64 kB SRAM paměť. XIAO poskytuje 11 datových pinů, a každý z těchto pinů lze použít jako digitální I / O nebo jako analogový vstup (obrázek 5). Všech deset pinů podporuje PWM a jeden je vybaven DAC převodníkem, a to mu umožňuje poskytovat analogovou hodnotu přímo na výstup. K dispozici je také sériové rozhraní UART, SPI a I2C.

Obrázek 5: Všech jedenáct pinů může fungovat jako digitální I / O (D0 až D10) nebo jako analogové vstupy (A0 až A10). Kromě toho, A0 může působit jako analogový výstup. D4 a D5 může pracovat jako I2C rozhraní, D6 a D7 jako rozhraní UART a D8, D9 a D10  jako rozhraní SPI. (Zdroj obrázku: Seeed Studio)

Nasazení a používání Seeeduino XIAO

Obecně lze říci, že práce s Seeeduino XIAO je stejně snadná jako práce s jakoukoli jinou vývojovou deskou kompatibilní s Arduino, ale existuje několik tipů a triků, které stojí za zmínku. Výchozím bodem je ověření, že používáme nejnovější verzi vývojového prostředí Arduino IDE. Jedním z možných problémů je, že zatímco vývojové desky Arduino mohou nadále pracovat se staršími verzemi knihovny Adafruit NeoPixel, Seeeduino XIAO vyžaduje nejnovější verzi. Dalším krokem je návštěva stránky Seeeduino XIAO Wiki, kde najdete pokyny, jak rozšířit Arduino IDE s příslušným správcem desky.

Mnoho projektů Seeeduino XIAO zahrnuje použití tříbarevných NeoPixelů založených na WS2818 od Adafruit jako je pásek 2970 se 144 NeoPixely na metr (obrázek 6).

Obrázek 6: Jeden pin na Seeeduino XIAO lze použít k individuální kontrole stovek tříbarevných NeoPixelů pásku 2970 od Adafruit. (Zdroj obrázku: Adafruit.com)

Pokud je nainstalována starší knihovna NeoPixel, mohou nastat podivné a matoucí chybové zprávy. Řešením je odstranit ze systému všechny starší verze knihovny a poté nainstalovat nejnovější verze podle pokynů na NeoPixel Überguide Adafruit. Jednou z možných obav je, že NeoPixels jsou citlivé na hrany signálů přicházejících z mikrokontroleru. Problém spočívá v tom, že strmé hrany mohou způsobit problémy. Řešením je přidání sériového rezistoru co nejblíže k prvnímu prvku v řetězci NeoPixel (obrázek 7). Takovému rezistoru vyhovuje uhlíkový fóliový rezistor CF14JT390R od Stackpole Electronics Inc, který má 5% toleranci, snese výkon až 1/4 watt a jeho odpor je 390 Ω.

Obrázek 7: Sériový rezistor umístěný co nejblíže k prvnímu NeoPixelu v řetězci eliminuje překmity na okrajích datového toku MCU. (Zdroj obrázku: Max Maxfield)

Dalším problémem spojeným s NeoPixelem je, že 3,3 voltové digitální výstupy Seeeduino XIAO nemusí být dostatečné k ovládání 5 V voltových vstupů NeoPixel. Jedním z možných řešení je použití desky BOB-12009 od SparkFun, která zajišťuje převod logické úrovně.

Obrázek 8: Převodník logické úrovně BOB-12009 od SparkFun poskytuje čtyři obousměrné kanály, které lze použít k převodu logické úrovně signálů mezi 3,3 V a 5 V. (Zdroj obrázku: Adafruit.com)

BOB-12009 poskytuje čtyři obousměrné kanály, a to je pro zařízení s omezeným prostorem relativně drahé řešení. Jednoduchou alternativou je použití jedné diody 1N4001 od Comchip Technology  (obrázek 9).

Obrázek 9: Použití diody 1N4001 k zajištění úbytku napětí 0,7 voltu. (Zdroj obrázku: Max Maxfield)

NeoPixels považuje logický stav 1, pokud je hodnota napětí nad úrovní 0,7 * VCC čili 0,7 * 5 = 3,5 V. Napájení pixelu pomocí diody IN4001 poklesne o 0,7 V na hodnotu 4,3 V. To znamená, že za logický stav 1 se bude považovat hodnota 0,7 * 4,3 = 3,01 V. Signál od Seeeduino XIAO má úroveň 3,3 V, a to je dostatečná hodnota napětí. A výstup 4,3 V z pixelu je schopen ovládat dalším NeoPixel v řetězci.

Závěr

První Arduino desky Arduino Uno s 8bitovým procesorem běžící na frekvenci 16 MHz byly velkých rozměrů a měly omezený výkon. Proto nebyly vhodné pro nositelné aplikace, kde je omezený prostor. Pro tyto aplikace je vhodná deska Seeeduino XIAO se 32bitové procesorem Arm-Cortex-M0+ běžící na 48 MHz a s dostatečnou 256 kB pamětí Flash a 64 kB pamětí SRAM. To vše je umístěno na miniaturní desce o ploše pouhých 4,11 cm2.

 

Článek vyšel v originále na webu DigiKey.com, autorem je Clive "Max" Maxfield.

Hodnocení článku: