
Hrajete si někdo s Picaxe?
Zdrávi buďte,
nedávno jsem objevil krásnou hračku, mikrokontrolér zvaný Picaxe. Mám zatím ten nejjednodušší, osminožičkový. Je skvělé, jakým v podstatě primitivním skoroBasicem se to dá programovat. Hrajete si s tím taky někdo?
Osobně používám MikroPascal pro PIC, dají se stím programovat prakticky libovolné PICy. Existuje taky mikroBasic, mikroC... umí to i Atmely a další. A osekaná verze je zdarma.
Je to univerzálnější.
Jo, mikroElektronika má bohaté portfolio a ceny jsou velice dobré (249$ při koupi libovolné vývojové desky společně s prostředím, jinak 299$), sám mám mikroC pro PICy a pro ARM. Co každého bastlíře zaujme je široká nabídka tzv "Click boards":
http://www.mikroe.com/click/
Dá se tam dohledat spousta zapojení s různými senzory i se zdrojovými kódy.
Samotné prostředí je příjemné na použití, opět spousta již předpřipravených knihoven, pro začátek to určitě stačí. Vadí mi, že u velkých projektů se stává, že prostředí občas spadne. Proto u některých projektů radši volím Keil MDK-ARM, to je "jistota". Potom ještě doporučuji ne úplně spoléhat na dodané knihovny. Pokud bych mluvil konkrétně, doporučuji pro ostré projekty někde nasazené nepoužívat I2C knihovnu v mikroC, ale napsat si vlastní s timeoutem. V případě, že slave nepošle ACK, skončí program v nekonečném cyklu (čeká právě na ten ACK). Několikrát jsem si o tom s mE vývojáři psal, aby tam podobně jako drtivá většina ostatních knihoven přidali alespoň volitelně timeout, odmítli to z tohoto důvodu: "If the slave device does not ACK, it does not correspond with the I2C specification.". Ale v reálu slave ten ACK opravdu jednou z x desítek tisíc spojení nepošle (ESD event, výkyv napájení atp.)
Ale jinak je to na tvorbu věcí super
.
Mně taky občas vadí, že kód vygenerovaný kompilátorem je výrazně větší než když to člověk píše v čistém assembleru, takže do povětšinou malé paměti těch levných obvodů se komplexní program nemusí podařit nacpat. I když je pravdou, že to se mi stalo zatím jen dvakrát, následně stačilo jem vyměnit PIC 16F84 za 16F88, upravit config bity a bylo. :)
Horší je, že na nějaké počítání mikrosekund se to taky moc použít nedá a je potřeba včlenit čistý assembler, na který je spoleh co se délky trvání instrukcí týče.
Máš povoleny optimalizace v nastavení? Tools - Option - Output - zaškrnuto SSA optimization a Optimization level 4 nebo 5. Delší než assembler to ale asi bude vždy, už z principu univerzálnosti všech knihoven v mikroC. Počítání mikrosekund jsem netestoval, obvykle tomu kvůli spotřebě věnuju nějaký Timer a v mezidobí dám mikrokontroler do sleepu.
Srovnání Keil <-> mikroC je ale hodně zajímavé. Keil má u ARM u podobných projektů tak poloviční až třetinovou výslednou velikost kódu. Asi je to ale taky dáno tím, že pro Keil si všechny knihovny píšu sám, zvlášť u life support aplikací, tam se nemůžu spolehnout na knihovny ve formě "blackboxu", kde je k dispozici jen binárka bez zdrojáků, jako v mikroC.
Já si hraju v rámci školy s kitem, kde je programovatelné hradlové pole (FPGA - nějaký Spartan 3 od Xilinxu) a mikroprocesor MSP430F2617. K FPGA je softwarový balík od Xilinxu s velkým množstvím nástrojů a pro MCU stačí zdroják v C a přeložit pomocí FCMake a MSP-GCC.
http://merlin.fit.vutbr.cz/FITkit/uvod.html
Udělal jsem na tom zatím dva větší projekty. První takový ořezaný přehrávač SID skladeb (hlavní činnost v FPGA) a zrovna jsem dokončil otáčkoměr (tady naopak skoro všechno řídí MCU).