V následujícím textu nehledejte objektivní přehled vývojových platforem, se kterými se můžete setkat v našich školách a univerzitách. Jednak by bylo takový přehled nemožné sepsat (co škola, to jiný kit) a navíc já osobně jsem měl možnost pracovat jen se třemi nebo čtyřmi. Tak k čemu takový článek, ptáte se? Nu, dneska jsem zase musel pracovat s něčím, co si říká výukový kit a zase jsem musel nevěřícně kroutit hlavou. Co mi na podobných platformách vadí?
Pozn.: V následujícím textu označuji vývojový kit desku, která obsahuje mikrokontrolér (nebo také PLD obvod), jeho periferie a pomocné obvody a software, kterým se deska programuje.
Pokud se má student naučit pracovat s mikrokontroléry, je nejlepší poskytnout mu nějaký jednoduchý vývojový kit, který obsahuje kus hardwaru (nejlépe něco modulárního a blbuvzdorného) a většinou také software, kterým je možné kit naprogramovat. Zatímco to první, tedy hardware, má většinou velmi kvalitní a promyšlené provedení, o softwaru se to říct nedá. Tyto programy si totiž většinou lepí sami výrobci a je to znát (dle mého názoru, jakmile firma vyrábějící hardware sáhne na software, měla by shořet v pekle).
Když to vezmu od začátku. Na střední škole jsme používali něco, čemu se říkalo mikropočítač student. Byla to vývojová platforma obsahující Motororolu 68HC11, dvouřádkový display, malou klávesnici, potenciometr napojený na převodník, pár diod, atd. Kit vznikl sice někdy před dvaceti lety těsně po revoluci, ale byl dostačující. Dokonce léta odolával nenechavým prstům studentů, kteří se snažili všechny trčící součástky ukroutit a odnést domů jako suvenýr :) Student byl připojen přes sériovou linku k počítači na kterém běžel programátor.
A zde byl kámen úrazu. Programátor byl totiž DOSový program, který se snažil poskytnout všechno (textový editor, kompiler, terminál, programátor, jednoduchý debuger), ale neumě pořádně nic. Ve výsledku tak student strávil 2 minuty programováním jednoduché aplikace v ASM a 10 minut nastavováním a programováním. Občas se samozřejmě stalo, že Student odmítl komunikovat, občas spadl samotný program, jindy zase DOS. Prostě katastrofa, která spoustu studentů od Studenta odradila.
Na vysoké škole jsem se setkal s více kity, ale jeden horší než druhý. Tím prvním bylo něco, co si vyrobila sama fakulta. Byl to miniaturní kit s PICkem, 4 diodami a jedním potenciometrem. Úkol, který měl plnit (stručně seznámit studenty s mikrokontroléry a ukázat jak se programují) plnil na jedničku. Takže i zde můžu říct, že hardware je vynikající. Opět to byl software, který veškerou práci znechutil. Fakulta totiž šla cestou nejmenšího odporu a vsadila na obskurní IDE od Mikrochipu jménem MPLAB. Ještě teď se mi ježí vlasy hrůzou, když na něj vzpomenu.
Firma Mikrochip by se měla držet vývoje PICek a software nechat na jiných. Nestabilní, zbytečně složité UI, simulátor je noční můra, atd. Jako student, který s tím měl pracovat 4 krát na cvičení a pak u semestrálního testu, jsem zatnul zuby a MPLAB používal. Kdybych ale s touhle obludou měl pracovat denně v zaměstnání, nejspíš bych brzy zešedivěl.
O semestr později jsme měli úvod do PLD obvodů a tak jsem měl možnost si osahat nějaké FPGA (nejsem si jitý, ale myslím že to byl nějaký Spartan). Opět byl hardware kvalitní a dobře zkonstruovaný. Jak už možná tušíte, noční můra byl program ISE WebPack z dílny samotného Xilinx. Má cenu vůbec komentovat jak je tento program neergonomický, enormních rozměrů, pomalý, nestabilní, …?
Stejný software používá k programování svého FPGA obvodu kit jménem FITkit. K programování mikrokontroléru MSP430 sice používá staré dobré GCC a žádné šílené IDE, ale k programování Spartana nic než WebPack neexistuje (on je s PLD obvody celkově problém, Xilinx i Altera mají vlastní aplikace a žádná alternativa AFAIK neexistuje).
Tento týden jsem měl tu smůlu a musel pracovat s dalším kitem. Tentokrát se jedná o MCLS-Modular z dílny jakési německé firmy.
Hardware vypadá pěkně, mikrokontrolér má velmi zajímavé vlastnosti, docela jsem se těšil až si to osahám. Bohužel, vývojáři z Německa vsadili na (ne)osvědčený postup a napsali si vlastní software, který slouží zároveň jako textový editor, kompilátor, debuger, terminál i programátor. (Kde už jsem to jenom slyšel? Jo aha, u 20 let starého Studenta!)
Aplikace jde spustit jenom na Windows XP a níže. Po hodině laborování jsem zjstil, že XP sice ano, ale XP 64bitů ne. Navíc můžu kompilovat jenom programy psané v ASM, na jazyk C potřebuji něco a netuším kde to mám vzít :)
Potom ať se nikdo nediví, že Arduino a jeho IDE má takový úspěch. Myslím si, že open-source povaha Arduina je jen poloviční úspěch projektu. Druhá půlka patří jednoduchosti a přímočarosti vývojového prostředí.
A jaké máte zkušenosti s výukovými kity vy?