Espruino Puck.js v1: руководство по использованию
Espruino Puck.js v1 — миниатюрная платформа для разработки со встроенным интерпретатором JavaScript.
Мозгом платы является модуль MDBT42Q с чипом Nordic nRF52840, который также обеспечивает беспроводную связь и прошивку по Bluetooth v5.0.
Ревизии модуля
Функции | 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 v1 по беспроводному протоколу Bluetooth добавьте и настройте в Google Chrome среду программирования Espruino Web IDE.
Если у вас на ПК отсутствует Bluetooh-модуль или вы сторонник проводной системы — используйте проводной способ коммуникации с платформой.
Проводное подключение
Так как на плате отсутствует USB, для коммуникации с компьютером нам понадобится собрать железо.
Что понадобится
Так как на плате отсутствует USB, для коммуникации с компьютером нам понадобится USB-UART преобразователь, а подробнее:
Схема устройства
Программная настройка
Для работы с платой Espruino Puck.js добавьте и настройте в Google Chrome среду программирования Espruino Web IDE.
Примеры работы
В качестве примера прошьём платформу Espruino Puck.js v1 скриптом, который каждую секунду будет по очереди включать встроенные светодиоды 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 v1 выполнена на модуле MDBT42Q, который включает в себя 32-битный микроконтроллер Nordic nRF52840 на архитектуре ARM Cortex-M4 с тактовой частотой 64 МГц, 512 КБ Flash-памяти и 64 КБ SRAM-памяти.
Чип Nordic nRF52840 так же обеспечивает связь Bluetooth v5.0 в диапазоне 2,4 ГГц и поддерживает энергосберегающий протокол Bluetooth Low Energy (BLE). Всё это позволяет прошивать и отлаживать платформу Puck.js v1 через Espruino Web IDE прямо по воздуху.
Магнитометр
На плате расположен магнитомер MAG3110, который можно использовать в роли датчика Холла или детектора металла и скрытой проводки.
Светодиодная индикация
Имя светодиода | Назначение |
---|---|
LED1 | Пользовательский светодиод красного цвета на D5 пине микроконтроллера. Используйте определение LED1 для работы со светодиодом. При задании значения высокого уровня светодиод включается, при низком – выключается. |
LED2 | Пользовательский светодиод зелёного цвета на D4 пине микроконтроллера. Используйте определение LED2 для работы со светодиодом. При задании значения высокого уровня светодиод включается, при низком – выключается. |
LED3 | Пользовательский светодиод синего цвета на D3 пине микроконтроллера. Используйте определение LED3 для работы со светодиодом. При задании значения высокого уровня светодиод включается, при низком – выключается. |
Инфракрасный светодиод
На плате расположен ИК-светодиод, который подключён анодом (+) к D25
пину, а катодом (−) к D26
пину микроконтроллера.
Дальность действия ИК-порта составляет около 1,5 метра. Если хотите увеличить дальность, снимите с платформы силиконовый бампер.
Пользовательская кнопка
Пользовательская кнопка подключённая к D0
цифровому пину микроконтроллера. Для работы в программе используйте определение BTN
. Кнопка пригодиться для создания и теста простых программ, без подключения дополнительных тактильных сенсоров.
Кнопка также может переводить плату в DFU-режим. Это позволит перепрошить или обновить интерпретатор JavaScript в микроконтроллер без дополнительного программатора. Для перевода в DFU-режим:
- Отключите питание от платформы.
- Зажмите кнопку BTN.
- Подключите питание к платформе и отпустите кнопку.
Гнездо для батарейки
На плате расположен отсек для батарейки CR2032, которая обеспечивает работу платформы в портативном режиме. В автономном варианте батарейка сможет протянуть и обеспечить питание платформы Puck.js v1 до 20 дней.
Контакты SWD-интерфейса
Колодки SWD предназначены для подключения программатора и отладчика ST-Link к плате Puck.js v1.
Распиновка
Пины питания
- 3V Выходной пин от с выходом 3 вольта от батарейки CR2032.
- GND Выводы земли.
Порты ввода/вывода
В отличие от большинства плат Arduino, родным напряжением Espruino Puck.js v1 является 3,3 В, а не 5 В. Выходы для логической единицы выдают 3,3 В, а в режиме входа ожидают принимать не более 3,3 В. Более высокое напряжение может повредить микроконтроллер!
- Пины общего назначения: 17 пинов:
D1
,D2
,D6
–D8
,D11
,D13
–D16
,D23
,D24
иD27
–D31
Логический уровень единицы — 3,3 В, нуля — 0 В. Максимальный ток выхода — 15 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно. - ШИМ: все пины ввода-вывода
Позволяет выводить аналоговые значения в виде ШИМ-сигнала. Разрядность ШИМ установлена в 12 бит. Платформа поддерживает 4 канала аппаратного ШИМ-сигнала, каждый последующий становиться программным. - АЦП: 5 пинов:
D2
иD28
–D31
Позволяет представить аналоговое напряжение в виде цифровом виде. Разрядность АЦП установлена в 12 бит. - NFC:
Для общения с картами общественного транспорта, смартфонами и планшетами, поддерживающими технологию Near Field Communication. Антенна уже встроенная в плату Puck.js и подключена к внутренним пинам модуля MQBT42Q.
Интерфейсы
Каждый пин ввода-вывода платформы поддерживает аппаратные интерфейсы для общения c платами расширения и сенсорами.
Интерфейс | Количество | Назначение |
---|---|---|
I²C | 1 | Используется для общения с периферией по параллельному интерфейсу «I²C». |
SPI | 1 | Для общения с периферией по последовательному интерфейсу «SPI». |
UART | 1 | Для общения с периферией по интерфейсу «UART». |
Принципиальная и монтажная схемы
Габаритный чертёж
Характеристики
- Модель: Espruino Puck.js v1
- Модуль: MDBT42Q с чипом nRF52832
- Ядро: 32-битный ARM Cortex M4
- Тактовая частота: 64 МГц
- Частотный диапазон связи: 2,4 ГГц
- Стандарт связи: Bluetooth v5.0 с поддержкой BLE
- Flash-память: 512 КБ
- SRAM-память: 64 КБ
- Контакты ввода-вывода:
- 17× GPIO (8 THT + 9 SMD)
- 5× ADC / Разрядность 12 бит
- 17× PWM / Разрядность 12 бит
- Аппаратные интерфейсы:
- 1× SPI
- 1× I²C
- 1× UART
- Габариты платы: 29×9 мм
- Габариты плаcтикового корпуса: 36×36×12,5 мм
Магнитометр
- Чип: MAG3110
- Интерфейс связи с микроконтроллером: I²C
- Адрес модуля: 0x0E
- Диапазон измерения магнитной индукции: ±4/±8/±12/±16 Гс
- Частота опроса магнитометра: 0,625–80 Гц