Последнее обновление: 11 декабря 2004г.

Робот для соревнований по мини-сумо

1. Плата управления.

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

Можно собрать плату "все в одном", на которой будет сам процессор, схема управления двигателями, датчик обнаружения противника, стабилизатор напряжения питания и т.д.

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

Большинство имеющихся плат управления (ПУ) рассчитаны на подключение различных датчиков. Они могут иметь как цифровые, так и аналоговые входы, выходы как правло цифровые. Исключением могут быть выходы, на которых может формироваться сигнал с ШИМ.

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

Идея: можно на одном из входов, который может работать в режиме прерывания, установить один элемент ИЛИ (2-3-4 или больше входов ИЛИ). И тогда мы подключаем сигнал с датчика на один из входов и также подаем тот же сигнал на вход ИЛИ. Точнее, если брать по умолчанию в качестве сигнала срабатывания низкий уровень, тогда понадобится элемент И (или стандартный И-НЕ). Тогда при срабатывании одного (или нескольких сразу) датчика на специальном входе, изменение сигнала на котором вызывает прерывание, процессор переходит на подпрограмму обработки прерывания, которая изменяет определенные регистры или ячейки памяти.

 

2. Сенсор края ринга.

Требования: отслеживать изменение цвета покрытия под роботом, и если какая-то часть его находится у края ринга, сигнализировать об этом центральному процессору.

Тут вопрос стоит так: можно использовать простой датчик, который стоит спереди слева и справа и будет выдавать ноль в том случае, если он находится над белой полосой (краем ринга). В остальное время датчик выдает единицу.

Ситуация. Робот может подъехать к краю ринга не прямо, а под углом (или противник может подтолкнуть его). В таком случае, если робот будет двигаться назад, он сам вылетит с ринга, а это проигрыш. Поэтому нужно учесть такие варианты и предусмотреть такое расположение сенсоров, чтобы робот не оказался в такой ситуации.

Варианты решения:

3. Сенсор обнаружения противника.

Требования: обнаружить расположение противника на ринге и передать информацию центральному процесосру.

Тут варинты могут быть такие: сложный и дорогой сенсор устанавливается на робот и находится в фиксированной позиции, такой же сенсор, но установленный на раме, которую вращает сервопривод, или же массив простейших сенсоров, которые располагаются по периметру робота на всех его сторонах или же только на фронтальной и боковых сторонах.

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

Варианты решения:

4. Сенсор оборотов колес.

Датчик одометрии (вращения колеса).


Эти датчики могут быть разных типов:

Рассмотрим герконовый датчик. Магнит устанавливается на колесе, геркон срабатывает во время перемещения магнита возле геркона. Геркон подключается к ножке микроконтроллера и к общему проводу («земле», минусу питания). Можно подключить ножку МК через подтягивающий резистор к плюсу питания, можно подключить подтягивающий резистор программным путем.

А теперь ИК-датчики. Есть готовые сборки – датчики типа «прорезь» или «П-образные». Есть готовые датчики на отражение. Цена, правда, сборки в 2-3 раза выше, чем просто пара ИК-светодиод + ИК-фототранзистор. Можно высверлить в любом подходящем материале два отверстия и вставить туда ИК- диод и транзистор. Но дело в том, что для того, чтобы «снимать» информацию, необходимо использовать либо компаратор, либо транзистор в ключевом режиме. Можно попытаться использовать встроенный компаратор микроконтроллера, но не всегда можно на это надеяться. Практичнее использовать компаратор LM339 либо подобный ему (существует множестно микросхем- компараторов, но они, как правило, счетверенные). Если использовать компаратор в корпусе SOIC, то он не займет много места и вы всегда можете настроить его на определенный тип ИК-пары простым поворотом потенциометра. Также важно иметь возможность настройки датчика под определенный тип отражающей поверхности.
Если датчик будет не простой, а показывающий направление вращение колес. Как происходит определение вращения? Достаточно просто- нужно всего-навсего зафиксировать, в каком порядке срабатывают датчики. Единственное условие- полосы либо разрезы должны располагаться с достаточными промежутками.

Достаточно большой проблемой есть расчет пройденного расстояния. Тут подходит как теоретический, расчетный путь, так и практический. Пройденное расстояние рассчитать просто, когда платформа движется прямо, но когда робот поворачивает- это может стать проблемой. Не будем учитывать влияние типа пола, ведь это практически невозможно. В реальном мире проще для определения позиции робота в пространстве пользоваться компасом или маяками, но это отдельный вопрос.

5. Плата управления двигателями.

Управление двигателями напрямую зависит от из типа. Сервомоторы и шаговые двигатели требуют специального алгоритма для управления ими, коллекторные из-за большого количества посторонних шумов и наводок также требуют особого отношения. В результате оказывается, что для каждого типа двигателей необходима своя или специфическая плата управления. Другими словами переход плата-двигатель можно делать разъемным, если в будущем будет использоваться в другом проекте, в остальных случая можно сэкономить на разъемах.

Для регулирования скорости оборотов колес можно использовать программную ШИМ, аппаратную ШИМ, можно масштабировать редуктор.

Варианты реализации:

6. Кнопка "Старт".

Для участия в соревнованиях робот должен уметь одну вещь- выдержать необходимую паузу после сигнала о начале схватки. Раньше двинуться никак нельзя- раунд не будет защитан. Это называется фальшстарт. Поэтому участник должен установить робота на ринге и по сигналу судьи нажать кнопку старта.

7. Датчик заряда батарей.

8. Блок индикации.

Этот блок нужен скорее для отладки и при программировании, но может понадобиться во время соревнований. Потому что в динамике боя не всегда понятно, какое действие сейчас производит робот и что стало этому причиной, на что он среагировал.

Варианты реализации: