Jeffrey Cross
Jeffrey Cross

První pohled: Mikrokontroléry Javascript pro webové vývojáře

Deska Tessel (vlevo) a deska Espruino (vpravo)

Espruino dodalo do svých Kickstarter backers, a Tessel je v plánu, aby loď do května, a my se chystáme získat ruce na pre-production Tessel hardware a můžete očekávat, že in-hloubkové přezkoumání brzy.

Navzdory explozi nových desek přicházejících na trh - a díky komunitě, která se kolem nich vyrostla - bych bez zaváhání doporučil Arduino, pokud potřebujete 8-bitovou desku mikrokontroléru nebo Raspberry Pi, pokud potřebujete jednopodlažní počítač se systémem Linux.

Je to ta komunita, která dělá Arduino a Raspberry Pi tak užitečnými, jakýkoliv problém, se kterým se můžete setkat, je pravděpodobné, že se s ním již někdo setkal a řešení, nebo alespoň klíč k řešení, na vás již čeká a je jen hledání Google pryč.

Logicky tedy jedinou cestou, jak může nová rada uspět, je buď převzít jednu z existujících komunit, vytvořit vlastní komunitu, nebo kooperativní komunitu, která již existuje, ale není vázána na existující mikroprocesor.

V současné době existují dvě nové desky mikroprocesorů, které hledají finanční prostředky - jeden na Kickstarteru a druhý na nové platformě crowdfundingu společnosti Dragon Innovation - které jsou poněkud odlišné. Tyto desky nejsou jen dalším klonem Arduino, nebo ještě jiným možným "Raspberry Pi vrah." Tyto dvě desky, Tessel z technical.io a Espruino z Pur3, hodlají vzít cestu nejméně cestoval a co-op existující komunity, které nejsou tradičně spojeny s výrobcem komunity.

Zamířil přímo v mezeře mezi Arduino u nejnižšího konce, a Raspberry Pi u vrcholu, oba tyto tabule používají Javascript jako jejich programovací jazyk, a oba používat to co nejblíže k kovu jak možný. Toto je hardwarový hacking pro webové programátory a bude zajímavé zjistit, zda jejich příchod přinese komunitu Javascriptu, až dorazí.

Bude to konec měsíce před ukončením úsilí crowdfundingu v těchto radách, i když obě strany již zdvojnásobily své finanční cíle, a začátek příštího roku před tím, než výrobce-in-the-street uvidí hardware pro finální výrobu. Jednou z výhod práce pro značku Make je však to, že občas budete vyzkoušet hardware před ostatními lidmi a já mám předvýrobní prototypy desek Tessel i desek Espruino, které sedí na stole právě teď - jeden z dvanácti v případě Tessel, a jeden jen dva v případě Espruino.

Tessel

Tessel z technical.io byl jedním z osmi produktů, které minulý týden uvedly na trh novou platformu Dragon Innovation crowdfunding a první, kdo dosáhl svého cíle financování. Tessel je zaměřen na vysoký konec mezery mezi Arduinem a Raspberry Pi, přímo u aplikací připojených k Internetu, které jsou zaměřeny na fyzická zařízení, a má vestavěný WiFi. To znamená nejen to, že deska je vždy online, což umožňuje její použití jako serveru i klienta, ale máte možnost vzdáleně nasazovat svůj kód na tabuli prostřednictvím sítě.

Stejně jako standardní GPIO banka na jednom konci - včetně SPI, I2C, UART a 6 univerzálních vstupních / výstupních pinů, 6 analogových a digitálních převodníků, 5V pin, 3,3V pin a uzemňovací kolík - Deska podporuje modulový systém, což usnadňuje přidávání schopností do projektu bez pájení. Existují dva typy modulů, oba mají stejný konektor. Moduly třídy A - Relé, Temp / Vlhkost, Servo, Akcelerometr a karta micro-SD karty - a o něco dražší moduly třídy B - RFID, Bluetooth LE, GPS a Audio desky.

Můj předvýrobní Tessel přišel s Servo modulem, který vyžaduje druhý napájecí zdroj určený pro serva.

Deska Tessel s Servo modulem pohánějícím standardní servo.

Kód pro řízení servo modulu je velmi jednoduchý,

var servo = vyžadují ('servo-pca9685'); // Inicializovat servo. console.log ("initalizing"); // Port A, servo 1, kalibrace min / max PWM 4-15 var cs61 = servo.port ('A') connect (1, 4, 15); cs61.on ('connected', function () {var pos = 0; setInterval (function () {console.log ("Deg rotace:", pos); cs61.move (pos); // Přírůstek o 45 deg pos + = 45, jestliže (pos> 180) {pos = 0;}}, 1500);});

