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 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.
// создаём объекты таймеры для генерирования событий 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();
Платформа 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-сенсор на 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 В. Более высокое напряжение может повредить микроконтроллер!
D1
, D2
, D11
, D23
, D24
и D27
–D31
D2
и D28
–D31
Каждый пин ввода-вывода платформы поддерживает аппаратные интерфейсы для общения c платами расширения и сенсорами.
Интерфейс | Количество | Назначение |
---|---|---|
I²C | 1 | Используется для общения с периферией по параллельному интерфейсу «I²C». |
SPI | 1 | Для общения с периферией по последовательному интерфейсу «SPI». |
UART | 1 | Для общения с периферией по интерфейсу «UART». |