Důležité upozornění!
Policie České republiky a šéfcensor Ústavu pro studium totalitních režimů Jaroslav Čvančara varují: citovat jakékoli texty z tohoto blogu způsobuje vážné risiko trestního stíhání! Četba na vlastní nebezpečí!
S Arduinem naostro
Dnes se s Arduinem pustíme do trochu vážnějšího experimentování, nicméně pro začátek se raději nebudeme zabývat ani dorozumíváním bez drátů, ani nevkročíme do nebezpečného a nejistého prostoru mezi jedničkou a nulou.
Možná jste si všimli zvláštních kovových článků – dotykových čipů, které vzhledem připomínají knoflíkové baterie a které lidé mívají připnuty na klíčích a s jejich pomocí si otevírají zámky, aktivují taxametry nebo se přihlašují k počítačové síti. Technologii iButton vyvinula společnost Dallas Semiconductor Corp a může se zdát překvapivé, že její prolomení je ve skutečnost dětskou hračkou
: nikdo rozumný by proto neměl tyto čipy používat tam, kde je vyžadován vyšší než minimální stupeň bezpečnosti, anebo by měl sáhnout pro speciálních – ovšem mnohonásobně dražších – dotykových čipech s vrstvou kryptografické ochrany.
- Autor: Tomáš Pecina
- Kategorie: Počítače
- Počet zobrazení: 3464
Arduino: poprvé intimně
Když tedy mé Arduino Mega dorazilo, mohu konečně začít s experimenty – zatím se ovšem raději nebudeme pouštět do žádných větších akcí, závislost by se měla budovat postupně.
Téměř okamžitě po rozbalení zjišťuji, že jde o tak nový model, že s ním nebude bez úprav fungovat většina běžných arduinových aplikací, avšak tím se nenechám vyvést z míry: o to bude seznamování zajímavější.
Podle mé zkušenosti jsou komplexní vývojová prostředí, včetně hardwarových debuggerů a emulátorů, tím méně užitečná, čím elementárnější je laděný procesor. Práce s nimi jen málokdy přinese užitek úměrný ceně a složitosti a kromě toho enormně rychle zastarávají; uživatel často investuje do vývojových prostředků víc, než kolik mu za celou svou užitečnou životnost přinesou.
Pro mikrořadiče typu Atmel ATmega v zásadě postačí assembler a simulátor, ve kterém se v případě potřeby dají odsimulovat jednotlivé algorithmy. Vývoj bývá obvykle rychlý a hladký. Pro složitější ladění jsou simulátory stejně jen omezeně užitečné, už kvůli svým inherentním nedostatkům. Např. u AVR Studia, jak jsem odhalil, ještě než mi Arduino dorazilo, nefungují podle katalogového popisu výstupní komparátory čítačů (což posléze test na živém
Arduinu potvrdil).
Proto se snažím najít něco, čím mohu nalít
program do procesoru a podle potřeby ho naswitchovat (nafusovat
). K tomu zcela postačuje program avrdude
, který má Fedora přímo v distribuci, a i když nefunguje zcela tak, jak by měl, je použitelný. Doplňuji udev rule ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", MODE="666", NAME="arduino"
, aby mi Arduino nepřeskakovalo
mezi porty, a pokračuji v testech.
Pro seznámení s novou hračkou jsem se rozhodl naprogramovat si Arduino jako programátor dalších atmelů. Na první pohled se to jeví jako zbytečná složitost, ale není tomu tak: proč bych se měl omezovat na jeden mikrořadič, který je navíc zapájený v desce a je obtížně přístupný, když si s jeho pomocí mohu naprogramovat, kolik atmelů budu potřebovat, a to ICSP, tedy přímo v obvodu? Je to řešení bezpečnější a zároveň levnější (cena za atmel je dnes pod 50 Kč a dál klesá).
Hledám proto, který programátor bych mohl Arduinem nejsnáze emulovat. Vybírám AVR ISP, již starší, ale velmi jednoduchý ISP programátor. Jeho software je pro mne ovšem šokem: neznalost základních programovacích technik, neporozumění programovanému hardwaru, hrubé chyby, nedodělky… Pár hodin se v programu vrtám
, mažu, přepisuji, předělávám a voilà, výsledkem je první naprogramovaný ATtiny85 s triumfálně blikající LEDkou na nepájivém kontaktním poli.
Dvě technické poznámky pro ty, které by konverse zajímala detailněji:
- AVR ISP má hodiny připojené na pin PB7, nicméně u Arduina jsem je přesunul na PB3, protože na sedmičce je zároveň LEDka L, kterou nedůvtipný konstruktér
pověsil
na port přímo, bez oddělovacího transistoru, takže by nebylo možné od naprogramovaného obvodu se odpojit. Na PB7 namísto toho pouštím signál 4 MHz z čítače pro programování atmelů, které potřebují externí hodiny. - Program by byl ještě jednodušší, kdyby se dal využít některý ze tří volných USARTů, které potřebný režim standardně zvládají, ale to není možné, protože žádný z hodinových signálů (XCKn) není vyveden na konektor. Samozřejmě, theoreticky by se dal vývod připájet přímo k čipu, ale vzhledem k roztečím mezi vývody 0,5 mm by nejpravděpodobnějším výsledkem experimentu byla jenom Velká Odporná Slitá Kapka Cínu. Tohle by se muselo pájet pod mikroskopem!
Jsem tedy hotov, pro dnešek končíme. Budu-li mít někdy náladu, naprogramuji si ještě tzv. vysokonapěťový programátor (vysokým
napětím je myšleno 12 V, které se přivádějí na \RESET), jímž se dá s atmely dělat ještě o trochu víc než běžným ISP, ale určitě už se po zkušenostech nebudu pouštět do žádné adaptace a programátor si prostě napíšu na zelené louce, podle protokolu příslušného emulovaného zařízení.
(Omlouvám se za kvalitu fotografie, ale přestala mi fungovat čtečka paměťových karet, takže jsem musel vzít zavděk podstatně horší fotografií z mobilu.)
Aktualisováno.
Čtečka resuscitována, takže několik ilustračních fotografií: 1, 2, 3, 4.
- Autor: Tomáš Pecina
- Kategorie: Počítače
- Počet zobrazení: 4305
Dnes podáte…
Víte jaký je rozdíl v poště odeslané v pondělí z Děčína a z Hong-Kongu? Žádný. Obě dojdou ve středu,
napsal na Twitter Radek Hulán.
Zlatý voči: v úterý z Plzně jako balík s udanou cenou odeslané Arduino dokázal tento státní podnik doručit v pátek. Když jsem na poště Praha 2 vyjádřil svůj údiv, příslušný pracovník suše poznamenal, že podle interních předpisů na to mají tři pracovní dny, takže si nemám na co stěžovat.
Autem trvá cesta z Plzně do Prahy hodinu, vlakem půldruhé, na kole tři hodiny, pěšky dvacet hodin, České poště trvalo překonat tuto vzdálenost 72 hodin, což je jednoznačně na zápis do Guinessovy knihy rekordů: pomaleji než poštovní zásilka se pohybují pouze šneci a možná též někteří méně hbití láčkovci, ale tím si nejsem úplně jist.
- Autor: Tomáš Pecina
- Kategorie: Úvahy a komentáře
- Počet zobrazení: 1931
Češi jsou panský národ
Velmi přesný postřeh o soužití Čechů s Němci zapsal na svůj blog Jiří T. Král.
- Autor: Tomáš Pecina
- Kategorie: Úvahy a komentáře
- Počet zobrazení: 3111
Zkušenosti s Djangem
Zhruba před rokem jsem stanul před nečekaným úkolem: napsat k existující databasi cca 100 tisíc podpisů pod elektronickými peticemi, jejichž hosting jsem převzal, jednoduchý a přitom plně funkční software. Vzhledem k určité časové tísni se mi nechtělo řešit úkol v PHP, na které jsem byl zvyklý z redakčního systému Britských listů, a sáhl jsem proto po Djangu, webovém frameworku v mém oblíbeném Pythonu.
Byla to rozumná volba, systém byl za pár dnů hotov a umožnil přejít k novému hostingu zcela hladce. Naprogramoval jsem uživatelské rozhraní pro zobrazení a podepisování petice a pro výpis seznamu signatářů, včetně vyhledávání pomocí filtru (příklad petice), a jednoduché administrátorské rozhraní obsahující všechny potřebné funkce pro zadávání, editaci a údržbu peticí.
Jako třešničku na dortu
jsem pak pomocí ReportLabu naprogramoval export do formátu PDF, v němž může být seznam podpisů vystaven nebo předán adresátovi. Výstup vypadá zhruba takhle.
Jediné, co jsem vloni nestihl, bylo zmínit se o projektu na blogu, což tedy nyní, u příležitosti drobné aktualisace při předchodu na versi Django 1.2, opožděně činím.
Několik screenshotů:
Příklad petice | Přehled podpisů | Přehled podpisů | Přehled peticí |
Údaje o petici | Úprava petice | Smazání petice | Přehled podpisů (admin) |
Přehled podpisů (admin) |
Údaje o podpisu | Export | Změna hesla |
- Autor: Tomáš Pecina
- Kategorie: Počítače
- Počet zobrazení: 2849
39 / 75