Новости
28.12.2019

Вечер пятницы - самое время заняться роботостроением

В стенах нашего офиса 6 декабря четыре команды сражались за победу в Singularis «ROBO CONTEST» 2019.

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

ROBOCONTEST1

Роботы управлялись микроконтроллером Arduino Uno, к которому был дополнительно приобретен Motor Shield - плата расширения для управления моторами. В нашем случае 2 мотора постоянного тока (DC).

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

ROBOCONTEST3

В качестве сенсоров использовались модули на основе датчика TCRT5000, который испускает инфракрасное излучение и ловит его отражение от поверхности. В зависимости от цвета и типа поверхности меняется интенсивность отраженного сигнала. На основе этих данных участники могли делать выводы о том, находится ли темная линия трассы под датчиком или нет.

ROBOCONTEST5

Для программирования использовалась ArduinoIDE. Дополнительной библиотекой стала Adafruit Motor Shield library.

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

Самое простое решение (дающее неплохой результат, кстати) - это реализовать следующее поведение:

  • если линия находится под центральным сенсором, то вращаем обоими колесами с одинаковой скоростью

  • если линия находится под левым или правым сенсором, то одно колесо останавливаем, а второе вращаем

  • если линия находятся под крайним левым или правым сенсором, то вращаем колеса в разные стороны

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

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

ROBOCONTEST2

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

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

В полной мере с непростой задачей конкурса справилось 2 из 4 команд, поэтому было решено оставить разработанную систему тайминга до следующих соревнований.

По итогам конкурса наилучший результат показал робот команды «66%». Поздравляем Глеба Агафонова, Юлию Агафонову и Романа Гущина с заслуженной победой!

ROBOCONTEST7

Батареи остальных роботов, несогласных с результатами конкурса, разрядились, поэтому Singularis ROBOFIGHT не состоялся. Но всё впереди, а пока что восстание машин отменяется.

Выражаем огромную благодарность Анатолию Крыжановскому за подготовку соревнований!