Espruino Puck.js v2.1: руководство по использованию

Espruino Puck.js v2.1 — миниатюрная платформа для разработки со встроенным интерпретатором JavaScript.

Мозгом платы является модуль MDBT42Q с чипом Nordic nRF52840, который также обеспечивает беспроводную связь и прошивку по Bluetooth v5.3.

Ревизии модуля

Функции Puck.js v1 Puck.js v2 Puck.js v2.1
GPIO THT 8 7 7
GPIO SMD 9 2 2
Магнитометр MAG3110 LIS3MDLTR MMC5603NJ
Акселерометр Нет LSM6DS3TR-C LSM6DS3TR-C
Гироскоп Нет LSM6DS3TR-C LSM6DS3TR-C
Датчик температуры nRF52 PCT2075TP PCT2075TP
Силовой выход Нет 1 1

Подключение и настройка

  1. Подключите модуль к Espruino Web IDE. Платформа поддерживает два типа подключения и отладки:

Включение модуля

Espruino Puck.js всегда находится в режиме готовности к коммуникации. Однако при первом запуске — необходимо подключить питание к модулю.

  1. Снимите силиконовый бампер с модуля и плату из пластикового кейса.
  2. Установите батарейку таблетку в модуль. Если батарейка таблетка уже в модуле: вытяните таблетку из батарейного отсека, снимите защитную плёнку и установите таблетку обратно в отсек.
  3. По финалу должен мигнуть красный светодиод. Это значит всё получилось и можно продолжать работу с модулем.

Беспроводное подключение

Для работы с платой Espruino Puck.js v2.1 по беспроводному протоколу Bluetooth добавьте и настройте в Google Chrome среду программирования Espruino Web IDE.

Если у вас на ПК отсутствует Bluetooh-модуль или вы сторонник проводной системы — используйте проводной способ коммуникации с платформой.

Проводное подключение

Так как на плате отсутствует USB, для коммуникации с компьютером нам понадобится собрать железо.

Что понадобится

Так как на плате отсутствует USB, для коммуникации с компьютером нам понадобится USB-UART преобразователь, а подробнее:

Схема устройства

Программная настройка

Для работы с платой Espruino Puck.js v2.1 добавьте и настройте в Google Chrome среду программирования Espruino Web IDE.

Примеры работы

В качестве примера прошьём платформу Espruino Puck.js v2.1 скриптом, который каждую секунду будет по очереди включать встроенные светодиоды LED1, LED2 и LED3.

example-running-fire.js
// создаём объекты таймеры для генерирования событий
var timerBlue = require('@amperka/timer')
  .create(1);
 
var timerGreen = require('@amperka/timer')
  .create(1);
 
var timerRed = require('@amperka/timer')
  .create(1);
 
var timerLedsOff = require('@amperka/timer')
  .create(1);
 
// подписываемся на событие-тик 
timerRed.on('tick', function() {
  timerGreen.stop();
  LED1.write(1);
  LED2.write(0);
  LED3.write(0);
  timerLedsOff.run();
});
 
// подписываемся на событие-тик
timerGreen.on('tick', function() {
  timerBlue.stop();
  LED1.write(0);
  LED2.write(1);
  LED3.write(0);
  timerRed.run();
});
 
// подписываемся на событие-тик
timerBlue.on('tick', function() {
  timerLedsOff.stop();
  LED1.write(0);
  LED2.write(0);
  LED3.write(1);
  timerGreen.run();
});
 
// подписываемся на событие-тик
timerLedsOff.on('tick', function() {
  LED1.write(0);
  LED2.write(0);
  LED3.write(0);
  timerBlue.run();
  timerRed.stop();
});
 
// запускаем таймер отключения всех светодиодов
timerLedsOff.run();

Элементы платы

Модуль MDBT42Q

Платформа Espruino Puck.js v2.1 выполнена на модуле MDBT42Q, который включает в себя 32-битный микроконтроллер Nordic nRF52840 на архитектуре ARM Cortex-M4 с тактовой частотой 64 МГц, 512 КБ Flash-памяти и 64 КБ SRAM-памяти.

Чип Nordic nRF52840 так же обеспечивает связь Bluetooth v5.3 в диапазоне 2,4 ГГц и поддерживает энергосберегающий протокол Bluetooth Low Energy (BLE). Всё это позволяет прошивать и отлаживать платформу Puck.js v2.1 через Espruino Web IDE прямо по воздуху.

Магнитометр

На плате расположен магнитометр MMC5603NJ, который можно использовать в роли датчика Холла или детектора металла и скрытой проводки.Примеры работы смотрите на сайте производителя

IMU-сенсор

IMU-сенсор на 6 степеней свободы включает в себя акселерометр и гироскоп компас. Сборка выполнена на чипе LSM6DS3TR-C по технологии SiP (англ. System-in-Package — система в корпусе), где акселерометр и гироскоп лежат методом бутерброда в пластиковом корпусе. Примеры работы смотрите на сайте производителя.

Светодиодная индикация

Имя светодиода Назначение
LED1 Пользовательский светодиод красного цвета на D5 пине микроконтроллера. Используйте определение LED1 для работы со светодиодом. При задании значения высокого уровня светодиод включается, при низком – выключается.
LED2 Пользовательский светодиод зелёного цвета на D4 пине микроконтроллера. Используйте определение LED2 для работы со светодиодом. При задании значения высокого уровня светодиод включается, при низком – выключается.
LED3 Пользовательский светодиод синего цвета на D3 пине микроконтроллера. Используйте определение LED3 для работы со светодиодом. При задании значения высокого уровня светодиод включается, при низком – выключается.

