Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практикум по основам робототехники. Задачи для Lego mindstorms nxt и ev3. Учебно-методическое пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
1 Мб
Скачать

одним мотором; центр поворота – неподвижное колесо. Движение робота похоже на работу циркуля.

Рис. 3.1. Настройка мотора

При управлении двумя моторами, в NXT-G перемещают бегунок влево или вправо. Для прямолинейного движения бегунок устанавливают посередине. Если использовать промежуточные значения этого параметра, то робот будет ехать по дуге. Чем дальше бегунок от центра, тем круче поворот.

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

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

Рис. 3.2. Настройка рулевого управления

21

В EV3 добавлен блок «Рулевое управление», который напоминает управление движением с помощью руля. Примерную траекторию движения мы можем задавать не только графически, но и числом (рис. 3.2).

Задание «Основные движения моторов»

Проехать последовательно, со скоростью 75 единиц:

вперед один оборот с резким торможением;

вперед 360° с плавным торможением;

назад 1 сек. с торможением;

принудительно остановить оба мотора;

проехать 1 м с максимальной скоростью и остановиться.

Задание «Повороты на месте»

Написать программу для поворота робота (не мотора!) на месте на 90°; 180°; 270°; 360°.

Для замеров углов поворотов робота необходимо установить в центре тестового поля.

Занести в таблицу углы поворотов двигателей В и С.

Таблица 1

Зависимость угла поворота робота от углов повторов сервомоторов

Угол поворота робота

Способ поворота

Угол поворота моторов

90°

Быстрый

 

180°

Быстрый

 

270°

Быстрый

 

360°

Быстрый

 

90°

Плавный

 

180°

Плавный

 

270°

Плавный

 

360°

Плавный

 

Задания для самостоятельного выполнения:

1. Составьте алгоритм движения робота вперед в течение 5 сек.,

поворота направо и движения вперед в течение 5 сек.

22

2.Составьте алгоритм движения робота по сторонам мысленного квадрата.

3.Составьте алгоритм движения робота по сторонам равностороннего треугольника.

4.Составьте алгоритм движения робота по сторонам треугольника с углами 30°, 60° и 90°.

5.Составьте алгоритм движения робота по сторонам ромба с углами

120° и 60°.

6.Составьте алгоритм движения робота по сторонам равнобедренной трапеции с углами 45° и 135°.

7.Составьте алгоритм движения робота по окружности.

8.Составьте алгоритм движения робота вперед медленно в течение 5

сек., затем ожидание 2 сек., разворот на 180° и движение вперед в течение 2

сек. быстро.

9. Составьте алгоритм движения робота: вперед, издает звук,

возвращается к исходной точке, издает звук и останавливается.

10.Составьте алгоритм для робота, с помощью которого он едет по окружности, ждет 2 сек., едет по окружности в другую сторону.

11.Составьте алгоритм движения робота: назад медленно 2 сек., издать звук из файла, развернуться на 180° и снова ехать назад.

12.Составьте алгоритм поворота робота налево вокруг левого колеса на

45°.

13. Составьте алгоритм движения робота: проехать 0,5 м вперед,

повернуться на 60° по часовой стрелке вокруг правого колеса и проехать 0,5 м

назад.

14. Составьте алгоритм движения робота по квадратной спирали:

проехать 1 оборот вперед, поворот направо на 90°, 2 оборота вперед, поворот направо на 90°, 3 оборота вперед, поворот направо на 90°, 4 оборота вперед.

15. Составьте алгоритм движения робота вперед на 2 м за 15 с.

23

Управление датчиками

Поведение робота – это череда сменяющих друг друга состояний

(состояние движения, состояние поиска и т. п.). Смена состояний происходит в зависимости от внешних событий. Робот регистрирует события при помощи различных датчиков. Изучение управления датчиками следует начинать с освоения их базовых функций.

Задание «Тестирование датчика цвета»

В конструкцию мобильного робота необходимо добавить датчик цвета,

расположенный впереди и направленный вниз, на высоте примерно 1–1,5 см от рабочей поверхности.

Протестируйте данный датчик, поднося к нему предметы различной окраски на расстояние примерно 1 см. Следить за результатом можно в поле обратной связи панели настроек датчика (левый нижний угол панели настроек).

Проведите аналогичное исследование с использованием меню View

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

Задания для самостоятельного выполнения:

1.Составьте алгоритм движения робота: робот едет вперед, пока не будет нажат датчик касания, затем издает звук и останавливается.

2.Составьте алгоритм движения робота: робот едет вперед до тех пор,

пока на его пути не появится препятствие на расстоянии 15 см и останавливается перед ним.

3. Составьте алгоритм движения робота: робот едет прямо на медленной скорости, пока не коснется какого-либо предмета, затем останавливается, ждет

2 сек., разворачивается на 180°, едет прямо, пока не коснется предмета, издает звук из файла и останавливается.

4. Составьте алгоритм движения робота, который будет двигаться прямо, пока на его пути не появится препятствие на расстоянии 10 см, затем

24

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

5.Составьте алгоритм движения робота по черной непрямолинейной

линии.

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

7.Составьте алгоритм движения робота: робот едет вперед, если расстояние до стены больше 10 см, если меньше – издает звук, поворачивает на определенный угол, едет прямо 5 сек. и останавливается.

8.Составьте алгоритм для робота, при котором он ожидает нажатия на кнопку датчика касания, издает звук и едет прямо 5 сек.

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

10.Составьте алгоритм движения робота до предмета на расстоянии 20

см, затем робот движется назад до тех пор, пока не услышит звук.

11.Составьте алгоритм движения робота: робот едет прямо, при достижении черной линии останавливается на 5 сек., затем разворачивается и движется в противоположном направлении в течение 5 сек.

12.Составьте алгоритм движения робота: робот едет прямо, при достижении черной линии замедляет свой ход. После преодоления черной линии скорость движения робота восстанавливается.

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

14.Составьте алгоритм движения робота: робот едет прямо, при достижении красной полосы останавливается и выводит сообщение.

15.Составьте алгоритм движения робота, при котором робот едет прямо,

пока уровень освещенности не превысит определенное значение.

25

Раздел 4. Расширенные задачи для программирования LEGO-робота

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

Задания для самостоятельного выполнения:

1. Составьте алгоритм для робота, который движется по зебре, пересекая

то черные, то белые полосы. Робот должен посчитать, сколько черных полос он пересек.

2. Составьте алгоритм движения робота: робот движется по зебре

(5 черных линий). При достижении каждой черной линии робот должен издавать один звуковой сигнал. После окончания зебры робот останавливается.

3. Составьте

алгоритм движения робота: при

движении

по

зебре

(5 черных линий) остановиться на 4 черной линии.

 

 

 

4. Составьте

алгоритм движения робота: робот

движется

по

зебре

(5 черных линий). После достижения 4 черной линии робот разворачивается на 180° и движется до первой черной линии.

5. Составьте алгоритм движения робота: робот движется по тестовой полосе до обнаружения красного (синего, зелёного и др.) цвета. После того,

как заданный цвет обнаружен, робот должен произнести этот цвет.

6. Составьте алгоритм движения робота: робот едет по периметру квадрата, пока не услышит звук, затем он разворачивается и едет по кругу,

пока не будет нажата кнопка датчика касания. Эти действия будут повторяться многократно.

26

7. Составьте алгоритм движения робота, который двигается зигзагом,

пока не услышит хлопок, после этого останавливается и ждет касания, после чего все повторяется.

8.Составьте алгоритм для робота, который сможет объезжать препятствия и разворачиваться после хлопка.

9.Составьте алгоритм движения LEGO-робота, который будет «убегать»

от оператора при приближении более 10 см, и подъезжать, если услышит

какой-либо звук.

10.Составьте алгоритм для робота, который ожидает, если в комнате темно; если светло, он двигается вперед, пока не упрется в какое-либо препятствие, после чего выводит сообщение, разворачивается и едет обратно.

11.Составьте алгоритм движения робота за предметом, если расстояние до него становится более 15 см., если меньше, то робот ожидает, если при этом он слышит звук, то крутится вокруг своей оси.

12.Составьте алгоритм движения робота по «квадратной» спирали: две ветки длиной 1 шаг, затем две ветки длиной 2 шага и т. д. Организовать вывод на экран длины очередной ветки (в шагах).

27

Раздел 5. Задания на программирование LEGO-роботов для подготовки к олимпиадам

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

Наиболее значимым событием в мире образовательной робототехники является Всемирная Олимпиада Роботов (World Robot Olympiad).

Олимпиада представляет собой соревнования LEGO-роботов в трёх разных категориях: основной, творческой и футбола роботов. В основной категории участникам необходимо собрать и запрограммировать робота,

который должен выполнить определенное задание; размеры робота стандартно ограничены: 25×25×25 см. Участники творческой категории готовят проект на заданную тему. Задания для этих двух категорий каждый год разные и объединены общей тематикой. Основная и творческая категории,

в свою очередь, делятся по возрастам на младшую, среднюю и старшую группу.

В каждом сезоне усложняются задачи для одного и того же вида соревнований. Чаще всего это задания, направленные на освоение приемов работы робота с окружающей обстановкой на основе использования различных датчиков и моторов. Анализ заданий с соревнований позволяет условно разделить их на несколько видов:

1. Задачи движения робота по траектории.

Траектория может быть непрерывной и однотонной или иметь прерывистые или инверсные участки, а также на некоторых участках менять свой цвет.

2. Задачи манипуляции с объектами.

В этих задачах от робота требуется захват и перемещение объектов в соответствие с различными условиями (например, в зависимости от цвета или размера объекта).

28

3. Задачи на сканирование цветовых кодов.

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

4. Комбинированные задачи.

В своей работе робот должен выполнять действия с учетом трех предыдущих видов задач.

Далее представим задания, заключающиеся в конструировании и программировании робота для выполнения действий, являющихся отдельными приемами для задач с соревнований

Задания для самостоятельного выполнения:

1. Робот ждет n-ого нажатия на оранжевую кнопку на блоке микроконтроллера, при этом значения n выводятся на дисплей. После n-ого нажатия робот подает звуковой сигнал и начинает движение по квадрату,

длина стороны которого равна n оборотов. N сгенерировать внутри программы.

2.Робот ждет n-ого нажатия на оранжевую кнопку на блоке микроконтроллера, при этом значения n выводятся на дисплей. После n-ого нажатия робот подает звуковой сигнал и начинает движение по правильному треугольнику, при этом количество повторов прохождения траектории равно n. N сгенерировать внутри программы. Длину стороны треугольника определить самостоятельно любым способом.

3.Робот управляется двумя кнопками – два датчика касания, служащие пультом управления. Робот должен ехать вперёд при нажатии на обе кнопки.

Если нажата только правая кнопка, то робот поворачивает направо на 90

градусов и двигаться вперед; если только левая – налево на 90 градусов и двигаться вперед. Если кнопки отпущены, то робот останавливается. Если при движении робот встречает препятствие на расстоянии 15 см, ему необходимо остановиться.

29

4. Робот перемещается по полю с цветными полосами. Проехав все поле,

робот останавливается и называет цвета в той последовательности, в которой

он их проезжал.

5.Робот перемещается по разноцветному полю и останавливается, когда доберётся, например, до красного цвета. После остановки робот должен вывести на экран преодоленное расстояние в сантиметрах.

6.Робот проезжает по полю c цветными полосами и запоминает последовательность цветов. Далее он подает звуковой сигнал и выполняет действия в соответствие с цветами. Выполняемые действия определить самостоятельно и указать в отчете.

7.Робот двигается по черно-белой трассе с перекрестками. Трасса должна содержать более трех перекрестков. Робот должен остановиться после третьего перекрестка.

8.Робот двигается по черно-белой трассе с перекрестками. Трасса содержит 4 перекрестка. На первом перекрестке робот поворачивает налево.

Второй перекресток робот проезжает прямо. На третьем перекрестке робот

поворачивает налево. На четвертом перекрестке робот останавливается.

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

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

11.Робот двигается по квадрату и измеряет уровень освещенности в вершинах квадрата. Затем возвращается в вершину с минимальным освещением и включает подсветку.

12.Робот двигается по квадратной черно-белой траектории. С внешней

стороны траектории в вершинах квадрата расположены цветные детали. После

30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]