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

Имеется робот, оснащённый датчиками цвета (или света) и ультразвука. Также имеется ринг и расставленные внутри него кегли - алюминиевые банки. Робот должен вытолкнуть все кегли за пределы ринга. Начальное положение робота - центр ринга. Побеждает робот, вытолкнувший все кегли из ринга за минимальное время. На решение задачи роботу даётся 2 минуты.
- поиск кегли;
- выталкивание кегли.
Поиск кегли
Для поиска банки добавьте в конструкцию робота датчик ультразвука, направленный вперёд. Запрограммируйте поведение робота по следующему алгоритму:
- робот, находясь в центре ринга, разворачивается на месте, пока датчик не зафиксирует расстояние до объекта менее заданного;
- остановка.
Выталкивание кегли
Если кегля найдена, то алгоритм её выталкивания состоит в следующем:
- двигаться вперёд до чёрной линии;
- вернуться назад.

Блок Rotation Sensor имеет довольно много входных и выходных разъёмов. Для решения нашей задачи понадобится только один разъём, выдающий текущее количество градусов или оборотов, совершённых валом мотора.
Поле Action задаёт тип действия: Read - считать данные; Reset - сбросить показания датчика в ноль.
- Запрограммируйте робот так, как показано на рисунке. Обратите внимание, что первый блок Rotation Sensor сбрасывает показания датчика оборотов в ноль, а второй работает в режиме чтения.
- Загрузите программу на робот при помощи кнопки Download and Run.
- Не отсоединяя USB-кабель вращайте колесо робота вперёд/назад и наблюдайте за показаниями на экране.
- Сравните показания на экране с показаниями в поле обратной связи датчика оборотов.

Задание 9.10. Измените программу так, чтобы данные выводились в оборотах.
Кегельринг. Общий алгоритм
Итак, общий алгоритм кегельринга состоит в следующем:
- Разворот на месте, пока датчик ультразвука не обнаружит банку.
- Двигаться вперёд до чёрной линии.
- Вернуться назад на столько же оборотов, сколько он проехал вперёд, выталкивая очередную банку.
Напоминаем, что на концентратор данных блока Move можно передавать только градусы, но не обороты.
- Перейти к пункту 1.