Инфракрасные светодиоды

На плате расположены два последовательно соединённых ИК-светодиода с дальностью свечения около 1,5 метра. Если хотите увеличить дальность, снимите с платформы силиконовый бампер. Примеры работы смотрите на сайте производителя.

Пользовательская кнопка

Пользовательская кнопка подключённая к D0 цифровому пину микроконтроллера. Для работы в программе используйте определение BTN. Кнопка пригодиться для создания и теста простых программ, без подключения дополнительных тактильных сенсоров.

Кнопка также может переводить плату в DFU-режим. Это позволит перепрошить или обновить интерпретатор JavaScript в микроконтроллер без дополнительного программатора. Для перевода в DFU-режим:

  • Отключите питание от платформы, т.е. вытащите батарейку.
  • Зажмите кнопку BTN.
  • Подключите питание к платформе и отпустите кнопку.

Гнездо для батарейки

На плате расположен отсек для батарейки CR2032, которая обеспечивает работу платформы в портативном режиме. В автономном варианте батарейка сможет протянуть и обеспечить питание платформы Puck.js v2.1 до 20 дней.

Распиновка

Пины питания

  • 3V Выходной пин от с выходом 3 вольта от батарейки CR2032.
  • GND Выводы земли.

Порты ввода/вывода

В отличие от большинства плат Arduino, родным напряжением Espruino Puck.js v2.1 является 3,3 В, а не 5 В. Выходы для логической единицы выдают 3,3 В, а в режиме входа ожидают принимать не более 3,3 В. Более высокое напряжение может повредить микроконтроллер!

  • Пины общего назначения: 17 пинов: D1, D2, D11, D23, D24 и D27D31
    Логический уровень единицы — 3,3 В, нуля — 0 В.
  • ШИМ: все пины ввода-вывода
    Позволяет выводить аналоговое напряжение в виде ШИМ-сигнала из цифровых значений. Разрядность ШИМ установлена в 12 бит. Платформа поддерживает 4 канала аппаратного ШИМ-сигнала, каждый последующий становиться программным.
  • АЦП: 5 пинов: D2 и D28D31
    Позволяет представить напряжение в цифровом виде. Диапазон входного напряжения от 0 до 3,3 В, при подаче большего напряжения микроконтроллер может выйти из строя. Разрядность АЦП установлена в 12 бит.
  • NFC:
    Для общения с картами общественного транспорта, смартфонами и планшетами, поддерживающими технологию Near Field Communication. Антенна уже встроенная в плату Puck.js v2.1 и подключена к внутренним пинам модуля MQBT42Q.

Интерфейсы

Каждый пин ввода-вывода платформы поддерживает аппаратные интерфейсы для общения c платами расширения и сенсорами.

Интерфейс Количество Назначение
I²C 1 Используется для общения с периферией по параллельному интерфейсу «I²C».
SPI 1 Для общения с периферией по последовательному интерфейсу «SPI».
UART 1 Для общения с периферией по интерфейсу «UART».

Принципиальная схема

Габаритный чертёж

Характеристики

  • Модель: Espruino Puck.js v2.1
  • Модуль: MDBT42Q с чипом nRF52832
  • Ядро: 32-битный ARM Cortex M4
  • Тактовая частота: 64 МГц
  • Частотный диапазон связи: 2,4 ГГц
  • Стандарт связи: Bluetooth v5.3 с поддержкой BLE
  • Flash-память: 512 КБ
  • SRAM-память: 64 КБ
  • Контакты ввода-вывода:
    • 9× GPIO (7 THT + 2 SMD)
    • 5× ADC / Разрядность 12 бит
    • 17× PWM / Разрядность 12 бит
  • Аппаратные интерфейсы:
    • 1× SPI
    • 1× I²C
    • 1× UART
  • Встроенная периферия:
    • ИК-приёмопередатчик
    • Термометр
    • Гироскоп/акселерометр
    • Магнитометр
  • Габариты платы: 29×9 мм
  • Габариты плаcтикового корпуса: 36×36×12,5 мм

Термометр

  • Чип: NXP PCT2075TP
  • Программный интерфейс: I²C
  • Диапазон измерения температуры: −55…+125 °С
  • Точность измерений:
    • ±1 °С в диапазоне −25…+100 °С
    • ±2 °С в диапазонах −55…−25 °С и +100…+125 °С

Магнитометр

  • Чип: MEMSIC MMC5603NJ
  • Программный интерфейс: I²C
  • Диапазон измерения магнитной индукции: ±30 Гс
  • Максимальная чувствительность: 0,625×10⁻⁴ Гс
  • Частота опроса магнитометра: 0,625–80 Гц

IMU-сенсор

  • Чип: STM LSM6DS3TR-C
  • Программный интерфейс: I²C
  • Встроенные датчики: акселерометр, гироскоп
  • Акселерометр
    • Диапазон измерения ускорения: ±2/±4/±8/±16g
    • Частота опроса: 1,6–6664 Гц
  • Гироскоп
    • Диапазон измерения поворота: ±125/±250/±500/±1000/±2000 град./с
    • Частота опроса гироскопа: 12,5–6664 Гц

Ресурсы

Полезные статьи

Документация