~~NOTOC~~ ====== Начало работы с Espruino: JavaScript в микроконтроллере ====== Лёгкий, гибкий, выразительный JavaScript может исполнять не только ваш браузер, но и микроконтроллер. Благодаря open source ядру [[js:espruino | Espruino]] и открытой среде программирования, вы сможете создавать сложные электронные устройства действительно просто. ===== Железо ===== {{:js:iskra_js:iskra-js.2.1.jpg?nolink |}} **[[js:iskra_js | Iskra JS]]** — флагманская плата Амперки со встроенным интерпретатором JavaScript. Построена на микроконтроллере Cortex-M4. 168 МГц, оперативная память на 5000 переменных JS, 1 МБ флеш-памяти для хранения программы. Совместима по компоновке со стандартом Arduino Uno R3: можно использовать модули и платы расширения Arduino. {{:js:start:yodo-box.jpg?nolink |}} **«[[amp>product/yodo|Йодо]]»** — набор из Iskra JS, модулей, конструктива и книги. Набор учит собирать и программировать собственные устройства на JavaScript и платформе Iskra JS. Книга включает 25 мини-проектов и необходимую теорию. Мы выпустили три продолжения «Йодо»: * «[[amp>product/yodo-iot|Интернет вещей]]» — 7 экспериментов с WiFi, SD-картридером, мини-реле и сетевыми IFTTT, dweet.io и telegram; * «[[amp>product/yodo-automatic-watering|Автополив]]» — 7 электронных модулей для сборки системы автополива; * «[[amp>product/yodo-to-robonjasha|Робоняша]]» — 8 электронных модулей, #структор и инструкция по сборке робота. ===== Среда программирования ===== [[ide|{{:js:start:espruino_web_ide_049.png?nolink |}}]] **[[ide|Espruino Web IDE]]** — штатная среда для программирования, обновления и отладки плат Iskra JS и Espruino. Работает на всех настольных операционных системах. Устанавливается в 2 клика. ===== Документация ===== ==== Стандартный JavaScript ==== * [[builtins]] — константы и функции * [[Array]], [[Boolean]], [[Function]], [[Number]], [[Object]], [[String]] — примитивы * [[TypedArray]] — типизированые массивы, ArrayBuffer, DataView, ArrayBufferView * [[Error]], [[Error#InternalError|InternalError]], [[Error#ReferenceError|ReferenceError]], [[Error#SyntaxError|SyntaxError]], [[Error#TypeError|TypeError]] — ошибки * [[Date]] — работа с датами и временем * [[JSON]] — кодирование и декодирование JSON * [[Math]] — математические функции ==== Классы и объекты, уникальные для Espruino и Iskra JS ==== * [[E]] — утилитарные функции Espruino * [[Pin]] — работа с портами ввода-вывода (пинами) * [[File]] — чтение и запись файлов * [[SPI]] — работа с интерфейсом SPI * [[I2C]] — работа с интерфейсом TWI/I²C * [[Serial]] — работа с интерфейсом UART * [[OneWire]] — работа с шиной 1-Wire ==== Встроенные библиотеки Espruino и Iskra JS ==== * [[crypto]] — работа с криптографией * [[flash]] — прямые чтение и запись флеш-памяти контроллера * [[fs]] — работы с файловой системой карт памяти ==== Подгружаемые библиотеки ==== * [[accelerometer]] — драйвер акселерометра * [[analog-line-sensor]] — драйвер аналогового сенсора пересечения линии * [[animation]] — плавное изменение параметров * [[barometer]] — драйвер барометра * [[bluetooth]] — драйвер bluetooth-модуля * [[button]] — драйвер модуля-кнопки и других кнопок * [[buzzer]] — драйвер модуля-зуммера * [[card-reader]] — расширение библиотеки fs для работы с SD картами * [[digital-line-sensor]] — драйвер цифрового сенсора пересечения линии * [[dweet]] — клиент для работы с графиками в dweet.io * [[gas-sensor]] — драйвер датчиков газа * [[gpio-expander]] — драйвер GPIO expander * [[gprs-shield]] — драйвер GPRS-модуля * [[hysteresis]] — фиксация пересечения пороговых значений * [[ifttt-webhooks]] — клиент для компонента webhooks сервиса ifttt.com * [[ir-receiver]] — драйвер модуля инфракрасного приёмника * [[led]] — драйвер модуля-светодиода и других светодиодов * [[led-matrix]] — драйвер светодиодной матрицы 8×8 * [[led-strip]] — драйвер светодиодной ленты * [[light-sensor]] — драйвер модуля сенсора освещённости * [[magnetometer]] — драйвер магнитометра (компаса) * [[motor]] — драйвер для контроллера двигателей * [[multiservo]] — драйвер для контроллера сервоприводов * [[nfc]] — драйвер RFID/NFC сканера * [[pot]] — драйвер модуля-потенциометра * [[pid]] — ПИД-регулятор * [[power-control]] — управление транзистором * [[proximity]] — драйвер датчика приближения и освещённости * [[quaddisplay]] — драйвер для работы с четырёхразрядным индикатором (v1) * [[quaddisplay2]] — драйвер для работы с четырёхразрядным индикатором (v2) * [[ringtone]] — проигрывание мелодий в формате Nokia RTTTL * [[relay]] — драйвер для работы с реле * [[robot-2wd]] — драйвер двухколёсного робота * [[rs-485]] — драйвер для работы с модулей RS-485 * [[rtc]] — драйвер для работы с часами реального времени * [[servo]] — драйвер хобби-сервомоторов * [[stepper]] — драйвер шагового двигателя * [[telegram]] — телеграм-бот * [[thermometer]] — драйвер для модуля аналогового линейного термометра * [[timer]] — периодически повторяющиеся и отложенные действия * [[ultrasonic]] — драйвер для ультразвукового дальномера HC-SR04 * [[usb-keyboard]] — эмуляция HID-устройства USB-клавиатуры * [[water-flow]] — драйвер датчика потока воды * [[water-level]] — драйвер датчика уровня воды * [[wifi]] — драйвер модуля Wi-Fi [[https://github.com/amperka/espruino-modcat/tree/master/modules/%40amperka|Репозиторий библиотек от Амперки]] По умолчанию библиотеки модулей Амперки работают только при подключении к интернету. Если вы планируете прошивать плату Iskra JS без выхода в сеть, сперва необходимо [[js:ide:amperka-modules-without-internet|настроить ваш компьютер.]] Вы также можете создать свою библиотеку и [[js:modules:connection|подключить её к Espruino Web IDE]]. ==== MDN ==== [[https://developer.mozilla.org/ru/docs/Web/JavaScript|MDN (Mozilla Development Network)]] — обширная документация по JavaScript на русском языке. Большая часть информации применима к программированию микроконтроллеров. [[espruino#отличия_javascript_от_стандарта|Отличия от стандарта]] — в минорных деталях. ==== Espruino ==== Англоязычные материалы на официальном сайте платформы: * [[http://www.espruino.com/Reference|Документация по Espruino]] * [[http://www.espruino.com/Tutorials|Примеры]] * [[http://www.espruino.com/Modules|Модули / библиотеки]]