Arduino Esplora: плата-геймпад со встроенными датчиками

Arduino Esplora: плата-геймпад со встроенными датчиками

Arduino Esplora на базе Leonardo несёт джойстик, кнопки и набор датчиков. Характеристики платы, её библиотека и два примера: RGB-светодиод и секундомер на TFT.

Чем Esplora отличается от других Arduino

Среди плат Arduino есть модели, созданные под определённые задачи, и Esplora — одна из самых необычных. Она спроектирована на основе Arduino Leonardo и выделяется тем, что датчики и органы управления уже установлены и готовы к работе. По форме плата напоминает геймпад: слева аналоговый джойстик, справа четыре кнопки.

Плата Arduino Esplora

Как и в Leonardo, здесь стоит AVR-микроконтроллер ATmega32U4 с кварцевым резонатором на 16 МГц. Компьютер может распознавать плату как обычную клавиатуру или мышь, а библиотеки Keyboard и Mouse позволяют запрограммировать управление от её имени.

Встроенные средства ввода и вывода

  • аналоговый джойстик с кнопкой и четыре отдельные кнопки;
  • линейный потенциометр;
  • микрофон;
  • датчики освещённости и температуры;
  • трёхосевой акселерометр;
  • зуммер, генерирующий звуковой сигнал прямоугольной формы;
  • RGB-светодиод;
  • два входа и два выхода Tinkerkit с 3-пиновыми разъёмами для модулей датчиков и приводов;
  • разъём для TFT-дисплея, SD-карты или других устройств с протоколом SPI.
Расположение датчиков и органов управления на Arduino Esplora
МикроконтроллерATmega32U4
Питание5 В
Flash-память32 кБ, из них 4 кБ под загрузчик
ОЗУ2,5 кБ
Тактовая частота16 МГц
Габариты164х60 мм
Вес53 г

Библиотека Esplora и готовые примеры

Для платы существует специальная библиотека с высокоуровневыми методами. Она возвращает уже обработанные данные — например, температуру сразу в градусах Цельсия или Фаренгейта — и упрощает обращение к устройствам вывода, таким как RGB-светодиод.

Вместе с библиотекой идут примеры, по которым удобно знакомиться с платой:

  • EsploraBlink — мерцание RGB-светодиода;
  • EsploraAccelerometer — чтение показаний акселерометра;
  • EsploraJoystickMouse — управление курсором компьютера с джойстика;
  • EsploraLedShow и EsploraLedShow2 — световые эффекты с участием джойстика, слайдера, микрофона и датчика освещённости;
  • EsploraLightCalibrator — определение освещённости;
  • EsploraMusic — воспроизведение мелодии;
  • EsploraSoundSensor — обработка сигнала микрофона;
  • EsploraTemperatureSensor — расчёт температуры по показаниям датчика.
Список примеров библиотеки Esplora в Arduino IDE

Пример: цвет светодиода по кнопкам

Простой скетч управляет каналами RGB-светодиода тремя кнопками: SWITCH2 включает красный, SWITCH3 — зелёный, SWITCH4 — синий. Пока кнопка не нажата, соответствующий цвет погашен.

Библиотека подключается строкой #include <Esplora.h>. В скетче объявлены три целые переменные red, green и blue. В цикле loop() каждая кнопка опрашивается функцией Esplora.readButton(); нажатой кнопке в итоговом листинге соответствует уровень LOW. Переменная получает значение 255, если кнопка нажата, и 0 в противном случае, после чего все три значения передаются вызовом Esplora.writeRGB(red, green, blue).

TFT-дисплей и секундомер

На лицевой стороне платы есть разъёмы для TFT-дисплея с диагональю 1,8 дюйма и слотом MicroSD. Дисплей вставляют так, чтобы синяя надпись SD Card находилась возле порта USB.

TFT-дисплей для Arduino Esplora

С модулем работает библиотека TFT, входящая в Arduino IDE. Она создана на основе Adafruit GFX и Adafruit ST7735: первая отвечает за отрисовку графики, вторая — за взаимодействие с экраном. Для Esplora используется специальный класс EsploraTFT. Базовый шрифт имеет размер символа 5х8 пикселей, его можно увеличить до 10x16, 15x24 или 20x32.

В качестве примера собран секундомер. Скетч подключает TFT.h, SPI.h и Esplora.h. В setup() экран инициализируется вызовом EsploraTFT.begin(), заливается чёрным, на него синим цветом выводится постоянная надпись, а затем размер шрифта увеличивается функцией setTextSize(3) — им отображаются секунды.

В основном цикле опрашиваются три кнопки: SWITCH_1 запускает отсчёт, SWITCH_3 останавливает его, SWITCH_4 сбрасывает значение. Пока секундомер запущен, программа сравнивает millis() с запомненной отметкой и каждые 1000 мс прибавляет к счётчику единицу. Отдельная функция обновляет экран: старое значение закрашивается цветом фона, число секунд преобразуется в строку и выводится белым. События кнопок дублируются в последовательный порт на скорости 9600.

Если плата не определяется

Когда компьютер не видит Esplora, устанавливают драйвер платы Arduino. Если не загружается скетч, проверяют исправность кабеля USB.

← Все статьи