Найти в Дзене

SPBot - лучшее решение для робота (и не только) на базе Arduino IDE

Ранее я уже писал о плате mCore от компании MakeBlock, которую долгое время мы считали лучшим решением для проектов на основе Arduino UNO (чисто наше мнение, не навязываем))). И тому причиной были не только надежность и продуманность платы, но и поддержка основной блочной среды программирования mBlock - уникально удобной для использования с ребятами 3-8 классов. Ну а с расширением Advanced Arduino Extention, созданным нашим коллегой по "Лаборатории проектов 169", Александром Григорьевым, стало возможным создавать в этой среде и проекты профессионального уровня. Идея создать "свой" контроллер появилась у партнера - издательства БХВ, когда создавалась наша книга Проектов по робототехнике. Книга реально уникальная, содержит крутые проекты, которые были апробированы на наших занятиях. Продвинутые проекты по робототехнике требовали хорошего железа и мы воспользовались уже привычным mCore. Но и его пришлось дорабатывать. Пришлось допаять один контакт (сами площадки на mCore уже предусмотрен
Оглавление
Рис.1 SPBot и подключаемые компоненты.
Рис.1 SPBot и подключаемые компоненты.

Ранее я уже писал о плате mCore от компании MakeBlock, которую долгое время мы считали лучшим решением для проектов на основе Arduino UNO (чисто наше мнение, не навязываем))). И тому причиной были не только надежность и продуманность платы, но и поддержка основной блочной среды программирования mBlock - уникально удобной для использования с ребятами 3-8 классов. Ну а с расширением Advanced Arduino Extention, созданным нашим коллегой по "Лаборатории проектов 169", Александром Григорьевым, стало возможным создавать в этой среде и проекты профессионального уровня.

Идея создания SPBot

Идея создать "свой" контроллер появилась у партнера - издательства БХВ, когда создавалась наша книга Проектов по робототехнике.

Рис.2
Рис.2

