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 |
Подключение и настройка
- Подключите модуль к Espruino Web IDE. Платформа поддерживает два типа подключения и отладки:
Включение модуля
Espruino Puck.js всегда находится в режиме готовности к коммуникации. Однако при первом запуске — необходимо подключить питание к модулю.
- Снимите силиконовый бампер с модуля и плату из пластикового кейса.
- Установите батарейку таблетку в модуль. Если батарейка таблетка уже в модуле: вытяните таблетку из батарейного отсека, снимите защитную плёнку и установите таблетку обратно в отсек.
- По финалу должен мигнуть красный светодиод. Это значит всё получилось и можно продолжать работу с модулем.
Беспроводное подключение
Для работы с платой 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
иD27
–D31
Логический уровень единицы — 3,3 В, нуля — 0 В. - ШИМ: все пины ввода-вывода
Позволяет выводить аналоговое напряжение в виде ШИМ-сигнала из цифровых значений. Разрядность ШИМ установлена в 12 бит. Платформа поддерживает 4 канала аппаратного ШИМ-сигнала, каждый последующий становиться программным. - АЦП: 5 пинов:
D2
иD28
–D31
Позволяет представить напряжение в цифровом виде. Диапазон входного напряжения от 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 Гц