Начало работы с Espruino: JavaScript в микроконтроллере
Лёгкий, гибкий, выразительный JavaScript может исполнять не только ваш браузер, но и микроконтроллер. Благодаря open source ядру Espruino и открытой среде программирования, вы сможете создавать сложные электронные устройства действительно просто.
Железо
Iskra JS — флагманская плата Амперки со встроенным интерпретатором JavaScript.
Построена на микроконтроллере Cortex-M4. 168 МГц, оперативная память на 5000 переменных JS, 1 МБ флеш-памяти для хранения программы.
Совместима по компоновке со стандартом Arduino Uno R3: можно использовать модули и платы расширения Arduino.
«Йодо» — набор из Iskra JS, модулей, конструктива и книги. Набор учит собирать и программировать собственные устройства на JavaScript и платформе Iskra JS. Книга включает 25 мини-проектов и необходимую теорию.
Мы выпустили три продолжения «Йодо»:
- «Интернет вещей» — 7 экспериментов с WiFi, SD-картридером, мини-реле и сетевыми IFTTT, dweet.io и telegram;
- «Автополив» — 7 электронных модулей для сборки системы автополива;
- «Робоняша» — 8 электронных модулей, #структор и инструкция по сборке робота.
Среда программирования
Espruino Web IDE — штатная среда для программирования, обновления и отладки плат Iskra JS и Espruino.
Работает на всех настольных операционных системах. Устанавливается в 2 клика.
Документация
Стандартный JavaScript
- Встроенные функции и константы — константы и функции
- ArrayBuffer — типизированые массивы, ArrayBuffer, DataView, ArrayBufferView
- 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 — работы с файловой системой карт памяти
Подгружаемые библиотеки
- @amperka/accelerometer — драйвер акселерометра
- @amperka/analog-line-sensor — драйвер аналогового сенсора пересечения линии
- @amperka/animation — плавное изменение параметров
- @amperka/barometer — драйвер барометра
- @amperka/bluetooth — драйвер bluetooth-модуля
- @amperka/button — драйвер модуля-кнопки и других кнопок
- @amperka/buzzer — драйвер модуля-зуммера
- @amperka/card-reader — расширение библиотеки fs для работы с SD картами
- @amperka/digital-line-sensor — драйвер цифрового сенсора пересечения линии
- @amperka/dweetio — клиент для работы с графиками в dweet.io
- @amperka/gas-sensor — драйвер датчиков газа
- @amperka/gpio-expander — драйвер GPIO expander
- @amperka/gprs-shield — драйвер GPRS-модуля
- @amperka/hysteresis — фиксация пересечения пороговых значений
- @amperka/ifttt-webhooks — клиент для компонента webhooks сервиса ifttt.com
- @amperka/ir-receiver — драйвер модуля инфракрасного приёмника
- @amperka/led — драйвер модуля-светодиода и других светодиодов
- @amperka/led-matrix — драйвер светодиодной матрицы 8×8
- @amperka/led-strip — драйвер светодиодной ленты
- @amperka/light-sensor — драйвер модуля сенсора освещённости
- @amperka/magnetometer — драйвер магнитометра (компаса)
- @amperka/motor — драйвер для контроллера двигателей
- @amperka/multiservo — драйвер для контроллера сервоприводов
- @amperka/nfc — драйвер RFID/NFC сканера
- @amperka/pot — драйвер модуля-потенциометра
- @amperka/pid — ПИД-регулятор
- @amperka/power-control — управление транзистором
- @amperka/proximity — драйвер датчика приближения и освещённости
- @amperka/quaddisplay — драйвер для работы с четырёхразрядным индикатором (v1)
- @amperka/quaddisplay2 — драйвер для работы с четырёхразрядным индикатором (v2)
- @amperka/ringtone — проигрывание мелодий в формате Nokia RTTTL
- @amperka/relay — драйвер для работы с реле
- @amperka/robot-2wd — драйвер двухколёсного робота
- @amperka/rs-485 — драйвер для работы с модулей RS-485
- @amperka/rtc — драйвер для работы с часами реального времени
- @amperka/servo — драйвер хобби-сервомоторов
- @amperka/stepper — драйвер шагового двигателя
- @amperka/telegram — телеграм-бот
- @amperka/thermometer — драйвер для модуля аналогового линейного термометра
- @amperka/timer — периодически повторяющиеся и отложенные действия
- @amperka/ultrasonic — драйвер для ультразвукового дальномера HC-SR04
- @amperka/usb-keyboard — эмуляция HID-устройства USB-клавиатуры
- @amperka/water-flow — драйвер датчика потока воды
- @amperka/water-level — драйвер датчика уровня воды
- @amperka/wifi — драйвер модуля Wi-Fi
Репозиторий библиотек от Амперки
По умолчанию библиотеки модулей Амперки работают только при подключении к интернету. Если вы планируете прошивать плату Iskra JS без выхода в сеть, сперва необходимо настроить ваш компьютер.
Вы также можете создать свою библиотеку и подключить её к Espruino Web IDE.
MDN
MDN (Mozilla Development Network) — обширная документация по JavaScript на русском языке. Большая часть информации применима к программированию микроконтроллеров. Отличия от стандарта — в минорных деталях.
Espruino
Англоязычные материалы на официальном сайте платформы: