Несложный LEGO-РОБОТ, который следует по

LEGO роботы
Несложный LEGO-РОБОТ, который следует по линии

Конструктор роботов LEGO MINDSTORMS Robotics Invention System состоит всего из одного фотосенсора. Но даже имея один сенсор, можно построить достаточно шустрого LEGO-робота, который будет следовать линии.
Рассмотрим программу, которая реализует алгоритм следования по линии, но т.к. такой робот очень медленно движется, попробуем применить более быстрый алгоритм, который называют алгоритмом «Избегания линии».

Суть алгоритма противоположна оригинальному коду программы, т.е. робот не «держится» за линию, а, наоборот, избегает ее. Когда датчик робота попадает на линию, то робот рывками уходит в сторону и вперед, после чего опять начинает возвращаться к линии. Линия — и робот снова уходит в сторону и вперед. Затем опять возвращается к линии и так далее. Т.е., он как бы избегает линию, а затем ее ищет. При этом он начинает намного быстрее двигаться за счет довольно больших «бросков» в сторону и вперед, чем при постоянном отслеживании границы белого и черного.
Соберем робота (моторы подсоединим к выходам A и C, датчик — к входу 2) и рассмотрим программу, показанную ниже.

Первый блок — устанавливаем скорость [Set Power AC 4].
Затем создаем бесконечный цикл (Loop) [Repeat — Forever], внутрь которого поместим условие YesNo [ If Light 2 > 40], установив срабатывание сенсора на светлое [Select Sensor Event — Bright].
В каждую ветвь условия YesNo поместим циклы Repeat-While.
В левом цикле Repeat-While [While Light 2] настроим срабатывание сенсора на светлое [Select Sensor Event — Bright], а в правом — на темное [Select Sensor Event — Dark].
В каждый из циклов поместим блоки, как показано на рисунке выше, настроив их соответственно с показанными значениями.
Отсюда получается, что левая последовательность блоков будет отвечать за «поиск» черной линии, а правая — за «избегание».
Загрузим программу в RCX-блок и поставим робота слева от черной линии шириной 40-50 мм, а затем запустим программу.
«Перенастроим» в коде длительности включения моторов для получения самой большой скорости.
Наш LEGO-робот может участвовать в соревнованиях «Гонки по линии» или «Следование по линии».

Источник

Код программы
technik 15.12.2009 в 12.46 (обновлен 16.12.2009 в 15.39) комментарии 0 0

комментарии(0)

Комментировать

Для добавления комментария авторизируйтесь.
Последние комментарии:
© 2012 pobot.ru