Книга реально уникальная, содержит крутые проекты, которые были апробированы на наших занятиях. Продвинутые проекты по робототехнике требовали хорошего железа и мы воспользовались уже привычным mCore. Но и его пришлось дорабатывать. Пришлось допаять один контакт (сами площадки на mCore уже предусмотрены), иначе не получалось поставить 3 датчика линии, а они нужны были для проектов. В таком варианте все проекты работали. Но, т.к. мы знали о готовящемся закрытии производства mCore, стали искать аналоги, которые не нарушали бы совместимость с проектами из книги. Нашли. Попробовали.... Ну что могу сказать... mCore - был очень хорош, а аналоги так и не смогли((( Выявлялись проблемы с питанием, т.е. при подключении пары потребителей уже выявлялись глюки, на части плат просто бракованными оказывались светодиоды или другие электронные части... В общем, пришлось отказаться от идеи.

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

Так появился SPBot. Он полностью повторяет функционал mCore, совместим ссо средами mBlock и при этом лишен недостатков, выявленных годами применения mCore в кружках. При этом никто не мешает программировать плату и в привычной текстовой среде Arduino IDE.

Отличия SPBot и mCore

Рис.3
Рис.3

Здесь отражены только "внешние" отличия, видно увеличенное у SPBot количество портов Dupont 1x3, которых нам так не хватало в проектах, добавление еще одного порта ИК, смена разъема на Type-C. Но в глубине изменений намного больше. Мощная схема питания, дополнительные специализированные разъемы, возможность с помощью джампера добавлять неиспользуемый порт для работы в проекте и т.д.

SPBot. Основные компоненты, разъемы, джамперы

В дополнение к возможностям Arduino Uno R3 на плате SPBot интегрированы дополнительные устройства: драйверы двигателей TB6612FNG и разъемы для подключения двух редукторных двигателей 3-6 В., датчик освещенности QT523C-EE1, два адресных RGB-светодиода WS2812B, два ИК-приемника TSOP38238, ИК-передатчик TSAL6400, зуммер.

На рисунках 4 и 5 показано размещение электронных компонентов и разъемов на плате SPBot

Рис. 4 Размещение электронных устройств ввода/вывода на плате SPBot
Рис. 4 Размещение электронных устройств ввода/вывода на плате SPBot

На рисунке 4 отметим наличие кнопки управления (используется порт А7). Кнопка позволяет выполнять управляющие действия. Пример ситуации: робот при выполнении спортивной дисциплины. Кнопкой запускается выполнение юстировки датчиков. Вторичное нажатие – робот готов к прохождению дистанции и т.д.

Видны и отличия от платы mCore, плата SPBot оснащена инфракрасными приемниками и спереди, и сзади (у mCore – один). При работе с ИК-пультом управления роботы на основе mCore показывали нестабильность при развороте робота на 180 градусов от оператора. Добавление второго ИК-приемника убрало эту проблему и обеспечило стабильность связи на максимальных расстояниях робота от оператора.

Рис. 5 Размещение разъемов на плате SPBot
Рис. 5 Размещение разъемов на плате SPBot

Сразу пройдемся и по отличиям от mCore на рисунке 5. Первое, что бросается в глаза – на плате SPBot интегрированы 2 разъема Dupont 1x8 ("мама"). Один из них используется для подключения модуля гироскопа и других устройств I2C. Второй для подключения устройств SPI (например, матрицы 8x8 c драйвером дисплея MAX7219). При этом напряжение Vin поступает напрямую от источника питания, т. к. светодиодная матрица потребляет до 500 мА. Кроме того, на втором разъеме расположены контакты SDA и SCL для подключения устройства I2C, для которых также требуется питание Vin, например, ЖК-дисплея с модулем I2C(рис.6).

Рис.6 Назначение контактов специализированных разъемов #1 и #2 платы SPBot
Рис.6 Назначение контактов специализированных разъемов #1 и #2 платы SPBot

На mCore аналога такого разъема нет, а возможность выводить информацию на матрицу 8х8 и подключать устройства по I2C существенно расширяет возможности использования платы.

Следующее важное отличие – присутствует выделенный порт для подключения серводвигателя с питанием Vin (рис. 5,7, обозначен цифрой 5). Этого порта очень не хватало на mCore. Серводвигатель очень важный компонент мобильного робота и его подключение на SPBot сделано надежным и простым. При этом трехпиновый разъем большинства доступных серводвигателей просто вставляется в соответствующий разъем на плате.

Цифрами 1-8 на рисунках 5 и 7 обозначены восемь дополнительных GVS разъемов Dupont 3x1 ("папа") для подключения внешних устройств с контактами GVS. Это так же преимущество платы SPBot. Аналогичные разъемы имеются на Arduino Uno Sensor Shield 5.0. Они упрощают процесс макетирования.

Назначение контактов разъемов GVS (Ground-Vcc-Signal) показано на рис. 7.

Рис.7 Назначение контактов разъема GVS
Рис.7 Назначение контактов разъема GVS

Эти разъемы удобны для подключения датчиков и модулей, которые также имеют расположение контактов GVS. Пример таких датчиков приведен на рис. 2.42.

Рис.8 Датчики GVS
Рис.8 Датчики GVS

Для подключения подобных датчиков понадобятся кабели с разъемами Dupont "мама"-"мама".

В SPBot решена и еще одна проблема, обнаруженная при эксплуатации mCore. Периодически при сборке проектов мы испытывали нехватку свободных портов. В mCore порты D2 и D3 были заняты под ИК-приемник и ИК-передатчик. Но ведь эти устройства нужны не всегда! В SPBot эти пины можно освободить с помощью специальных джамперов и использовать для других целей. По умолчанию джамперы замыкают контакты D2 и D3. Убрав джамперы, вы освобождаете на плате контакты D2 и D3, которые можете использовать по своему усмотрению (рис. 2.43).

Рис.9 Джамперы для включения/отключения ИК-приемника и ИК-передатчика на плате SPBot
Рис.9 Джамперы для включения/отключения ИК-приемника и ИК-передатчика на плате SPBot

Используя разъемы RJ25 на плате SPBot можно быстро и надежно подключить внешние устройства к плате с помощью кабелей RJ25 6P6C (шестиместный-шестиконтактный). Это особенно удобно при проведении занятий в школах и кружках, чтобы не тратить время на коммутацию устройств и предотвратить повреждение платы в случае ошибок при подключении.

Примечание: обозначение 6P6C означает, что контакты на этих розетках/вилках имеют 6 позиций, в которых размещены 6 позолоченных контактов. Эти разъемы предназначены для использования с многожильным плоским кабелем (рис. 10,11).

Рис. 10 Разъемы RJ25 ("мама") (слева)
Рис. 10 Разъемы RJ25 ("мама") (слева)
Рис.11 RJ25 Схема сборки, обжимки
Рис.11 RJ25 Схема сборки, обжимки

В зависимости от контактов на внешних устройствах можно использовать либо кабель типа RJ25–RJ25, либо RJ25-Dupont.

Рис. 12. Варианты кабелей
Рис. 12. Варианты кабелей

Назначение контактов разъемов RJ25 приведено на рис. 13

Рис.13 Назначение контактов разъема RJ25
Рис.13 Назначение контактов разъема RJ25

Разъем ICSP типа Dupont 3x2 ("папа") для подключения внешнего программатора. Предназначен для подключения внешнего программатора (например, UDBasp), с помощью которого можно записать загрузчик и скетчи в микроконтроллер ATMerga328 напрямую с ПК (рис. 14).

Рис. 14 Назначение контактов  разъема ICSP
Рис. 14 Назначение контактов разъема ICSP

На плате SPBot установлен современный разъем Type-C для загрузки скетчей через порт USB персонального компьютера. Это не настолько принципиальное отличие для плат на основе Arduino (в mCore использует USB-B), но Type-C обеспечивает более стабильное соединение и меньше подвержен разбалтыванию, обеспечивая стабильность связи.

SPBot. Питание платы

Плата включается с помощью ползункового выключателя. При этом загорается красный светодиодный индикатор питания электронных компонентов, расположенных на плате (PWR, рис. 15).

Для платы предусмотрено три варианта питания:

1. Через кабель USB.

2. От аккумулятора 18650.

3. От аккумуляторов (батарей) AA или внешнего сетевого блока 5 В.

Рис.15 Варианты питания платы SPBot
Рис.15 Варианты питания платы SPBot

Плата SPBot оборудована разъемом USB Type-C. При подключении платы к порту USB ПК напряжение питания (VIN) составляет 5 В, а ток ~500 мA (при подключении к USB 2.0) и ~900 мА (при подключении к USB 3.0). Поэтому такой тип питания можно использовать при выполнении простых экспериментов с устройствами, интегрированными на плате, и при подключении к плате датчиков и модулей, которые не потребляют большой ток. При мощных нагрузках (выше 500-600 мА) микроконтроллер перезапустится, так как напряжение упадет ниже критического порога и сработает защита порта USB компьютера от высокого потребления тока компонентами схемы и от случайного короткого замыкания.

Ток потребления различных устройств:

  • Датчики/модули ~ 10-30 мА
  • Адресные RGB-светодиоды WS2812: ~15 мА
  • Зуммер: 30 мА
  • ЖК-дисплеи: ~40 мА
  • Модуль Bluetooth: 45 мА (максимальный)
  • Модули реле: ~60 мА (при активации)
  • Мотор: ~400 мА
  • Светодиодная матрица 8x8: ~500 мА (максимальный)
  • Сервопривод: ~500 мА (во время работы)

Аккумулятор типа 18650 напряжением 3,7 В

Для автономного питания платы, а также подключения устройств с большим током потребления (моторы, серводвигатели, светодиодные матрицы и др.) предусмотрено питание от одного аккумулятора 18650.

Подключение к плате Li-Ion аккумулятора 18650 3,7 В осуществляется через разъем JST XH2.54. На плате SPBot реализована схема зарядки аккумулятора током 800 мА. Если при подключенном аккумуляторе 18650 соединить плату с работающим компьютером или ноутбуком, то начнется зарядка аккумулятора и загорится красный индикатор. По окончании зарядки, красный индикатор потухнет и загорится зеленый индикатор (рис. 15).

Среднее время зарядки, за которое прибор с литий-ионным аккумулятором набирает нужное количество энергии, составляет около 3-4 часов.

Рекомендуемая емкость аккумулятора — от 2000 мАч.

Аккумуляторы типа AA, блок питания 5 В

Для автономного питания также можно использовать 34 аккумуляторные или солевые/алкалиновые батареи 1,5 В типа AA (AAA) или блок питания 5 В от сети переменного тока 220 В.

Зарядка аккумуляторов типа AA на плате не предусмотрена.

Емкость солевых батареек AA составляет от 550–1500 мА∙ч, а NiMH аккумуляторов — 1400–2200 мА∙ч.

*********************************

Ну вот пока и все. Дальше надеюсь опубликовать несколько примеров использования SPBot с программированием и в среде Arduino IDE и в mBlock.

Несколько полезных ссылок:

1. Руководство пользователя SPBot

2. Страница разработчика с полным описанием (там же можно и купить плату)

При разработке статьи были использованы материалы И.В.Шишигина, к.т.н., руководителя проектов издательства "БХВ", очень много сделавшего для того, чтобы SPBot увидел свет))))