|
учебник. Робосумо Роботу необходимо найти внутри поля объект и вытолкать его за пределы круга
Робосумо Роботу необходимо найти внутри поля объект и вытолкать его за пределы круга. Поиск соперника
Определять черную границу
Датчик света
Инфракрасный датчик
ультразвуковой датчик - поиск соперника
- атака соперника.
Последовательность действий робота при обнаружении соперника на поле - вращаться вокруг своей оси, пока впереди расположенный датчик не обнаружит соперника;
- остановиться напротив соперника.
- На "Странице аппаратных средств", находящейся в правом нижнем углу среды программирования, выберем вкладку "Представление порта" (Рис. 1, 2 поз. 1) и снимем показание датчика, определяющего расстояние до соперника, установив соответствующий режим отображения показаний.
- В нашем случае ультразвуковой датчик в режиме "Расстояние в сантиметрах" показывает значение - 56,1 (Рис. 1 поз. 2). За пороговое значение примем число - 57.
Ультразвуковой датчик - Для того, чтобы заставить робота вращаться вокруг своей оси, воспользуемся программным блоком "Независимое управление моторами" "Зеленой палитры", Режим работы блока установим "Включить", значение мощности для порта "B" установим равным -30, значение мощности для порта "C" установим равным 30 (Рис. 3 поз.1).
- Для поиска соперника используем программный блок "Ожидание" "Оранжевой палитры" в режиме "Ультразвуковой датчик - Сравнение - Расстояние в сантиметрах" с пороговым значением срабатывания датчика, равным 57 (Рис. 3 поз. 2).
- После того, как робот окажется напротив соперника, используя программный блок "Независимое управление моторами" "Зеленой палитры" выключим моторы (Рис. 3 поз. 3).
Инфракрасный датчик - Для того, чтобы заставить робота вращаться вокруг своей оси, воспользуемся программным блоком "Независимое управление моторами" "Зеленой палитры", Режим работы блока установим "Включить", значение мощности для порта "B" установим равным -30, значение мощности для порта "C" установим равным 30 (Рис. 4 поз.1).
- Для поиска соперника воспользуемся программным блоком "Ожидание" "Оранжевой палитры" в режиме "Инфракрасный датчик - Сравнение - Приближение", с пороговым значением срабатывания датчика, равным 70 (Рис. 4 поз. 2).
- После того, как робот окажется напротив соперника, используя программный блок "Независимое управление моторами" "Зеленой палитры" выключим моторы (Рис. 4 поз. 3).
Начиная атаку, первое, что необходимо сделать, это прямолинейно устремиться на максимальной мощности моторов в сторону обнаруженного соперника, проверяя датчиком цвета обнаружение границы ринга. Но ведь наш соперник тоже может двигаться! Поэтому вполне возможна ситуация, когда соперник выйдет в сторону из-под направления нашей атаки. В этом случае, наш робот, промахнувшись, будет двигаться в сторону границы ринга, теряя соперника и драгоценное время. - Следовательно, нам необходимо во время прямолинейного движения вперед анализировать оба датчика и прекращать атаку в случае, если робот потеряет соперника ИЛИ робот достигнет границы ринга. Поэтому нам необходимо отказаться от использования программного блока "Ожидание" "Оранжевой палитры" и самостоятельно в цикле получать и обрабатывать показания двух датчиков.
- Приступим к поэтапной реализации алгоритма атаки соперника: для этого создадим в проекте временную программу и начнем её наполнение программными блоками.
- Возьмем программный блок "Цикл" "Оранжевой палитры".
- Внутрь блока "Цикл" поместим программный блок "Независимое управление моторами" "Зеленой палитры". Режим работы блока установим в значение "Включить" (Рис. 5 поз. 1), мощности моторов "B" и "C" установим в максимальное значение - 100 (Рис. 5 поз. 2).
- Следом за блоком "Независимое управление моторами" поместим программный блок "Датчик цвета" "Желтой палитры". Режим работы блока установим в значение "Сравнение - Яркость отраженного света" (Рис. 6)
|
|
|