Deska využívá npm a sprawling node.js komunitu - stačí nainstalovat servo modul pomocí npm do instalace node.js a pak zatlačit svůj kód na desku Tessel pomocí balíčku Tessel npm. Není to jen jejich vlastní infrastruktura, která využívá npm, deska bude kompatibilní s tisíci existujícími moduly node.js dostupnými prostřednictvím npm.

Skutečnost, že je node.js kompatibilní, může být velkým faktorem úspěchu desky Tessel, komunita uzlů je velká, nadšená a - jak je vidět z úsilí, jako je například nodecopter a Johnny Five - již otevřená práci s hardwarem. To je pro Tessel velká výhra, za nimi má okamžitou komunitu. To je hodně.

Mluvíme s Timem Ryanem

Mluvil jsem s Timem Ryanem, jedním ze spoluzakladatelů technického stroje,

Jaký je cíl projektu Tessel?

Naším cílem je, aby vývoj hardwaru byl přirozeným řešením pro vývojáře softwaru. Obrovskou součástí je umožnit webovým a mobilním vývojářům, aby mohli využívat svých stávajících dovedností k řízení fyzického světa.

Jaká je základní architektura desky Tessel?

Vlastní jsme vyvinuli interpreter JavaScript postavený na běhu programu Lua, který je kompatibilní s rozhraním API Node.js. Žádné nativní C + + moduly, ale řízení toku a HTTP moduly snadno. Náš OS je účinně smyčkou událostí na holém kovu. Řízení a odezva vysokorychlostního signálu jsou řízeny asynchronně. Máme experimenty, které kontrolují vysokorychlostní obnovovací matice LED a periferie SPI, což ukazuje, že je to cenově dostupná alternativa k kódu v reálném čase, přičemž je mnohem intuitivnější psát.

Například většina našich periferních kódů (většinou SPI a I2C) kóduje přibližně 50 nebo 100 řádků komentovaného kódu. Naše runtime nám dokonce dává návrh na provedení simulace přímo na vašem příkazovém řádku před nasazením kódu, což webovým vývojářům nabízí další známý nástroj, automatizované testování. Chcete-li začít s jakýmkoliv modulem, který vyrábíme, je to tak jednoduché jako „npm install accelerometer-mma8542q“ a vyžadovat jej v kódu. Náš vývojový a nasazovací program je navržen tak, aby byl jen pár kroků z krabice, aby měl funkční příklad - zapojte knihovnu, stáhněte nástroj příkazového řádku, nasazení.

Proč Javascript?

Pro společnost Tessel jsme se plně zaměřili na vytváření stejných nástrojů pro vývoj webových / mobilních aplikací na vestavěných deskách. Mezi správcem balíčků a rozhraním API a uzlem IDE by měla být myšlenka, že tytéž dovednosti a pracovní postup při odesílání na server jsou ty, které zde používáte. Při tvorbě nových rozhraní API je mnoho spolupráce „JavaScript“, tak doufejme, že další generace Javascript desek může používat všechny stejné SPI knihovny, například.

Válili jste svůj vlastní Javascript stack, proč to bylo?

Tessel rozhodně ztrácí na rychlosti tím, že nechodí se současným JavaScript motorem. Ale ve srovnání s Linuxem + V8, který potřebuje 8 až 10 MB spouštěcí paměti, je naše paměťová režie díky Lua minimální, méně než 70kb.

Nemáme v úmyslu konkurovat mikroprocesorům, jako je Raspberry Pi, více se zajímáme o vývoj, který se zmenšuje - ne nahoru - na méně výkonné desky a SoC. V budoucnu je prostor pro mikroprocesor Cortex-M3 s $ 3 systémem, který pracuje s JavaScriptem, protože je to přirozené řešení pro internetový nebo IO-těžký kód, a to je příběh, který chceme proniknout k vývojářům, že vám to umožňuje. více než jen alternativa k C.

Jaké jsou vaše plány do budoucna?

Naším plánem je začít s Tessel - a „Vysoce výkonný“ zařízení - a pracovat na méně výkonných zařízeních. Máme potenciál zaměřit se na desky tak malé, jako je Espruino, s mnohem rychlejším runtime, a investujeme mnoho úsilí do toho, abychom zajistili, že runtime Tessel je možností prožádnýzařízení připojeného k internetu. A dlouhodobě „Tessel“ zřejmě nezůstane platformou jen pro JavaScript, ale jednoduchou platformou pro zasílání firmwaru z jiných jazyků - C / C ++, Lua, Rust, Go a logicky i Python a Ruby. Naše hodnota je v jednoduchém workflow a knihovnách, nejen samotném JavaScriptu.

