Skip to content

Программируемый контроллер DreamDuino

Обзор контроллера DreamDuino

Контроллер DreamDuino представляет собой Arduino-подобную вычислительную платформу, рассчитанную на программирование с помощью текстовой среды разработки Arduino IDE. В основе данной платформы лежит микроконтроллер семейства AVR, что позволяет легко интегрировать данный модуль в семейство плат Arduino. Внешне контроллер DreamDuino является отличным от привычного форм-фактора Arduino UNO или MEGA плат. По этой же причине с данным контроллером не предполагается использование классических плат расширения – шилдов. Такой подход связан с необходимостью удовлетворить как конструктивную совместимость с пластиковыми элементами конструктора DREAM II, так и электрическую совместимость с базовыми электронными модулями, входящими в состав набора. Для расширения функционала набора в контроллер встроены ИК-датчики и экран для вывода данных. Внешний вид контроллера представлен на рисунке 1.

alt text

Рисунок 1 Внешний вид контроллера DreamDuino. Вид спереди и сзади.

Питание контроллера DreamDuino

Для организации питания контроллера DreamDuino существует несколько способов:

  • Подача питания через разъем microUSB. Однако, питание через microUSB не расходится по всей плате. При подаче питания таким способом не будут работать разъемы, к которым можно подключать силовые устройства (двигатели постоянного тока и сервоприводы).
  • Подача питания через клеммник. В данном случае через расположенный на плате клеммник можно подать питание от внешнего источника в диапазоне от 7В до 13В. Данный способ рекомендуется использовать в случае подключения мощных сервоприводов – DYNAMIXEL, которые рекомендуется питать напряжением от 9 до 12В.
  • Подача питания от штатных аккумуляторов, входящих в состав набора DREAM II. Контроллер DreamDuino может быть запитан как от одного штатного аккумулятора на 3.7В , так и сразу от двух. Это сделано для возможности подачи большего напряжения в цепи, например, для запитывания сервоприводов DYNAMIXEL. Элементы, ответственные за организацию питания выделены на рисунке 2:

alt text

Рисунок 2 Элементы, ответственные за организацию системы питания.

Для выбора источника питания необходимо использовать перемычку – установить джампер в нужную позицию на блоке штырей 2х3:

alt text

Рисунок 3 При джампере, установленном в данную позицию, питание будет осуществляться от одного штатного аккумулятора конструктора DREAM II

alt text

Рисунок 4 При джампере, установленном в данную позицию, питание будет осуществляться от двух штатных аккумуляторов конструктора DREAM II

alt text

Рисунок 5 При джампере, установленном в данную позицию, питание будет осуществляться от внешнего источника питания, подключенного к клеммнику Для подачи питания на цепи контроллера необходимо перевести движковый переключатель из положения OFF в положение ON.

Периферийные устройства контроллера

При построении различных поведенческих алгоритмов для объекта управления необходимо иметь набор периферийных (вспомогательных) модулей, с помощью которых является возможным получение данных об окружающей объект управления среде\пространства и становится возможным сообщать о своем состоянии окружающим. Такие модули могут быть как встроенные в контроллер, так и подключаемые к нему. В случае контроллера DreamDuino, элементы, отвечающие за взаимодействие с окружающим миром, показаны на рисунке 6.

alt text

Рисунок 6 Периферия контроллера DreamDuino.

Встроенные в контроллер DreamDuino периферийные элементы, следующие:

  • Индикационный OLED экран размером 0,96 дюйма и разрешением 128х64 пикселя. Монохромный. Имеет аппаратно реализованную связь с вычислительным микроконтроллером по интерфейсу I2C.
  • Пьезоизлучатель. Классический пьезоизлучатель для формирования звуков различной тональности. Расположен под дисплеем.
  • Индикационный светодиод. Классический индикационный светодиод, для управления им штатными средствами среды Arduino IDE.
  • Кнопки. 2 тактовых кнопки, доступные пользователю для опроса в своей управляющей программе.
  • Микрофон. Классический электретный микрофон для реализации управления путем громкого звука (например, для счета хлопков).
  • ИК датчики. 3 классических ИК датчика, выступающих как в роли встроенных датчиков линии, так и в роли датчиков расстояния. Позволяют реализовывать задачи класса следования по линии или определения препятствия\обрыва без подключения дополнительных устройств.

