úterý 29. července 2014

Paperduino Tiny - klon Arduina na papírové desce

Nedávno jsem si na Internetu všiml zajímavého projektu Paperduino. Jde o ARDUINO kompatibilní desku, která místo PCB využívá papírovou šablonu, kde jsou spoje pomocí drátků. Samozřejmě nejde o zcela kompatibilní desku s ARDUINO, ale programuje se pomocí stejného IDE a má přeloženou část knihoven. 

Co se tedy za projektem skrývá ? Je to procesor ATTINY85, Micronucleus firmware a modifikace ARDUINO IDE od Digispark.

Specifikace z oficiálního webu Paperduino je následující:

Podpora Arduino IDE 1.0+ (OSX/Win/Linux) - je nutná modifikace konfiguračních souborů
Napájení z USB nebo externího zdroje - volí se propojkou na desce
Připojení přes USB
6 I/O Pinů (2 jsou použity pro USB pokud program komunikuje přes USB, jinak je možné použít všech 6 pinů pokud programujeme přes USB)
8k Flash Memory (po nahrání bootloaderu zbyde kolem 6k pro program)
I2C a SPI 
PWM na 3 pinech 
ADC na 4 pinech
LED signalizuzjící napájení a jedna Test/Status LED (na Pin1)

Na oficiálním webu projektu Paperduino je popsán postup stavby a nahrání bootloaderu. Popis postrádá dle mého názoru koncepční základy dané desky, které zde shrnu. Obvodové zapojení je klasické a odpovídá projektům jako je LitteWire apod (tedy zapojení pro procesor ATTINY85). Zde není nic zvláštního, procesor potřebuje nějaké napájení, připojení na USB (samotný procesor neumí sám o sobě s USB spolupracovat) a indikační LED. Podstatné je využití bootloaderu Micronucleus, který zajistí množnost programování přes USB port (proto jsou některé IO piny připojené na USB konektor). Na tom celý projekt stojí. 

Nejprve tak do procesoru nahrajeme Micronucleus bootloader:

avrdude -c usbtiny -p t85 -U flash:w:micronucleus-1.06.hex -U lfuse:w:0xe1:m -U hfuse:w:0xdd:m -U efuse:w:0xfe:m

Zde je nutné si všimnout, že díky nastavení pojistek už nebude možné čip přehrát jiným programem nebo smazat bez použití "high voltage" programátoru. Tím myslím smazání již nahraného bootloaderu. Nyní máme procesor ATTINY85 s Micronucleus bootloaderem, který umožňuje dvě věci:
- update samotného bootloaderu (uděláme hned v dalším kroku)
- nahrání programu pomocí bootloaderu do procesoru a jeho spuštění

Projekt Paperduino doporučuje užití bootloaderu verze 1.06 včetně update. Z předchozího kroku máme už nahraný bootloader verze 1.06 a proto provedeme upgrade bootloaderu:

avrdude -c usbtiny -p t85 -U flash:w:micronucleus-1.06-upgrade.hex -U lfuse:w:0xe1:m -U hfuse:w:0x5d:m -U efuse:w:0xfe:m

Nyní máme připravený procesor a můžeme buď sestavit obvod na kousku papírové předlohy nebo využít obdobných projektů jako je LittleWire. Protože mám LitteWire destičku už delší dobu, využil jsem ji k otestování.

Poslední podstatnou částí je upravená verze ARDUINO IDE, která zajistí možnost program napsat, přeložit a nahrát do Paperduina. Vzhledem k tomu, že pro programování využíváme Micronucleus firmware, je nutné upravit konfigurační soubory ARDUINO IDE (dalším důvodem je konfigurace samotné desky Paperduina). Zde je nejjednodušší cestou stažení upravené verze ARDUINO IDE od Digispark, která je ke stažení ZDE. Spustíme ARDUINO IDE a provedeme následující konfiguraci:

Menu Tools - Boarda - Digispark (Tiny CORE)
Menu Tools - Programmer - Digispark

Následně vybereme vzorový příklad (blikající dioda) 
Menu - File - Examples - Digispark_Examples - Start

Provedeme kompilaci a pak zmáčkneme tlačítko uploadu. Tady se zobrazí následující info o nutnosti zasunout do USB portu Paperduino, aby došlo k naprogramování. Time out je nastaven na 60 sec.


Toť vše. Stručně řečeno jde o procesor ATTINY85, který je díky Micronucleus bootloaderu možné programovat přes USB port pomocí upraveného ARDUINO IDE :-)

Odkazy
Paperduino Tiny
Micronucleus firmware
Arduino IDE (v1.04) with the Digispark Addons

Žádné komentáře:

Okomentovat