На этот раз Я расскажу, как сделать простой робот для соревнований по мини сумо. Весь Сентябрь я работал с первокурсниками мехатроники, и вместе создали несколько таких роботов....
Содержание статьи / Table Of Contents
↑ Охота на роботов...
Итак... Наш небольшой электрический зверёк должен видеть своего противника, вытолкнуть его за пределы ринга, а сам должен оставатся на ринге. Правила игры можно прочитать тут: _//moscowservice.org/roboty_sumo/68-obshhie-pravila-minisumo.html. Значит надо два типа сенсоров - те, которые „видят” другого робота, и сенсоры определения наличия белой линий на краю ринга. В первом случае выбор довольно широк - тут можно использовать ИК датчики (их тоже много всяких... например ИК фототранзисторы, модулированные ИК приёмники, ИК измерители расстояния фирмы SHARP, и.т.д.), ультразвуковые датчики, лазерные сенсоры и другую экзотику.Нам важна чувствительность и помехоустойчивость сенсора. Также желательно исключить ложное срабатывание (допустим, кто то захочет сфотографировать Вашего робота во время раунда. Вспышка при этом может дать ложный сигнал и робот поведёт себя неадекватно). Значит, простые элементы, как фотодиоды и фототранзисторы, в этом случае пусть полежат еще в коробочке... Из дешевых вариантов нам наиболее подходят модулированные ИК приёмники - те, которые есть во всех устройствах, управляемых от пульта дистанционного управления. Они бывают на разные частоты- от 32 КГц до 56 КГц. Я взял на 38 КГц. Если у Вас будут на другую частоту - не беда. Подкорректируйте значение частоты в программе МК и всё!
Датчики линий - фотоинтерруптеры, например такие, как показано на следующей картинке.
Они должны в себе содержать ИК светодиод и ИК фототранзистор. Принцип действия уже описан в моей статье про робота GOOFY.
Мозги робота - это микроконтроллер АТМЕГА 8 - он дешевый и доступный. Задача его - генерировать меандр частотой 38 КГц для управления ИК светодиодами (необходимы для работы модулированных ИК приёмников), реагировать на сигналы от датчиков и управлять модифицированными модельными сервомоторами используя ШИМ по программе.
↑ Схема:
Исключён фрагмент. Полный вариант доступен меценатам и полноправным членам сообщества.
МК тактируется кварцем на частоту 16МГц. Под эту частоту и определялись значения ШИМ. Каналы OC1A (выв.15) и OC1B (выв.16) управляют сервомоторчиками. Для этого нужен сигнал частотой 50 Гц, а скорость и направление определяет длина импульса от 1.0 мс до 2.0 мс. При 1.5 мс мотор должен стоять. Более подробно о действии и строении модельных сервомоторов можно прочитать в интернете.
Есть одно НО! Нам придется слегка переделать такой мотор, так как он расчитан на позиционирование только по 180 градусам, а нам надо, чтобы он вращался на 360 градусов.
Следуем по этой инструкций: _//www.seattlerobotics.org/guide/servohack.html. Всё, что надо, это снять/отрезать ограничитель с главной шестерни и вместо переменного резистора обратной связи впаять два постоянных резистора. Обычно переменник там стоит на 5к - значит надо впаять два по 2.5к (при длине импульса 1.5мС мотор будет стоять. Изменяя длину импульса в сторону 1.0 мс или 2.0 мс мотор, соответственно, будет изменять направление и скорость вращения вала). У серво три провода - черный (GND, "-"), красный (+5V, "+") и белый (PWM). Такие моторы продаются в магазинах для моделистов и, конечно же, в интернет-магазинах.
Далее по схеме: выводы МК порта С подтянуты внутренними резисторами к +5в. Т.е. на нём логический 1. При срабатываний любого сенсора (а их у нас четыре) вход сбрасывает на логический 0.
Программа МК реализована довольно примитивно - в ней четыре функции - две для пауз, третья - опрос сенсоров используя IFы, а четвёртая - управление моторами по SWITCH (STATE). Я думаю, разобратся в программе Вам не составит труда.
Отдельное слово следует сказать о подстроечных резисторах R2, R3, R5. Первоначально их надо установить в среднее положение и потом, при необходимости, подстроить. R2 и R3 надо подстроить так, чтобы при наезде на белую линию робот начал двигатся назад. R5 регулирует ток через светодиоды HL1, HL2. Принцип такой - чем ярче горит ИК светодиоды, тем далее робот „видит”. Но менее 50 Ом уменьшать сопротивление R5 не следует. Также, на эти светодиоды желательно надеть светонепроницаемые трубки для исключения излучения по бокам светодиодов. При обнаружений цели робот должен двигатся в сторону того сенсора, который сработал. Если сработали оба (противник спереди), то минисумо идёт полным ходом вперёд. Сенсоры линий устанавливают спереди робота за лопатой. То, в какой стороне находится каждый сенсор, значения не имеет, так как приоритет у них один и тот же.
Рядом другая - более мощная версия мини сумо робота. Схема там уже другая.
↑ Видео работы
↑ Файлы
В архиве source код для CodeVisionAVR. Вам останется только откомпилировать его и залить в МК. Платы для робота специально не разрабатывались - всё делается на макетках, так как схема не очень сложная.🎁sumo.7z 1.38 Kb ⇣ 143
Камрад, рассмотри датагорские рекомендации
🌼 Полезные и проверенные железяки, можно брать
Опробовано в лаборатории редакции или читателями.