Espruino Puck.js: распиновка, схема подключения и программирование
Espruino Puck.js — миниатюрная платформа для разработки со встроенным интерпретатором JavaScript.
Мозгом платы является модуль MDBT42Q с чипом Nordic nRF52840, который также обеспечивает беспроводную связь и прошивку по Bluetooth v5.0.
Подключение и настройка
Платформа поддерживает два типа подключения и отладки:
Беспроводное подключение
Если у вас на ПК отсутствует Bluetooh-модуль или вы сторонник проводной системы — используйте проводной способ коммуникации с платформой.
Шаг 1
Для старта вклюсите плату Espruino Puck.js.
- Снимите силиконовый бампер с модуля.
- Вытащите плату из пластикового кейса.
- Вытяните батарейку из батарейного отсека, снимите защитную плёнку и установите батарейку обратно в отсек.
- По финалу должен мигнуть крансый светодиод.
Шаг 2
Для работы с платой Espruino Puck.js по беспроводному протоколу Bluetooth добавьте и настройте в Google Chrome среду программирования Espruino Web IDE.
Проводное подключение
Шаг 1
Так как на плате отсутствует USB, для коммуникации с компьютером нам понадобится USB-UART преобразователь, а подробнее:
Шаг 2
Для работы с платой Espruino Puck.js добавьте и настройте в Google Chrome среду программирования Espruino Web IDE.
Примеры работы
В качестве примера прошьём платформу Espruino Puck.js скриптом, который каждую секунду будет по очереди включать встроенные светодиоды 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 выполнена на модуле 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 через 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 до 20 дней.
Контакты SWD-интерфейса
Колодки SWD предназначены для подключения программатора и отладчика ST-Link к плате Puck.js.
Распиновка
Пины питания
- 3V Выходной пин от с выходом 3 вольта от батарейки CR2032.
- GND Выводы земли.
Порты ввода/вывода
В отличие от большинства плат Arduino, родным напряжением Espruino Puck.js является 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.
Интерфейсы
Каждый пин ввода-вывода платформы поддерживает аппаратные интерфейсы.
Интерфейс | Количество | Назначение |
---|---|---|
I²C | 1 | Используется для общения с периферией по параллельному интерфейсу «I²C». |
SPI | 1 | Для общения с периферией по последовательному интерфейсу «SPI». |
UART/Serial | 1 | Для общения с периферией по интерфейсу «UART». |
Принципиальная и монтажная схемы
Габаритный чертёж
Характеристики
- Модуль: MDBT42Q с чипом nRF52832
- Ядро: 32-битный ARM Cortex M4
- Частотный диапазон связи: 2,4 ГГц
- Стандарт связи: Bluetooth v5.0 с поддержкой BLE
- Тактовая частота: 64 МГц
- Flash-память: 512 КБ
- SRAM-память: 64 КБ
- Пинов ввода-вывода всего: 17 (8 THT + 9 SMD)
- Напряжение логических уровней: 3,3 В
- Пины с АЦП: 5
- Разрядность АЦП: 12 бит
- Пины с ШИМ: 17
- Разрядность ШИМ: 12 бит
- Аппаратных интерфейсов SPI: 1
- Аппаратных интерфейсов I²C / TWI: 1
- Аппаратных интерфейсов UART / Serial: 1
- Максимальный ток с пина или на пин: 15 мА
- Габариты платы: 29×9 мм
- Габариты плаcтикового корпуса: 36×12,5 мм
Магнитометр
- Чип: MAG3110
- Интерфейс связи с микроконтроллером: I²C
- Адрес модуля: 0x0E
- Диапазон измерения магнитной индукции: ±4/±8/±12/±16 Гс
- Частота опроса магнитометра: 0,625–80 Гц