В данном материале я расскажу о создании робота по линии которого мы сделали для участия в 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-ти канальный.
Поскольку моторы брали на 12 вольт, а питать их должна Lipo`шка на 3s, то DC/DC преобразователь искали хитрый, понижающие-повышающий, да-да такие есть. Он должен был быть настроен на 12 вольт, и если АКБ заряжен на полную, то работать как понижающий, а когда АКБ просаживается ниже 12 то как повышающий, но вот снова бяда — в магазине обманули, а я недосмотрел — он оказался повышающий. По итогу, с учетом того что нам, из-за драйвера, все равно выше 10 вольт не светит - решили взять LM2596S.
Дирижировать этим всем будет Arduino Nano! Правда хотелось поставить что-то пошустрее, были даже куплены ESP 07, но ESPшки сказали что не хотят, и вообще у них голова болит от 5 вольт, а как мы знаем у MX1508 и сенсоров линии логика как раз 5в. По итогу — Дунька все разрулит.
Совместно с ребятами накидали такой корпус. Да, немного лишнего пластика, но да ладно, и так сойдет. Ребята решили делать новые корпуса, но уже на следующие соревнования. Для этих соревнований делаем максимально просто, чтоб точно принять участие, а то робота для кубка РТК мы делаем уже лет 5 как, но зато ого-го какого не простого — точно победим (если доделаем).
Корпус состоит из четырех отдельных деталей, и оптимизирован для 3д-печати. составные части соединяются между собой на болты м3.
Вот ссылка на Компас и STL — используйте если нужно, только не забудьте сначала прочитать вот это.
Довольно быстро ребята собрали все в кучу. Я надеюсь никому не нужно говорить что куда подключать? Единственное что, так это питание, Ардуинка запитана от DC/DC 10 вольт через Vin, а вот сенсоры уже питаются от 5в Ардуинки, им хватает — все довольны и счастливы.
Тут как раз поспела тестовая трасса от организаторов фестиваля, и мы поняли что есть элементы которые МЫ никогда не пробовали, а именно “Г” образный поворот под 90 град. и перекресток... Ну ничего, «вижу цель, не вижу препятствий» сказали мне ребята и дописали алгоритм с учетом этих элементов.
Сам алгоритм обработки трассы получился такой: если линию видит центральный сенсор то оба колеса полный вперед, если крайний то одно стоп второе вперед, при детектировании линии промежуточным сенсором (между центральным и крайним) колесо не останавливается полностью а только замедляется. Перекресток детектируется срабатыванием всех 5 сенсоров разом — полный вперед, а «Г» образный поворот одновременным срабатыванием двух крайних сенсоров — и тут мы не просто тормозим колесо а крутим его в обратную сторону для более резкого разворота.
Код будет доступен по ссылке после соревнований. Если нужно используйте, только не забудьте сначала прочитать вот это.
Для проверки работоспособности и адекватности реакции нашего робота мы с ребятами разработали вот такой пробник, после чего ребята быстренько его изготовили. На этой тестовой трассе есть все элементы что должны нам попасться на соревновании. Прямая, перекресток, «Г» образный поворот, кривая с радиусом 30 см. причем изначальный дизайн в нужных размерах не влез на лист, и мы решили отрисовать только половину, и пускать робота по «пробнику» с начала по часовой а потом против часовой стрелки, дабы опробовать все элементы как в левом так и в правом исполнении.
По итогу.
Взбодрились все ребята, даже те что не будут участвовать, участникам пришлось поморщить мозги, решить ряд задач, которые так кстати всплыли в процессе создания роботов (а я не обо всех рассказал), и, главное, мы получим опыт участия в подобных мероприятиях. Обязательно участвуйте в доступных соревнованиях, это очень хорошо сказывается на процессе обучения детей робототехнике.
Вот так с бухты-барахты мы решили участвовать в R:ED FEST с двумя роботами близняшками. Как говориться было бы желание, а больше ничего и не нужно... =) После того как пройдет фестиваль тут появится ссылка на отчет.
А вот тут вы можете найти все доступные на данный момент статьи от нашего клуба.
Кому интересно, итоговая стоимость одного робота ~1400 рублей, без учета метизов, рассыпухи и печати.