Помимо встроенных элементов, контроллер располагает четырьмя штыревыми разъемами для подключения периферийных модулей, совместимых с робототехническим набором DREAM II. На плате эти разъемы обозначены как A1 – А4. К данным разъемам могут быть подключены следующие модули:

alt text

IR Sensor (IRSS-10)

ИК датчик, способный выступать как в роли детектора контрастной линии, так и в роли измерителя расстояния.

alt text

Touch Sensor (TS-10)

Датчик касания, способный выступать как в роли кнопки, так и в роли датчика определения касания с препятствием.

alt text

Color Sensor (CS-10)

Датчик цвета. Возвращает значение цвета в RGB нотации.

alt text

Magnetic Sensor (MGSS-10)

Датчик магнитного поля. Способен определять наличие магнита в зоне детектирования.

alt text

Temperature Sensor (TPS-10)

Датчик температуры.

alt text

LED Module (LM-10)

Светодиодный модуль, которым можно управлять, включая желтый или синий цвет свечения.

Исполнительные устройства контроллера

В качестве исполнительных механизмов в наборах DREAM II выступают двигатели постоянного тока и сервоприводы с контролем положения. Контроллер DreamDuino позволяет подключать к себе и управлять двумя двигателями постоянного тока, которые подключаются с помощью двухпроводного интерфейса и двумя сервоприводами, подключаемые пятипроводным интерфейсом (Рисунок 7):

alt text

Geared Motor (GM-10A)

Двигатель постоянного тока.

alt text

Servo Motor (SM-01)

Сервомотор с обратной связью по положению.

alt text

Рисунок 7 Интерфейсы контроллера DreamDuino для подключения исполнительных устройств.

Здесь:

  • два двухпиновых штыревых разъема для подключения двигателей постоянного тока. На плате обозначены как M1 и М2.
  • два пятипиновых штыревых разъема для подключения сервоприводов. На плате обозначены как SA1 и SA2.

::: Внимание! При подключении сервомоторов проверяйте полярность подключения! :::

Аппаратные интерфейсы контроллера

Помимо интерфейсов для подключения базовых периферийных модулей, входящих в состав набора DREAM II, контроллер DreamDuino обладает выводами реализовывающими ряд интерфейсов (Рисунок 8):

alt text

Рисунок 8 Выводы, реализовывающие аппаратные интерфейсы контроллера

Здесь выделено следующее:

  • четырехвыводной штыревой разъем интерфейса I2C. На плате обозначен как I2C.
  • четырехвыводной штыревой разъем интерфейса UART. На плате обозначен как UART.
  • штыревой разъем интерфейса UART, содержит линии UART, расчитан для подключения штатных модулей беспроводной связи. На плате обозначен как BT\IR. К данному разъему могут быть подключены следующие модули:

alt text

IR Receiver

Модуль приемника ИК сигнала от пульта дистанционного управления.

alt text

BT-410 либо BT-210

Модуль беспроводной связи по протоколу Bluetooth.

Поскольку разъем UART использует те же самые линии, что и штыревой разъем, то для выбора режима работы необходимо установить, либо снять перемычку (джампер) на линиях, обозначеных как BT-UART (Рисунок 9). Если перемычка установлена, то интерфейс активен, и к белому разъему может быть подключен Bluetooth – модуль. Обращаться к нему можно как к аппаратному UART через Serial1. Так же, в этом случае будет функционировать 1-Wire интерфейс. Интерфейс может работать не стабильно (могут теряться пакеты), поскольку физически одна линия будет занята двумя приложениями. Если перемычка убрана, то 1-Wire интерфейс начинает функционировать полноценно и стабильно, но для работы с UART необходимо создавать программный UART. Для этого необходимо скоммутировать TX линию, которая заведена на 1й пин, и RX линию, которая формируется 7ым пином.

alt text

Рисунок 9 Джампер выбора вывода интерфейса UART

  • Шестивыводной штыревой разъем, содержащий интерфейс SPI. На плате обозначен как SPI.
  • набор из трех разъемов (MOLEX, JST и MOLEX mini), содержащих 1-Wire TTL интерфейс. Служит для подключения различных сетевых устройств, обменивающихся данными по протоколу Dynamixel.