Найти тему
RCRoboLab

«Гоночный» робот по линии.

Оглавление


В данном материале я расскажу о создании робота по линии которого мы сделали для участия в
R:ED FEST 2023 года в Санкт-Петербурге.

И так, была поставлена задача: принять УЧАСТИЕ в номинации «Движение по черной линии» на
R:ED FEST.

Весь наш опыт робототехнических соревнований сводиться к одному слову — зрители. И именно по этому задача у нас НЕ выиграть а принять участие, а там как пойдет =)

Пришлось очень долго уговаривать ребят на участие, уж очень они стеснительные, но в итоге у нас заявилось 4 человека в 2х командах. А поскольку цель у нас учиться/участвовать а не побеждать - решили делать 2 одинаковых робота, без претензий на победу.

Концепция!

Робот на коллекторных моторах n20, так как бюджет не резиновый - с минимальными вложениями, максимальной простотой конструкции чтобы нечему ломаться было, и обязательно с максимально доступными деталями ибо времени в обрез.

По итогу было закуплено:

  • моторы n20 12в 1000об/м
  • драйвер мотора MX1508 (L298N mini)
  • 5-ти канальный модуль датчика линии
    понижающий DC/DC преобразователь LM2596S
  • Arduino Nano v3

Из запасов достали АКБ LiPO 3S 500mAh, метизы, немного рассыпухи, ну и естественно 3D-печать.

Давайте подробнее по железу, и как выбирали.

Моторы взяли после недолгих консультаций и раздумий. По принципу вроде бы 1000 об/м должно быть в самый раз, и так оно и оказалось, а 12 вольтовые должны иметь больший момент чем моторы на 6в. . Подумали и купили =)

Драйвер брали тот что нам хорошо знаком (вот тут можно почитать ро него подробнее). Только мы забыли что он максимум 10 вольт может переварить, а моторы то 12в. Вот такая «беда постыдная, от нерадивых мыслей и дел криворуких выросшая» у нас случилась. Ну ничего, есть задел на будущее, ребятам была дана задача подобрать нужный — изучают что есть в наличии из драйверов и какой из них раскрутит моторы на полную скорость =)

Сенсор линии брали по критериям — чтоб в наличии и не поштучно. Взяли вот такой 5-ти канальный.

Модуль датчика линии 5-ти канальный. Фото с сайта roboshop.spb.ru.
Модуль датчика линии 5-ти канальный. Фото с сайта roboshop.spb.ru.

Поскольку моторы брали на 12 вольт, а питать их должна Lipo`шка на 3s, то DC/DC преобразователь искали хитрый, понижающие-повышающий, да-да такие есть. Он должен был быть настроен на 12 вольт, и если АКБ заряжен на полную, то работать как понижающий, а когда АКБ просаживается ниже 12 то как повышающий, но вот снова бяда — в магазине обманули, а я недосмотрел — он оказался повышающий. По итогу, с учетом того что нам, из-за драйвера, все равно выше 10 вольт не светит - решили взять LM2596S.

LM2596S-ADJ DC-DC понижающий регулируемый преобразователь питания StepDown. Фото с сайта smdx.ru.
LM2596S-ADJ DC-DC понижающий регулируемый преобразователь питания StepDown. Фото с сайта smdx.ru.

Дирижировать этим всем будет Arduino Nano! Правда хотелось поставить что-то пошустрее, были даже куплены ESP 07, но ESPшки сказали что не хотят, и вообще у них голова болит от 5 вольт, а как мы знаем у MX1508 и сенсоров линии логика как раз 5в. По итогу — Дунька все разрулит.

Совместно с ребятами накидали такой корпус. Да, немного лишнего пластика, но да ладно, и так сойдет. Ребята решили делать новые корпуса, но уже на следующие соревнования. Для этих соревнований делаем максимально просто, чтоб точно принять участие, а то робота для кубка РТК мы делаем уже лет 5 как, но зато ого-го какого не простого — точно победим (если доделаем).

3D модель корпуса робота по линии. Сборка "Компас 3д". скрин автора.
3D модель корпуса робота по линии. Сборка "Компас 3д". скрин автора.

Корпус состоит из четырех отдельных деталей, и оптимизирован для 3д-печати. составные части соединяются между собой на болты м3.

Вот ссылка на Компас и STL — используйте если нужно, только не забудьте сначала прочитать вот это.

Собранный и полностью готовый к "бою" робот.
Собранный и полностью готовый к "бою" робот.

Довольно быстро ребята собрали все в кучу. Я надеюсь никому не нужно говорить что куда подключать? Единственное что, так это питание, Ардуинка запитана от DC/DC 10 вольт через Vin, а вот сенсоры уже питаются от 5в Ардуинки, им хватает — все довольны и счастливы.

Тут как раз поспела тестовая трасса от организаторов фестиваля, и мы поняли что есть элементы которые МЫ никогда не пробовали, а именно “Г” образный поворот под 90 град. и перекресток... Ну ничего, «вижу цель, не вижу препятствий» сказали мне ребята и дописали алгоритм с учетом этих элементов.

Пример трассы от организаторов. Взято с сайта фестиваля.
Пример трассы от организаторов. Взято с сайта фестиваля.

Сам алгоритм обработки трассы получился такой: если линию видит центральный сенсор то оба колеса полный вперед, если крайний то одно стоп второе вперед, при детектировании линии промежуточным сенсором (между центральным и крайним) колесо не останавливается полностью а только замедляется. Перекресток детектируется срабатыванием всех 5 сенсоров разом — полный вперед, а «Г» образный поворот одновременным срабатыванием двух крайних сенсоров — и тут мы не просто тормозим колесо а крутим его в обратную сторону для более резкого разворота.

Кусочек кода. скрин автора.
Кусочек кода. скрин автора.

Код будет доступен по ссылке после соревнований. Если нужно используйте, только не забудьте сначала прочитать вот это.

Для проверки работоспособности и адекватности реакции нашего робота мы с ребятами разработали вот такой пробник, после чего ребята быстренько его изготовили. На этой тестовой трассе есть все элементы что должны нам попасться на соревновании. Прямая, перекресток, «Г» образный поворот, кривая с радиусом 30 см. причем изначальный дизайн в нужных размерах не влез на лист, и мы решили отрисовать только половину, и пускать робота по «пробнику» с начала по часовой а потом против часовой стрелки, дабы опробовать все элементы как в левом так и в правом исполнении.

По итогу.

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

Вот так с бухты-барахты мы решили участвовать в R:ED FEST с двумя роботами близняшками. Как говориться было бы желание, а больше ничего и не нужно... =) После того как пройдет фестиваль тут появится ссылка на отчет.

А вот тут вы можете найти все доступные на данный момент статьи от нашего клуба.

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