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

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

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

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

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

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

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

Рисунок 6 Периферия контроллера DreamDuino.
Встроенные в контроллер DreamDuino периферийные элементы, следующие:
- Индикационный OLED экран размером 0,96 дюйма и разрешением 128х64 пикселя. Монохромный. Имеет аппаратно реализованную связь с вычислительным микроконтроллером по интерфейсу I2C.
- Пьезоизлучатель. Классический пьезоизлучатель для формирования звуков различной тональности. Расположен под дисплеем.
- Индикационный светодиод. Классический индикационный светодиод, для управления им штатными средствами среды Arduino IDE.
- Кнопки. 2 тактовых кнопки, доступные пользователю для опроса в своей управляющей программе.
- Микрофон. Классический электретный микрофон для реализации управления путем громкого звука (например, для счета хлопков).
- ИК датчики. 3 классических ИК датчика, выступающих как в роли встроенных датчиков линии, так и в роли датчиков расстояния. Позволяют реализовывать задачи класса следования по линии или определения препятствия\обрыва без подключения дополнительных устройств.
Помимо встроенных элементов, контроллер располагает четырьмя штыревыми разъемами для подключения периферийных модулей, совместимых с робототехническим набором DREAM II. На плате эти разъемы обозначены как A1 – А4. К данным разъемам могут быть подключены следующие модули:

IR Sensor (IRSS-10)
ИК датчик, способный выступать как в роли детектора контрастной линии, так и в роли измерителя расстояния.

Touch Sensor (TS-10)
Датчик касания, способный выступать как в роли кнопки, так и в роли датчика определения касания с препятствием.

Color Sensor (CS-10)
Датчик цвета. Возвращает значение цвета в RGB нотации.

Magnetic Sensor (MGSS-10)
Датчик магнитного поля. Способен определять наличие магнита в зоне детектирования.

Temperature Sensor (TPS-10)
Датчик температуры.

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

Geared Motor (GM-10A)
Двигатель постоянного тока.

Servo Motor (SM-01)
Сервомотор с обратной связью по положению.

Рисунок 7 Интерфейсы контроллера DreamDuino для подключения исполнительных устройств.
Здесь:
- два двухпиновых штыревых разъема для подключения двигателей постоянного тока. На плате обозначены как M1 и М2.
- два пятипиновых штыревых разъема для подключения сервоприводов. На плате обозначены как SA1 и SA2.
::: Внимание! При подключении сервомоторов проверяйте полярность подключения! :::
Аппаратные интерфейсы контроллера
Помимо интерфейсов для подключения базовых периферийных модулей, входящих в состав набора DREAM II, контроллер DreamDuino обладает выводами реализовывающими ряд интерфейсов (Рисунок 8):

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

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

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

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