Что такое Espruino: история возникновения, теория и практика

Espruino — экосистема программирования микроконтроллеров на языке JavaScript. В нее входят:

  • прошивка для микроконтроллера с интерпретатором JavaScript;
  • среда разработки Espruino Web IDE;
  • платы Espruino и совместимые с ними устройства.

Официальный сайт платформы — http://www.espruino.com/.

Видеообзор платформы Espruino и JS

История

Основатель и идеолог проекта Гордон Вильямс выпустил первую Espruino в 2013 году. Платформа быстро завоевала популярность, в том числе благодаря кампании на Kickstarter.

Название Espruino пародирует Arduino, самую известную на тот момент хобби-платформу, но Espruino не совместима с ней ни механически, ни программно. Общая черта — архитектура стандартной библиотеки Espruino, в которой функция работы с пинами похожа на библиотеку Arduino. Благодаря этому разобраться с альтернативной платформой тем, кто знаком с Arduino, не составляет труда.

Составляющие проекта Espruino опубликованы в открытом доступе по лицензии MPL.

Роль Амперки

Мы использовали свободную лицензию и улучшили экосистему:

  • Выпустили плату Iskra JS, которая работает на ядре Espruino и механически совместима с Arduino. Это позволяет использовать платы расширения для Arduino.
  • Возвели идею о библиотеках в абсолют. У каждого периферийного модуля и компонента свой модуль-библиотека с интуитивно понятными методами и объектами. Разрабатывать устройства можно быстрее и проще.
  • Выпустили подробную документацию на русском языке, сняли цикл видеоуроков и делаем проекты на JS с подробным описанием.
  • Продаём оригинальные контроллеры Espruino.

Отличия JavaScript от стандарта

По большей части интерпретатор Espruino следует стандарту языка. Однако, есть ряд нюансов:

  • Точки с запятыми не расставляются автоматически на месте переноса строк.
  • Отсутствуют метки для инструкций break.
  • Отсутствуют регулярные выражения.
  • Символы строк хранятся в кодировке UTF-8, поэтому символы вне ASCII-диапазона занимают по 2 байта: "SWD".length === 3; "ЫЙЦ".length === 6; "SWЙ".length === 4;

Встроенные объекты JavaScript следуют стандарту ECMA Script 5, но некоторые функции не реализованы из соображений экономии памяти. Также как и в браузере, проблема решается с помощью полифиллов: добавлением реализации нужных функций «на лету».

Что почитать

Описание проектов на Iskra JS и Espruino Pico

Как запустить Espruino на других платах

Запустить интерпретатор JavaScript можно не только на платах Espruino или Iskra JS. Установка на разные платы заметно отличается, поэтому мы собрали ссылки на пошаговые инструкции для популярных платформ.