Takže sázíme na vývojové desky s povoleným JavaScriptem, které jsou právě prvním krokem. O rok později bude trend směřovat k dostupné vestavěné elektronice, která vám umožní programovat v jakémkoli jazyce, který chcete - pokud vaše odpověď není „C“! Tessel zůstane na vrcholu tohoto trendu.

Espruino

Deska Espruino z Pur3, která byla uvedena na trh několik dní před závodem Tessel na Kickstarteru, byla na konci srpna výrazně levnější než deska Tessel. Na £ 19 - to je kolem 30 dolarů - je to vlastně méně než polovina ceny desky Tessel. Specifikace Espruina je samozřejmě mnohem nižší. Ačkoli oba mají procesory ARM Cortex-M3, Espruino má jen 48 kB SRAM ve srovnání s 32MB TAMEL SRAM. Zatímco Tessel je zaměřen na vysoký konec mezery mezi Arduinem a Raspberry Pi, Espruino je zaměřeno na dolní konec, ale je to cena, která musí odpovídat.

Espruino je zajímavý odchod z většiny moderních desek. Na rozdíl od Tessel - nebo Arduina - svůj kód na tabuli nenahráváte. Místo toho máte interaktivní tlumočník. Zapojte desku do počítače Mac nebo PC a připojte se k desce přes sériový port USB a budete mít k dispozici interaktivní konzoli.

Umožní vám to rychle iterovat a užívat si pohrávání si s věcmi, které děláte. - Gordon Williams

Interaktivní konzoli můžete používat přesně tak, jak byste očekávali - a způsobem, který bude pro ty z nás, kteří vyrůstali s počítači se systémem BASIC, skutečně obeznámeni - stačí na výzvu napsat kód.

Vzhledem k tomu, že Espruino je zcela založené na událostech, znamená to, že můžete psát funkce, které můžete upravovat a přidávat, když jsou spuštěny. S Espruino nenahráváte kód na tabuli, ale budete s ním komunikovat.

Můžeme například nastavit jednoduchou funkci, která bude sledovat stisknutí tlačítka na palubě,

setWatch (function () {if (! digitalRead (BTN)) návrat; var led = 10; var flasher = setInterval (function () {led--; digitalWrite (LED1, led & 1); pokud (led <= 0) clearInterval ( flasher);}, 200);}, BTN, true);

Po nastavení této funkce se bude na pozadí sledovat událost stisknutí tlačítka a vrátíte se do interaktivní výzvy. Přesně tak, jak byste očekávali.

Deska Espruino bliká po stisknutí tlačítka LED

