Espruino: JavaScript в микроконтроллере

image

«?», « ?», «!», «--» — , , Iskra JS Espruino.


, - Arduino, : « , - , … , ».

. Cortex M4, , Arduino Uno, JavaScript JavaScript!

, , , . .



- Arduino Uno . 16 4 : 1 10 .

, , C++ — . , , . , 30- . , , , , — . , Arduino.

, , . ? — , — .

. 2003- , - C/C++. . . Java, C#, Ruby, Python, JavaScript. , « », , , .

JavaScript


… JavaScript. Node.js. :

// SMS
var sim = require('@amperka/Sim900r').connect();
sim.powerOn();
sim.on('sms', function(sms) {
    var rgb = sms.text.split(' ');
    var r = +rgb[0];
    var g = +rgb[1];
    var b = +rgb[2];
    if (isNaN(r + g + b)) return;
    fadeTo(r, g, b);
});

// 
SPI2.setup({baud:3200000, mosi:B15});
var LED_COUNT = 150;
var colors = new Uint8ClampedArray(LED_COUNT * 3);

function fadeTo(r, g, b) {
  var n = 0;
  var ivalID = setInterval(function() {
    colors[n*3 + 0] = b;
    colors[n*3 + 1] = r;
    colors[n*3 + 2] = g;
    SPI2.send4bit(colors, 0b0001, 0b0011);
    if (n++ >= LED_COUNT) {
      clearInterval(ivalID);
    }
  }, 50);
}


, SMS’ RGB-. , Arduino. 4 .

Espruino


, V8 SpiderMonkey JavaScript. Espruino.

, Espruino — (, ) , JavaScript-, serial-, USB.

Espruino — open source , Gordon Williams. , KickStarter.

:

  • Espruino Web IDE — ;
  • Espruino Firmware — JavaScript-, ;
  • — , Espruino;
  • ;
  • .


.


JavaScript-, Espruino Web IDE. Google Chrome, 1 .

Arduino IDE.

Espruino IDE, , Eclipse Visual Studio, , Arduino IDE.

image


, (), () .

— Serial Monitor Arduino IDE, , : , , , , ..

, (, step-by-step , breakpoint’), , .

, IDE Espruino Firmware . USB.

Firmware


— , . , - , JS-, -.

- Iskra JS, :

image


, () . , .

:

  • BTN1, .
  • , , , USB . bootloader - Espruino Firmware, .



, .

, , - JavaScript. , .

, BTN1 , , JS-.


, . EEPROM Arduino, , - .


JS-, . , , .

, IDE.

, IDE, GUI- EspruinoTools, Node.js-. Vim, Atom, Eclipse .

, . .


3 : , .


— , . , `Date`, `JSON`, `Math`, `Object`, `setInterval`, `setTimeout` -, Espruino , , .

`pinMode`, `digitalRead`, `digitalWrite`, `analogRead`, `analogWrite`, `setWatch` , `digitalPulse` .

, , `pinMode` , , , ( ).

, `delay`. Mamma Mia, ! , `setInterval`, `setTimeout` `delay`.

: , . : `delay` — , `delay` . Espruino .


— , Espruino Firmware, JavaScript- `require`.

, , `fs` SD-, `http` web- , `Waveform` / .

, JavaScript- , . , .

-, JavaScript «, », .


— , . JavaScript Espruino, , Espruino.

, , -, GitHub’, NPM’.

, , `require`.

`require`, . , .

, Arduino , , , . - .


Espruino. , Espruino Firmware.

image


Espruino Board, Espruino Pico, Iskra JS. , .

Espruino- STM32 Discovery, Nucleo , , ESP8266.


, - , .

Espruino — . www.espruino.com/Reference .

. : js.amperka.ru, . , .

, , «». Iskra JS, .

. , ?

Source: https://habr.com/ru/post/id392399/


All Articles