====== Среда программирования Espruino Web IDE ======
Espruino Web IDE — это среда разработки для написания и загрузки программ в контроллеры с загрузчиком Espruino. В ней есть удобный редактор кода, консоль для отладки и инструменты управления платой.
{{ :js:ide:espruino-ide-install-overview.png?nolink |}}
[[js:espruino-ide-error|У меня что то пошло не так при подключении контроллера Espruino или Iskra JS]]
===== Список поддерживаемых плат =====
* [[amp>collection/espruino?utm_source=man&utm_campaign=espruino-ide-install&utm_medium=wiki|Контроллеры Espruino]]
* [[amp>product/iskra-js?utm_source=man&utm_campaign=espruino-ide-install&utm_medium=wiki|Iskra JS]]
* [[amp>product/iskra-js-mini?utm_source=man&utm_campaign=espruino-ide-install&utm_medium=wiki|Iskra JS Mini]]
* [[amp>product/bbc-microbit?utm_source=man&utm_campaign=espruino-ide-install&utm_medium=wiki|BBC micro:bit]]
* [[amp>product/stm32-nucleo-f401re?utm_source=man&utm_campaign=espruino-ide-install&utm_medium=wiki|STM32 Nucleo]]
* [[amp>product/wifi-slot?utm_source=man&utm_campaign=espruino-ide-install&utm_medium=wiki|Wi-Fi Slot]]
* [[amp>product/esp32-wroom-wifi-devkit-v1?utm_source=man&utm_campaign=espruino-ide-install&utm_medium=wiki|ESP32 WROOM DevKit v1]]
===== Видеобзор ======
{{youtube>_1Zd4QLJx6U?large}}
===== Установка и настройка =====
Espruino Web IDE можно использовать с операционными системами Windows, macOS и Linux.
Все примеры в рамках данной статьи будут с OS Windows.
==== Шаг 1. Установка среды ====
Среда программирования Espruino Web IDE поддерживает два типа инсталляции:
* [[#online_приложение|Online-приложение]]
* [[#приложение_для_рабочего_стола|Приложение для рабочего стола]]
Если у вас операционная система ниже Windows 8, то Online версия Espruino Web IDE может не видеть COM-порты. В этом случае используйте [[#приложение_для_рабочего_стола|десктопную версию Espruino Web IDE]].
=== Online приложение ===
[[https://www.espruino.com/ide/|Откройте Web-версию Espruino IDE]].
=== Приложение для рабочего стола ===
[[http://www.espruino.com/files/|Скачайте и установите самую последнюю десктопную версию Espruino Web IDE]].
==== Шаг 2. Добавление настроек Амперки ====
Добавьте в Espruino IDE поддержку библиотек от Амперки.
- Зайдите в настройки Espruino Web IDE:
Settings
//Communications//
и найдите поле ''Module URL''.{{ :js:ide:espruino-ide-install-amperka-modules.1.png?nolink |}}
- Добавьте к основному адресу модулей Espruino альтернативный путь модулей Amperka через знак ''|''. Было:
https://www.espruino.com/modules
Стало:
https://www.espruino.com/modules | https://js.amperka.ru/modules
{{ :js:ide:espruino-ide-install-amperka-modules.2.png?nolink |}}
==== Шаг 3. Установка драйвера ====
Если у вас OS Windows, установите {{ :js:ide:en.stsw-link009.zip |драйвер ST-LINK для микроконтроллера STM32}}. Для macOS и Linux драйвер не нужен.
===== Интерфейс среды =====
Espruino Web IDE состоит из двух основных частей: слева — окно консоли, справа — окно исходного кода.
{{ :js:ide:espruino-ide-install-annotation.png?nolink |}}
===== Типовой сценарий работы =====
- Пишите программу в поле для кода
- Загружаете программу в плату кнопкой {{:js:ide:icon-deploy.png?nolink|}}
- Наблюдаете за работой устройства и выводом отладочной информации в консоли
===== Соединение с платой =====
Espruino Web IDE поддерживает два типа соединения:
* [[#беспроводное_подключение|По беспроводному протоколу BLE]]
* [[#проводное_подключение|По проводному последовательному интерфейсу UART]]
==== Беспроводное подключение ====
=== Поддерживаемые устройства ===
Беспроводное подключение в среде Espruino Web IDE доступно только при наличии беспроводных приёмопередатчиков на обоих устройствах:
* На ПК должен быть включён модуль Bluetooth. Если модуль беспроводной связи BLE физически отсутствует, его можно приобрести отдельно.
* Контроллер Espruino должен поддерживать соединение по протоколу BLE. Список поддерживаемых плат:
* [[amp>product/espruino-mdbt42q-breakout-with-headers?utm_source=man&utm_campaign=espruino-ide-install&utm_medium=wiki|Espruino MDBT42Q Breakout]]
* [[amp>product/espruino-puck-js?utm_source=man&utm_campaign=espruino-ide-install&utm_medium=wiki|Espruino Puck.js]]
* [[amp>product/espruino-pixl-js?utm_source=man&utm_campaign=espruino-ide-install&utm_medium=wiki|Espruino Pixl.js]]
В качестве примера будем использовать платформу [[amp>product/espruino-puck-js?utm_source=man&utm_campaign=espruino-ide-install&utm_medium=wiki|Espruino Puck.js]].
=== Инструкция по подключению ===
- Подключите питание к плате Espruino. Для Puck.js вставьте элемент питания в батарейный отсек.{{ :js:ide:espruino-ide-install-wiring-wireless.png?nolink |}}
- В среде Espruino Web IDE в верхнем левом углу нажмите кнопку {{:js:ide:icon-connect.png?nolink|}}.{{ :js:ide:espruino-ide-install-connect-wireless.1.png?nolink |}}
- Появится всплывающее окно со списком доступных портов плат, в зависимости от операционной системы и метода подключения.:
Выбирайте подключение через Web Bluetooth.
{{ :js:ide:espruino-ide-install-connect-wireless.2.png?nolink |}}
- Откроется окно поиска новых устройств.{{ :js:ide:espruino-ide-install-connect-wireless.3.png?nolink |}}
- Выберите нужное устройство и нажмите на кнопку ''Подключить''.{{ :js:ide:espruino-ide-install-connect-wireless.4.png?nolink |}}
- После успешного подключения:{{ :js:ide:espruino-ide-install-connect-wireless.5.png?nolink |}}
- В консоли появится надпись «Connected».
- Фон кнопки {{:js:ide:connect-icon.png?nolink|}} изменит цвет на зелёный.
- В нижнем правом углу всплывёт окошко с уведомлением, что плата успешно подключена к компьютеру.
==== Проводное подключение ====
В качестве примера будем использовать платформу [[amp>product/raspberry-pi-pico?utm_source=man&utm_campaign=thonny-python-ide-install&utm_medium=wiki|Iskra JS]].
- Подключите контроллер Iskra JS к компьютеру по USB.{{ :js:ide:espruino-ide-install-wiring-wire.png?nolink |}}
- В среде Espruino Web IDE в верхнем левом углу нажмите кнопку {{:js:ide:icon-connect.png?nolink|}}.{{ :js:ide:espruino-ide-install-connect-wire.1.png?nolink |}}
- Будет представлен список доступных портов плат в зависимости от OS и метода подключения.
Найдите среди свою плату простым перебором.
{{ :js:ide:espruino-ide-install-connect-wire.2.png?nolink |}}
- После успешного подключения:{{ :js:ide:espruino-ide-install-connect-wire.3.png?nolink |}}
- В консоли появится надпись «Connected».
- Фон кнопки {{:js:ide:connect-icon.png?nolink|}} изменит цвет на зелёный.
- В нижнем правом углу всплывёт окошко с уведомлением, что плата успешно подключена к компьютеру.
===== Тестирование подключения =====
Проверим корректное соединения с платформой.
==== Программная перезагрузка ====
В чёрном поле консоли наберите команду:
reset();
Контроллер перезагрузится, а в консоли отобразиться баннер платы. В нашем случае баннер контроллера Iskra JS.{{ :js:ide:espruino-ide-install-test-connect.1.png?nolink |}}
Обратите внимание на версию ''2v22'' интерпретатора зашитую в контроллер. Если плата работает не корректно, [[#обновление_прошивки|обновите прошивку платформы до самой свежей]].
==== Консольные команды ====
Через консоль можно работать с подключённой платой в реальном времени: выполнять выражения, вызывать функции, просматривать значения переменных и т.д. Например, введите в консоль ''6 + 8'' и нажмите ''Enter''. Плата выполнит команду и выведет результат — ''14''.{{ :js:ide:espruino-ide-install-test-connect.2.png?nolink |}}
===== Загрузка первой программы =====
Плата подключена, среда настроена — пора переходить к экспериментам на железе. Прошейте управляющую плату, скриптом приведённой ниже. После загрузки, cветодиод ''LED1'' на плате должен загораться и гаснуть каждые 500 мс.
var on = false;
setInterval(function() {
on = !on;
LED1.write(on);
}, 500);
{{ :js:ide:espruino-ide-install-test-upload.1.png?nolink |}}
Немного модифицируем код, чтобы изменить частоту мигания светодиода. Замените значение ''500'' на ''100'' и перепрошейте плату.
var on = false;
setInterval(function() {
on = !on;
LED1.write(on);
}, 100);
После загрузки, cветодиод ''LED1'' будет загораться и гаснуть каждые 100 миллисекунд — в 5 раз быстрее исходной версии.
В примере используется объект ''LED1'' который расположен на платформе [[amp>/product/iskra-js|Iskra JS.]] Если вы используете другую плату с интерпретатором JavaScript, имена объектов и пинов могут отличатся.
===== Загрузка программы c библиотеками Espruino =====
Espruino поддерживает библиотеки в виде модулей, которые содержат фрагменты кода для упрощения работы с различными устройствами и программными задачами. Модули делают основную программу проще, предоставляя готовые функции для взаимодействия с оборудованием.
Чтобы использовать модуль, нужно подключить его с помощью команды ''require()''.
В качестве примера возьмём модуль Storage, который позволяет сохранять и читать данные из памяти платы. Запишем в память сообщение, а затем прочитаем его.
// Подключаем модуль Storage
var data = require('Storage');
// Записываем сообщение в память
data.write("message", "Hello, Espruino!");
// Читаем и выводим сообщение
print(data.read("message"));
После прошивки платы, вы должны увидеть в консоли Espruino приветственную надпись: ''Hello, Espruino!''.
Список всех официальных модулей с примерами использования смотрите в [[https://www.espruino.com/Modules|документации Espruino]].
===== Загрузка программы c библиотеками Амперки =====
Стандартные библиотеки Espruino не всегда могут покрыть все потребности пользователей. Мы в компании Амперка разработали дополнительные программные модули, которые расширяют список доступных функций и железа. Каждая из библиотек сопровождается подробной документацией на русском языке.
Для примера используем модуль ''led'', который упрощает управление миганием светодиода, избавляя от необходимости писать сложный код.
// Подключаем модуль для работы со светодиодом
// В параметрах передаём объект втроенного светодиода на плате
var myLed = require('@amperka/led').connect(LED1);
// Мигаем светодиом в темпе: 0.9 сек — включен, 0.1 сек — выключен
myLed.blink(0.9, 0.1);
После прошивки платы, светодиод будет мигать с частотой: 0,9 сек — включён и 0,1 сек — выключён.
Список всех официальных модулей от Амперки с примерами использования смотрите в [[js:start|на нашей вики в разделе библиотеки]].
Поздравляем, вы полностью настроили железо со средой Espruino IDE. Можете смело переходить к изучению всех возможностей [[:js:|программирования микроконтроллеров на JavaScript]].
===== Обновление прошивки =====
Если перестала работать плата или хотите обновить интерпретатор JS до самой актуальной версии, [[js:update-firmware-dfu|прошейте контроллер на плате через DFU-режим]].
===== Ресурсы =====
Рекомендуем также ознакомиться со статьями, документацией и другими полезными материалами по платформе Espruino Web IDE.
==== Статьи и инструкции ====
* [[js:espruino|Что такое Espruino: история возникновения, теория и практика]]
* [[js:start|Cправочные материалы по JavaScript в микроконтроллере]]
* [[js:update-firmware-dfu|Обновление прошивки плат Espruino и Iskra JS в DFU-режиме]]
* [[js:для_тех_кто_переходит_с_arduino|Переход от Arduino на C++ к Espruino на JavaScript]]
* [[js:espruino-ide-error|Технический FAQ по Espruino и Iskra JS]]
==== Библиотеки ====
* [[https://www.espruino.com/Modules|Список библиотек от Espruino]]
* [[js:start|Список библиотек от Амперки]]
* [[js:modules:connection|Создание и подключение своей библиотеки]]
* [[js:ide:amperka-modules-without-internet|Использование библиотек Амперки без интернета]]
==== Драйверы ====
* {{ :js:ide:en.stsw-link009.zip |Драйвер USB ST-LINK для STM32}}
* [[https://www.st.com/en/development-tools/st-link-v2.html#tools-software|Полный список драйверов и утилит для STM32]]