Stejně jako Apple] [+, a v menší míře i TRS-80, památky známé ve školách ve Spojených státech, ve Velké Británii v 80. a 90. letech měly školy BBC Micro. To zanechalo trvalé dědictví a navzdory tomu, že není explicitně uváděn na trh pro vzdělávání, myslím, že tato rada je pro školy nutná a učit lidi programovat.

Espruino, možná ještě více než Raspberry Pi - další britský projekt zaměřený na školy a výuku dětí do programu - je důstojným nástupcem BBC Micro.

Mluvit s Gordonem Williamsem

Mluvil jsem s Gordonem Williamsem, tvůrcem Espruina, o představenstvu a jeho kampani Kickstarter,

Espurino má interaktivní tlumočníka, proč jste to dělal takhle?

Opravdu se mi líbí C, ale když píšete kompilovaný kód pro mikrokontroléry, je mezi vámi a mikrokontrolérem skutečný rozchod - je to běh v černé skříňce a jediný způsob, jak můžete pracovat se softwarem, jak je spuštěn, je přidat ještě více (nebo možná pomocí debuggeru).Jako příklad jsem vytvořil krabici pro ovládání proměnlivého načasování ventilů na motoru mého vozu, ale 90% úsilí, které bylo do toho zapojeno, bylo vlastně v přidávání kódu, takže jsem mohl zkontrolovat, co to dělá, a upravovat hodnoty, když motor běžel. . Máte-li interaktivní tlumočník, pak je to vše pro vás.

Chtěl jsem tedy jazyk, který by mohl být interpretován, zkontrolován a upraven za letu, ale vypadal hodně jako C - a chtěl jsem použít něco, co již existovalo, spíše než jen vytvářet si vlastní, jako to dělají elektrickí Imp kluci s Veverkou . Pro předchozí projekt jsem implementoval malou verzi JavaScriptu, nazvanou TinyJS, takže to mělo smysl na tom, aby Espruino vycházelo z toho. Rozhodnutí použít model založený na událostech vlastně přišlo kvůli JavaScriptu - a zdálo se, že je to skvělá volba.

Proč je model založený na událostech lepší než model založený na smyčce, který používají Arduino a další řadiče?

Použití modelu založeného na událostech má několik velkých výhod. Znamená to, že různé bity kódu, které provádějí různé úlohy, mohou běžet společně bez rušení a můžete upravovat kód v rámci zpracování událostí, místo aby se musel vymanit z hlavní smyčky. Je to více intuitivní, protože napodobuje způsob, jakým lidé například popisují úkoly v reálném světě„Když je tma, zapněte světlo“ spíše než, „Je tma? Je tma? Je tma? Ano. Rozsvítit světlo!" a je to vhodné pro grafické programovací prostředí, protože je modulárnější. Nakonec drasticky snižuje spotřebu energie, takže je skvělá pro životnost baterie.

Válili jste svůj vlastní Javascript stack, proč to bylo?

Napsání vlastního tlumočníka bylo spíše nutností než volbou. Když se podíváte na paměťové požadavky hlavních tlumočníků, jako je V8, které používají node.js - a SpiderMonkey, jsou to obrovské - v oblasti megabajtů. Mají také háčky do základních operačních systémů, takže se je snaží spustit na malém zařízení, jako je mikroprocesor - s přibližně 1000 RAM méně - bez operačního systému je téměř nemožné.

Espruino používá spíše ARC než sbírku odpadků, jen dobře zapadá do způsobu, jakým tlumočník pracuje, a díky tomu je téměř každé přidělení / vyřazení paměti velmi rychlé - obzvláště všechny bloky mají stejnou velikost.

To vede k zajímavému bodu o těchto mikrořadičích ARM. Espruino běží na 72 MHz s 48KB RAM, takže při velmi hrubém odhadu může číst každý bajt své paměti přibližně za 1ms. Porovnejte to s Raspberry Pi s 800Mhz a 512MB RAM s čtecím časem blížícím se 1 vteřině - to znamená, že musíte přemýšlet o tom, jak s daty zacházet úplně jinak, a to je jeden z důvodů, proč jsem nemohl snadno použít existující tlumočník .

Spousta projektů Kickstarter má problémy se škálováním. Pokud je váš projekt neúspěšný, jste připraveni?

Ano. Mám desku připravenou k produkci, kterou můžu poslat do služby Seeed Studio. Během posledních dvou měsíců jsme spolupracovali se společností Seeed na zdokonalení našich konstrukčních a sourcingových komponent z knihovny Seeed's Open Parts Library, abychom zajistili, že nebudeme kompromitovat kvalitu. To nám umožnilo vytvořit návrh pro aktuální verzi desky Espruino. Pokud by však projekt získal podstatně více finančních prostředků, než se očekávalo, bylo by skvělé přivést někoho, aby vám pomohl s tutoriály a dokumentační stránkou programu Kickstarter. Myslím, že je to všechno o tom, aby lidé mohli začít, jako je elektronický projekt na naší stránce Kickstarter.

Jaké jsou vaše plány do budoucna?

Pokud dosáhneme 50 000 liber na naší současné kampani, přidáme podporu pro modul CC3000 WiFi do desky Espruino. Nebudeme vytvářet štít WiFi - musíme se zaměřit na samotnou společnost Espruino, ale přidáme podporu pro CC3000 do softwaru Espruino, než bude dodán k vám. To znamená, že si budete moci zakoupit předem vytvořený modul, zapojit jej a mít okamžitý přístup k internetu. Jsem ale také v pokušení postavit „štít-štít“, který by se pod deskou Espruino sklouzl, aby se mu podařilo vytáhnout pin kompatibilní s Arduinem. V budoucnu se také zajímám o výstavbu mnohem menší verze desky Espruino.

Dělají dvě desky trend?

Komunita Javascript má zájem o hardware - stačí se podívat na nodecopter, abyste zjistili, že - a příchod ne jednoho, ale dvou desek, které jsou nativní i na javascriptu, se setká s velkým zájmem. Tessel, který se zaměřuje na high-end a Espruino na dolním konci, pravděpodobně znamená, že oba si najdou výklenek - a ten výklenek bude poměrně rozsáhlý.

Dvě desky možná neudělají žádný trend, ale nebudu překvapen, když uvidím, že tyto dvě desky inspirují novou generaci mikroprocesorů řízených událostmi - takže tyto dvě desky by mohly jen tak.

 

Podíl

Zanechat Komentář