Содержание

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-режим:

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

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

Распиновка

Пины питания

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

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

Интерфейсы

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

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

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

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

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

Термометр

Магнитометр

IMU-сенсор

Ресурсы

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

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