====== Среда программирования Espruino Web IDE ======
Espruino Web IDE — это приложение для написания программы и загрузки её в плату. Утилита также содержит в себе консоль для наблюдения и отладки вывода консольных команд.
{{ :js:ide:espruino-ide-install.1.png?nolink |}}
===== Видеобзор ======
{{youtube>_1Zd4QLJx6U?large}}
===== Установка и настройка =====
==== Шаг 1. Установка среды ====
Среда программирования Espruino Web IDE поддерживает три типа инсталляции:
* [[#online_приложение|Online-приложение]].
* [[#приложение_из_магазина_google_chrome|Приложение из магазина Google Chrome]]. (На текущий момент не работает)
* [[#приложение_для_рабочего_стола|Приложение для рабочего стола]].
Если у вас операционная система Windows 7 или 8, то Espruino из магазина приложений Chrome и web-версия могут не видеть COM-порты. Используйте [[#приложение_для_рабочего_стола|нативное приложение]] в этом случае.
=== Online приложение ===
Для старта, просто откройте Web-версию [[https://www.espruino.com/ide/|Espruino IDE]].
=== Приложение из магазина Google Chrome ====
- Скачайте и установите [[https://www.google.ru/chrome/browser/desktop/|браузер Google Chrome]].
- Добавьте в Google Chrome приложение [[https://chrome.google.com/webstore/detail/espruino-web-ide/bleoifhkdalbjfbobjackfdifdneehpo|Espruino Web IDE]].
=== Приложение для рабочего стола ===
[[http://www.espruino.com/files/|Скачайте и установите]] самую последнюю десктопную версию версию Espruino Web IDE. Espruino.exe находится почти в самом конце списка.
==== Шаг 2. Добавление настроек Амперки ====
Добавьте в Espruino IDE поддержку платы Iskra JS и библиотек от Амперки в автоматическом или ручном режиме.
=== Автоматический режим ===
Если у вас версия от Google Chrome, просто [[http://www.espruino.com/webide?settings=%7B%22MODULE_URL%22%3A%22https%3A%2F%2Fjs.amperka.ru%2Fmodules%22%2C%22BOARD_JSON_URL%22%3A%22https%3A%2F%2Fjs.amperka.ru%2Fjson%22%2C%22SAVE_ON_SEND%22%3Atrue%7D|кликните по текущей ссылке]]. Во всех остальных случаях [[#ручной_режим|настройки придётся вбить вручную]].
{{ :js:ide:g10.png?nolink |}}
=== Ручной режим ===
- Зайдите в настройки Espruino Web IDE:
Settings
//Communications//
и найдите поле ''Module URL''.
- Измените адрес:
https://www.espruino.com/modules
на
https://js.amperka.ru/modules
{{ :js:ide:espruino-ide-install.3x.png?nolink |}}
- Перейдите в настройки Espruino Web IDE:
Settings
//BOARD//
и найдите поле ''Board JSON URL''.
- Измените адрес:
https://www.espruino.com/json
на
https://js.amperka.ru/json
{{ :js:ide:espruino-ide-install.4x.png?nolink |}}
==== Шаг 3. Установка драйвера ====
Если у вас Windows, установите {{ :js:ide:stsw-stm32.zip |драйвер}} для USB-интерфейса микроконтроллера STM32. Для Mac OS и Linux драйвер не нужен.
===== Интерфейс среды =====
{{ :js:ide:espruino-ide-install.5x.png?nolink |}}
Окно среды состоит из двух основных частей: слева — окно консоли, справа — окно исходного кода.
Типовой сценарий работы:
* вы пишите код в правой панели IDE;
* загружаете его в плату кнопкой {{:js:ide:icon-deploy.png?nolink|}};
* наблюдаете за работой устройства и выводом отладочной информации в консоли.
===== Соединение с платой =====
Espruino Web IDE поддерживает два типа соединения:
* [[#беспроводное_подключение|По беспроводному протоколу BLE]]
* [[#проводное_подключение|По проводному последовательному интерфейсу UART]]
==== Беспроводное подключение ====
=== Поддерживаемые устройства ===
Беспроводное подключение к среде Espruino Web IDE доступно только при наличии беспроводных приёмопередатчиков на обоих устройствах: Espruino и ПК.
* На ПК должен быть включён модуль Bluetooth. Если он физически отсутствует, его можно приобрести отдельно.
* Плата 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]]
Для всех остальных случаев, используйте [[#проводное_подключение| проводное соединение по последовательному интерфейсу UART]].
=== Инструкция по подключению ===
- Подключите к плате Espruino питание и землю.
- В среде Espruino Web IDE в верхнем левом углу нажмите кнопку {{:js:ide:icon-connect.png?nolink|}}.{{ :js:ide:espruino-ide-install.6x.png?nolink |}}
- Вам будет представлен список доступных портов плат в зависимости от OS и от типа подключения:
* Выборка по типу подключения: проводной и беспроводной.
* Выборка по OS: **Windows**: COMxxx, **MacOS**: /dev/tty.usbmodemxxx, **Linux**: /dev/ttyACMxxx.
Выбирайте подключение через Web Bluetooth.
{{ :js:ide:espruino-ide-install.12.png?nolink |}}
- Откроется окно поиска новых устройств.{{ :js:ide:espruino-ide-install.13.png?nolink |}}
- Выберите интересующее вас устройство и нажмите на кнопку «Подключить».{{ :js:ide:espruino-ide-install.14.png?nolink |}}
- После успешного подключения, вы увидите в консоли надпись «Connected». Фон кнопки {{:js:ide:connect-icon.png?nolink|}} изменит цвет на зелёный и в нижнем правом углу всплывёт окошко с уведомлением, что плата успешно подключена к компьютеру.
{{ :js:ide:espruino-ide-install.15.png?nolink |}}
==== Проводное подключение ====
- Подключите плату к компьютеру по USB.
- В среде Espruino Web IDE в верхнем левом углу нажмите кнопку {{:js:ide:icon-connect.png?nolink|}}.{{ :js:ide:espruino-ide-install.6x.png?nolink |}}
- Вам будет представлен список доступных портов плат в зависимости от OS и от типа подключения:
* Выборка по типу подключения: проводной и беспроводной.
* Выборка по OS: **Windows**: COMxxx, **MacOS**: /dev/tty.usbmodemxxx, **Linux**: /dev/ttyACMxxx.
Найдите среди них свою плату простым перебором.
{{ :js:ide:espruino-ide-install.7.png?nolink |}}
- После успешного подключения, вы увидите в консоли надпись «Connected». Фон кнопки {{:js:ide:connect-icon.png?nolink|}} изменит цвет на зелёный и в нижнем правом углу всплывёт окошко с уведомлением, что плата успешно подключена к компьютеру.
{{ :js:ide:espruino-ide-install.8.png?nolink |}}
===== Тестирование подключения =====
Проверим корректное соединения с платформой.
==== Программная перезагрузка ====
В чёрном окне консоли наберите команду:
reset();
Плата перезагрузится, а в консоли отобразиться баннер платы.
{{ :js:ide:espruino-ide-install.9x.png?nolink |}}
Обратите внимание на версию интерпретатора JS (2v01.49) в примере. Если плата работает не корректно, [[#обновление_прошивки|обновите прошивку платформы до самой свежей]].
==== Консольные команды ====
Через консоль можно работать с подключённой платой «налету»: исполнять выражения, вызывать функции, просматривать значения переменных и т.д. Попробуйте, например, ввести в консоль ''6 + 8'' и нажать Enter. Плата выполнит команду и вернёт результат ''14''.
{{ :js:ide:espruino-ide-install.10x.png?nolink |}}
==== Что-то пошло не так? ====
* [[js:ide:driver-error|У меня не появляется новых устройств при нажатии на кнопку «Connected» или не появляется баннер платы]]
===== Загрузка первой программы =====
Среда настроена, плата подключена. Прошейте управляющую плату, программой приведённой ниже.
Светодиод «LED1» на плате будет загораться и гаснуть каждые 500 миллисекунд.
var on = false;
setInterval(function() {
on = !on;
LED1.write(on);
}, 500);
{{ :js:ide:espruino-ide-install.11x.png?nolink |}}
Немного модифицируем код, чтобы изменить частоту мигания светодиода.
Замените значение ''500'' на ''100'' и перепрошейте плату.
var on = false;
setInterval(function() {
on = !on;
LED1.write(on);
}, 100);
Теперь светодиод «LED1» будет загораться и гаснуть каждые 100 миллисекунд — в 5 раз быстрее исходной версии.
В примере используется объект ''LED1'' который установлен на платформе [[amp>/product/iskra-js|Iskra JS.]] Если вы используете другую платформу с интерпретатором JavaScript, имена объектов и пинов могут отличатся.
===== Загрузка программы c использованием библиотек Амперки =====
Проверим плату на первом эксперименте из набора [[amp>product/yodo?utm_source=man&utm_campaign=espruino-ide-install&utm_medium=wiki|Йодо]].
- Подключите [[amp>product/troyka-led-module?utm_source=man&utm_campaign=espruino-ide-install&utm_medium=wiki|светодиод «Пиранья» (Troyka-модуль)]] или [[amp>product/troyka-5mm-led-module?utm_source=man&utm_campaign=espruino-ide-install&utm_medium=wiki|светодиод 5 мм (Troyka-модуль)]] к пину ''P1''
- Прошейте управляющую плату следующей программой:
var myCoolLamp = require('@amperka/led').connect(P1);
myCoolLamp.turnOn();
В консольном окне появится сообщение об успешной прошивке, а в правом нижнем углу среды — всплывающее окно об успешном подключении библиотеки. Светодиод на пине ''P1'' загорится.
В примере используется пин ''P1'' который установлен на платформе [[amp>product/iskra-js?utm_source=man&utm_campaign=espruino-ide-install&utm_medium=wiki|Iskra JS.]] Если вы используете другую платформу с интерпретатором JavaScript, имена объектов и пинов могут отличатся.
Поздравляем, вы полностью настроили железо со средой Espruino IDE. Можете смело переходить к изучению всех возможностей [[:js:|программирования микроконтроллеров на JavaScript]].
==== Что-то пошло не так? ====
* [[js:ide:driver-error#не_работают_библиотеки_амперки|При прошивке платы возникает ошибка «Module @amperka/led not found»]]
* [[js:ide:driver-error#программа_не_сохраняется_после_сброса_питания|Программа не сохраняется после сброса питания]]
* [[js:ide#обновление_прошивки|Возникают проблемы при работе с SD картой? Обновите прошивку до самой свежей. ]]
* [[js:ide:driver-error#disconnect_при_загрузке_скрипта|Происходит Disconnect при попытке залить скрипт в память контроллера]]
===== Обновление прошивки =====
Если у вас перестала работать плата или вы хотите обновить интерпретатор JS до самой актуальной версии, [[js:ide:dfu-firmware|прошейте контроллер на плате через DFU-режим]].
===== Список поддерживаемых плат =====
* [[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]]