Набор «йодо»
Содержание:
Документация
Стандартный JavaScript
- Встроенные функции и константы — константы и функции
- Array, Boolean, Function, Number, Object, String — примитивы
- ArrayBuffer — типизированые массивы, ArrayBuffer, DataView, ArrayBufferView
- Error, , , , — ошибки
- 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
FAQ
-
Как установить библиотеку
Да, модуль можно использовать, но скетч, библиотеки и схема сборки отличаются.
Вставьте четырёхразрядный индикатор в левый нижний слот
Прошейте контроллер скетчем через Arduino IDE.
- meteo.ino
-
// Подключаем библиотеку для работы с дисплеем #include <QuadDisplay.h> // библиотека для работы I²C #include <Wire.h> // библиотека для работы с модулями IMU #include <TroykaIMU.h> // создаём объект для работы с барометром Barometer barometer; // номер цифрового пина дисплея #define DISPLAY_PIN 11 void setup() { // инициализация барометра barometer.begin(); } void loop() { // создаём переменную и присваиваем ей значения // атмосферного давления в мм рт.ст. float pressure = barometer.readPressureMillimetersHg(); // создаём переменную и присваиваем ей температуру окружающей среды float temperature = barometer.readTemperatureC(); // выводим атмосферное давление на дисплей displayInt(DISPLAY_PIN, pressure); // ждём 3 секунды delay(3000); // выводим температуру окружающей среды на дисплей displayTemperatureC(DISPLAY_PIN, temperature); // ждём 3 секунды delay(3000); }
Исходный код
gamePong.ino
// библиотека для работы с композитным видео выходом
#include
// создаём объект TV класса TVout
TVout TV;
// максимальное количесво очков
#define MAX_SCORE 7
// длина ракеток
#define PADDLE_HEIGHT 10
// невидимые боковые грани рекакетки
// для отбивания в крайних точках ракетки
#define PADDLE_OFFSET 2
// пины подключения джойстиков каждого игрока
#define PLAYER_LEFT_PIN A5
#define PLAYER_RIGHT_PIN A0
// переменные для хранения размеров экрана
int hres, vres;
// координаты шара
int ballX, ballY;
// направление шара
int ballDX = 1;
int ballDY = 1;
// очки игроков
int playerScoreLeft = ;
int playerScoreRight = ;
int leftPaddleY = ;
int rightPaddleY = ;
// состояния системы
enum State
{
RESET_GAME,
NEXT_LEVEL,
PLAY_GAME,
STATE_MISS,
};
// объявляем переменную state
State state;
bool missed = ;
void setup()
{
// инициализируем коммуникацию с телевизиром
TV.begin(NTSC, 136, 96);
// ждём 1 секунду
delay(1000);
// считываем размеры экрана
hres = TV.hres();
vres = TV.vres();
// сбрасываем игру
state = RESET_GAME;
}
void loop()
{
switch (state) {
case RESET_GAME
// очищаем экран
TV.clearScreen();
// выбираем шрифт «4×6»
TV.selectFont(font4x6);
// печатем на экране слово «Амперка»
TV.print(55, , «Amperka»);
delay(1000);
// выбираем шрифт «8×8»
TV.selectFont(font8x8);
// печатем на экране название игры «Arduino Pong»»
TV.print(20, 30, «Arduino Pong»);
delay(1000);
// на старт, внимание, вперёд
for (int i = 3; i != ; i— ) {
TV.print(hres 2, 60, i);
TV.tone(1000, 300);
delay(1000);
}
TV.tone(2000, 300);
// выбираем шрифт «4×6»
TV.selectFont(font4x6);
// очищаем экран
TV.clearScreen();
// обнуляем счёт обоих игроков
playerScoreLeft = ;
playerScoreRight = ;
// переходим на следующий уровень
state = NEXT_LEVEL;
break;
case NEXT_LEVEL
// сброс шарика и ракеток
resetBallAndPaddles();
// рисуем игровое поле на экране
drawBox();
// выводим очки игроков на экране
drawScores();
// рисуем игровые ракетки
drawPaddles();
// переходим в состояние игры
state = PLAY_GAME;
break;
case PLAY_GAME
// если мяч достиг верхеней / нижней границицы поля
if (ballY == vres || ballY == ) {
ballDY *= -1;
}
// если мяч приближается к правой стороне
if (ballX >= hres — 2) {
// если мяч отбился правой ракеткой
if (ballY > rightPaddleY — PADDLE_OFFSET &&
ballY ) {
ballDX = -1;
}
}
// если мяч достиг правой стены
if (ballX == hres — 1) {
missed = true;
state = STATE_MISS;
playerScoreLeft++;
break;
}
// если мяч приближается к правой стороне
if (ballX leftPaddleY — PADDLE_OFFSET &&
ballY
Соединение с платой
Espruino Web IDE поддерживает два типа соединения:
Беспроводное подключение
Поддерживаемые устройства
Беспроводное подключение к среде Espruino Web IDE доступно только при наличии беспроводных приёмопередатчиков на обоих устройствах: Espruino и ПК.
- На ПК должен быть включён модуль Bluetooth. Если он физически отсутствует, его можно приобрести отдельно.
-
Плата Espruino должна поддерживать соединение по протоколу BLE. Список поддерживаемых плат:
-
Espruino MDBT42Q Breakout
-
Espruino Puck.js
-
Espruino Pixl.js
-
Для всех остальных случаев, используйте .
Инструкция по подключению
- Подключите к плате Espruino питание и землю.
- В среде Espruino Web IDE в верхнем левом углу нажмите кнопку .
-
Вам будет представлен список доступных портов плат в зависимости от OS и от типа подключения:
- Выборка по типу подключения: проводной и беспроводной.
-
Выборка по OS: Windows: COMxxx, MacOS: /dev/tty.usbmodemxxx, Linux: /dev/ttyACMxxx.
Выбирайте подключение через Web Bluetooth.
- Откроется окно поиска новых устройств.
- Выберите интересующее вас устройство и нажмите на кнопку «Подключить».
- После успешного подключения, вы увидите в консоли надпись «Connected». Фон кнопки изменит цвет на зелёный и в нижнем правом углу всплывёт окошко с уведомлением, что плата успешно подключена к компьютеру.
Проводное подключение
- Подключите плату к компьютеру по USB.
- В среде Espruino Web IDE в верхнем левом углу нажмите кнопку .
-
Вам будет представлен список доступных портов плат в зависимости от OS и от типа подключения:
- Выборка по типу подключения: проводной и беспроводной.
-
Выборка по OS: Windows: COMxxx, MacOS: /dev/tty.usbmodemxxx, Linux: /dev/ttyACMxxx.
Найдите среди них свою плату простым перебором.
- После успешного подключения, вы увидите в консоли надпись «Connected». Фон кнопки изменит цвет на зелёный и в нижнем правом углу всплывёт окошко с уведомлением, что плата успешно подключена к компьютеру.
Элементы платы
Микроконтроллер STM32F405RG
Сердце платформы Iskra JS — 32-разрядный микроконтроллер STM32F405RG от STMicroelectronics с вычислительном ядром ARM Cortex M4.
Выбор питания
Джампер определяет, как осуществляется преобразование входного напряжения. Он может быть установлен в одном из двух положений:
- — внешнее питание сначала проходит регулятор на 5 В, а он в свою очередь питает регулятор на 3,3 В. Работают обе шины: 5V и 3.3V. Допустимое входное напряжение в этом случае — от 7 до 15 вольт.
- — внешнее питание сразу подаётся на регулятор 3,3 В. Шина 5V не используется для получения 3,3 В. Допустимое входное напряжение — от 3,6 до 12 вольт. Используйте это положение, чтобы питать схему от одного Li-Ion аккумулятора.
Регулятор напряжения 5 В
Когда плата подключена к внешнему источнику питания, и джампер выбора питания установлен в положении , напряжение проходит через стабилизатор MC7805BD. Выход стабилизатора соединён с пином 5V. Максимальный выходной ток составляет 1000 мА.
Регулятор напряжения 3,3 В
Стабилизатор MC33275ST с выходом 3,3 вольта, обеспечивает питание микроконтроллера STM32F405RG. Максимальный выходной ток составляет 300 мА.
Светодиодная индикация
Имя светодиода | Назначение |
---|---|
BUSY | Информационный светодиод. Загорается, когда плата выполняет действия. |
LED1 | Светодиод свободного назначения. |
ON | Информационный светодиод о наличии питания на микроконтроллере. |
Разъём SPI
Некоторые платы расширения работают через интерфейс SPI. По стандарту Arduino R3 разъём SPI должен быть выведен в виде разъёма 3×2 штырька в этом месте. Iskra JS следует этому стандарту.
SPI-разъем не предназначен для внутрисхемного программирования микроконтроллера STM32F405RG и может использоваться только для связи с другими SPI-устройствами.
Разъём SWD
SWD-разъём предназначен для внутрисхемного программирования микроконтроллера STM32F405RG через программатор, например, ST-Link.
Пин BOOT0
Если замкнуть эту пару пинов, плата загрузится в DFU-режиме. Это позволит перепрошить микроконтроллер без программатора, через USB.
Как собрать?
- Для начала вставьте сим-карту в GPRS Shield и установите его на платформу Iskra Neo.
- Подключите внешнюю антенну через SMA-разъём.
- На платах Arduino с микроконтроллером ATmega32U4 (Iskra Neo, Arduino Leonardo, Arduino ETH, Arduino Micro и Arduino Yún) пины и используются для протокола I²C. В GPRS Shield контакты и также по умолчанию находятся на пинах и . Чтобы избежать конфликта с I²C-гироскопом перебросим контакты и GPRS Shield’a на пины и . Для этого снимите джамперы с контактов и GPRS Shield’a. На их место воткните два провода «мама-мама».
- Присоедините к Troyka Shield контактные колодки и установите получившуюся конструкцию на GPRS Shield. Соединяем с помощью проводов «мама-мама» контакты и GPRS Shield’a с пинами и платы Iskra Neo соответственно.
-
Используя два 3-проводных шлейфа подключите Troyka-гироскоп к Troyka Shield следующим образом:
Контакты питания:
- Земля (G) — чёрный провод. Соединить с пином Troyka Shield.
- Питание (V) — красный провод. Соединить с пином Troyka Shield.
- Не используется.
Контакты шины I²C:
- Сигнальный (D) — чёрный провод. Подключить к пину Troyka Shield.
- Сигнальный (С) — красный провод. Подключить к пину Troyka Shield.
- Не используется.
Используйте 3-проводной шлейф, чтобы подключить Troyka-светодиод к цифровому пину на Troyka Shield.
Теперь подключите динамик и микрофон в соответствующие разъёмы GPRS Shield.
Вставьте шесть NiMH аккумуляторов в батарейный отсек 3×2 AA. Через штекер питания 2,1 мм с клеммником подключите его к плате Iskra Neo.По итогу должна получиться следующая схема:
Теперь вам нужно упаковать устройство в плюшевого зверя. Для этого переверните игрушку спиной к себе, сделайте аккуратный надрез по шву и разместите всю электронику внутри. Проще сразу взять игрушку с молнией на спине, как у нас, иначе замаетесь штопать, и получите в итоге монстра Франкинштейна вместо милой зверушки.
Настройка точки доступа на смартфоне
Иногда в прямой досягаемости нет Wi-Fi сети, а сделать эксперименты из набора очень хочется. Что же делать в таком случае?
Поднять такую сеть самому при помощи смартфона!
Некоторые операторы блокируют возможность раздавать Wi-Fi с телефона. Если у тебя в меню нет нужных пунктов — свяжись со службой поддержки оператора и попроси активировать эту функцию. Обычно операторы восстанавливают эту возможность в течение часа после обращения.
iOS
Настройки общего доступа к сотовой сети твоего телефона находятся в меню «Настройки» «Сотовая связь» «Режим модема» .
В этом меню можно включить режим точки доступа и задать ей пароль. Именем (SSID) точки доступа будет имя телефона.
Рекомендуем не закрывать это меню до тех пор, пока клиент не подключится к точке доступа.
После первого включения режима модема такой пункт скорее всего появится в главном меню настроек телефона.
Android
Особенность телефонов на ОС Android — практически у каждого производителя свой интерфейс. Это значит, что невозможно точно сказать, где в твоем телефоне находится кнопка «Раздать интернет» (или даже как она называется). Обычно её можно найти в настройках под названиями вроде «Режим модема и переносная точка доступа».
Как это собрать?
-
Установите Troyka Shield на Arduino Uno
-
Подключите датчик влажности почвы через Troyka Shield к аналоговому пину
-
Подключите дисплей к управляющей плате через Troyka Shiled:
- Пин к пину Toyka Shield.
-
Пины дисплея к разъёму на Troyka Shiled
-
Подключите силовой ключ к контакту
-
Подведите коммутирующее напряжение к силовому ключу в разъём и
-
Подключите помпу к силовому ключу через клеммник с разъёмами и . В итоге должна получится схема.
- Воткните сенсор влажности почвы в землю.
- Другой конец шланга вставьте с водой в землю. Если горшок с землёй весит менее 2 кг, рекомендуется отдельно закрепить трубку, чтобы она не перевернула растение.
-
Опустите помпу в ёмкость с водой.
- Подключите питание.
Восстановление прошивки Wi-Fi модуля
Mac OS
Скачай архив ESPTOOL_MAC.
Распакуй архив с программой для установки. При этом конечный путь к программе и файлу прошивки не должен содержать кириллических символов.
Открой терминал. Ты найдёшь его в
Finder
Программы
Служебные программы
Terminal
.
В терминале набери , нажми пробел и перенеси в окно терминала иконку папки с содержимым архива. Нажми .
Набери в терминале . Нажми .
Терминал запросит пароль — введи его и нажми .
Инструменты установлены. Осталось перепрошить модуль.
Узнай в Arduino IDE, к какому порту подключена твоя плата.
Набери в терминале команду для перепрошивки: python esptool.py —port ИМЯ_ПОРТА write_flash 0x00000 esp8266_AT_firmware.bin
Вместо «ИМЯ_ПОРТА» подставь порт из Arduino IDE (не забывая пропрямой слэш). Введи модуль в режим перепрошивки. Нажми в терминале.
После успешной прошивки модуль перезагрузится
Ты сможешь проверить его через Arduino IDE стандартными AT-командами, как в эксперименте «На старт, внимание, Wi-Fi!».
Windows
Подробную инструкцию по перепрошивке модуля Wi-Fi читай в .
- Скачай архив ESPTOOL_WIN.
- Распакуй архив с программой для установки. При этом конечный путь к программе и файлу прошивки не должен содержать кириллических символов.
- Запусти файл ESPFlashDownloadTool_v3.4.4.
- В появившемся окне выбери «ESP8266 DownloadTool».
- Укажи путь к файлу AT-прошивки «esp8266_AT_firmware.bin» (он лежит в том же архиве), отметь выбранный файл галочкой в чекбоксе напротив и укажи адрес 0х00, по которому будет записан файл в память модуля.
- Выбери СОМ порт, к которому подключён твой модуль, и установи Baud rate 115200.
- Настрой оставшиеся поля и чекбоксы:
- Переведи модуль в режим программирования.
- Теперь, когда модуль готов к прошивке, нажми кнопку «START» и дождись окончания процесса. Ура, модуль снова готов к работе!
Как собрать?
- Закрепите платформу Iskra JS на панели #структора «крепление Arduino 7×8 шипов» с помощью акриловых стоек. Стойки закрепите на панели винтами, сверху установите платформу и зафиксируйте гайками.
- Установите Motor Shield на плату Iskra JS.
- Установите «лицевую панель Arduino c microUSB-интерфейсом 4×6 шипов» и через неё подключите входящие в комплектацию помп «разъёмы-переходники на 2 провода» к Motor Shiled. Красный провод к плюсу, чёрный — к минусу.
- Установите Troyka Shield на бутерброд из плат Iskra JS и Motor Shield.
- Закрепите два модуля сенсора вибрации с помощью саморезов и гаек на боковых панелях #структора «7×7 шипа».
- Подключите модули сенсора вибрации к аналоговым пинам и Troyka Shield и через клеммник выведите провода «папа-папа» для дальнейшего подключения пьезо-дисков.
- Закрепите силовой ключ с помощью нейлоновых винтов к детали #структора (крепление Troyka 4×7 шипа), откусите бокорезами неиспользуемую часть и подключите к пину Troyka Shield.
-
Подготовьте провода для подключения колонки к Iskra JS через силовой ключ:
-
«Плюс» колонки подключите к пину
- «Минус» колонки — к «плюсу» силового ключа.
- Пин — к «минусу» силового ключа.
-
- Прикрепите обновлённые боковые панели («пластины 7×6 шипов») и заднюю панель («пластина 6×6 шипов») к основанию корпуса устройства («крепление Arduino 7×8 шипов»).
- Закрепите клеммник с помощью двухстороннего скотча к задней панели корпуса и подключите к нему выведенные ранее провода от модулей сенсоров вибрации и силового ключа.
- Возьмите кнопку (Troyka-модуль), прикрутите её к панели для крепления Troyka-модулей. из четырёх панелей конструктора (3×2 шипов) соорудите «башенку» и закрепите на будущей верхней панели корпуса («пластина 7×8 шипов»).
- Закрепите два светодиода «Пиранья» на панелях крепления Troyka-модулей, затем закрепите их по бокам верхней панели устройства.
- Подключите два светодиода «Пиранья» к и пину Troyka Shield, а кнопку (Troyka-модуль) — к пину Troyka Shield.
- Закончите сборку лицевой части корпуса с помощью реек #структора и пластины (2×6 шипов). Прикрепите верхнюю панель («пластина 7×8 шипов») к передней, задней и боковым стенкам корпуса.
- Отпаяйте от пьезо-диска короткие провода и замените их на провод длинной около 1–2 метров. Повторите это для второго датчика.
- Подключите пьезо-диски к модулям сенсора вибрации через установленный ранее клеммник.
- Припаяйте многожильный монтажный провод к выводам динамика.
- Соберите корпус для динамика из четырёх «мега пластин» #Структора и подключите его к клеммнику на задней части корпуса.
- Возьмите две «пивные башни», опустите в них погружные помпы, концы выходящих трубок проведите в противоположную «башню». Помпы будут откачивать жидкость из башен соперника.В итоге должна получите схема.
- Подключите помпы к Motor Shield через «разъём-переходник на 2 провода»
- Выпилите из листа фанеры два модуля «Troyka XXL» и покрасьте их белой краской.
- На задней части модуля «Troyka XXL» закрепите несколько кусков поролона и приклейте пьезо-диск. Повторите действие со вторым «Troyka XXL» и сенсором вибрации.
- Расположите все модули на расстоянии в 15–20 см друг от друга и подключите источник питания к устройству.
Теперь осталось залить любимый «лимонад» в пивные башни и можно играть.