Рис. 4
На этапе отладки этого алгоритма вам придется, подбирая значения "Мощность" моторов "B" и "C" а также пороговое значение датчика, добиться от вашего робота точного обнаружения и остановки строго напротив соперника. Только после этого можно будет переходить к программной реализации алгоритма атаки.
Если поиск соперника в "Сумо" очень похож на поиск кегли в "Кегельринге", то выталкивание соперника имеет важное отличие! Начиная атаку, первое, что необходимо сделать, это прямолинейно устремиться на максимальной мощности моторов в сторону обнаруженного соперника, проверяя датчиком цвета обнаружение границы ринга. Но ведь наш соперник тоже может двигаться! Поэтому вполне возможна ситуация, когда соперник выйдет в сторону из-под направления нашей атаки. В этом случае, наш робот, промахнувшись, будет двигаться в сторону границы ринга, теряя соперника и драгоценное время.
Следовательно, нам необходимо во время прямолинейного движения вперед анализировать оба датчика и прекращать атаку в случае, если робот потеряет соперника ИЛИ робот достигнет границы ринга. Поэтому нам необходимо отказаться от использования программного блока "Ожидание" "Оранжевой палитры" и самостоятельно в цикле получать и обрабатывать показания двух датчиков.
Приступим к поэтапной реализации алгоритма атаки соперника: для этого создадим в проекте временную программу "lesson-12-1" и начнем её наполнение программными блоками.
Возьмем программный блок "Цикл" "Оранжевой палитры".
Внутрь блока "Цикл" поместим программный блок "Независимое управление моторами" "Зеленой палитры". Режим работы блока установим в значение "Включить" (Рис. 5 поз. 1), мощности моторов "B" и "C" установим в максимальное значение - 100 (Рис. 5 поз. 2).
Достарыңызбен бөлісу: |