Espruino – platforma do programowania STM32 za pomocą języka JavaScript

Espruino to pierwszy na świecie zestaw uruchomieniowy pozwalający programować mikrokontroler STM32 w języku JavaScript. Nie chodzi tu tylko o język, ale o możliwość programowania w paradygmacie zdarzeniowym, który upraszcza kod i ogranicza zużycie energii.

Płytka Espruino jest oparta na 32-bitowym mikrokontrolerze STM32F103RCT6 z rdzeniem ARM Cortex-M3, pracującym z taktowaniem do 72 MHz i wyposażonym w 256 kB pamięci Flash oraz 48 kB SRAM. Platforma ma też na pokładzie złączę mikrobus, port dla kart microSD oraz 44 piny GPIO, które mogą pracować jako następujące peryferia: PWM, ADC, USART, SPI, I2C i DAC. Dodatkowo przewidziano dedykowane pady pozwalające na przylutowanie modułu Bluetooth oraz dodatkowych układów, np. sterowników silników. Płytka jest zasilana przez dwupinowe złącze JST PHR-2, służące do podłączania baterii i wyposażona w trzy diody LED oraz dwa przyciski, z których jeden jest na stałe skonfigurowany jako RESET. Całość ma wymiary 54 x 41 mm.

Dla Espruino dostępnych jest kilkadziesiąt modułów oprogramowania, obsługujących różnorodny sprzęt, w tym m.in. wyświetlacze, czujniki czy łączność radiową.

Kod dla Espruino można pisać bezpośrednio w konsoli, która uruchamiana jest po podłączeniu płytki do komputera przez USB, a także wykorzystując webowe środowisko, wyposażone w edytor z kolorowaniem składni i możliwością pobierania wszelkich potrzebnych modułów bezpośrednio z sieci. Dla początkujących dostępny jest też graficzny edytor, pozwalający programować za pomocą bloczków.

Projekt odniósł duży sukces na portalu Kickstarter, zbierając ponad 100 tys. dolarów, czyli pięciokrotność założonego finansowania. Dzięki zebranym środkom nie tylko uruchomiono produkcję, poszerzono dokumentację, ale też rozbudowano możliwości Espruino m.in. o sterowniki do obsługi Wi-Fi za pomocą zewnętrznego modułu CC3000 firmy Texas Instruments, obsługę pakietów Node.js npm, pakiet OpenWRT oraz interaktywny przewodnik „Getting Started” dostępny przez aplikację webową.

Cały projekt, zarówno w części programowej, jak i sprzętowej, jest dostępny jako Open Source.

O autorze