Вопрос

Я разрабатываю робота для инженерного класса. Для целей класса я должен использовать язык программирования NXT. Чтобы двигаться, робот должен следовать с твердой черной линией.

Если робот теряет линию, я смотрю ее влево в течение 1 секунды, или до тех пор, пока он не достигнет черной линии. Если линия не найдена, она сканирует вправо в течение 2 секунд, поэтому исходное положение достигается, то еще 1 секунда или вращение достигается.

У меня настроен цикл, чтобы, если линия не была найдена, робот продолжает двигаться. Это работает в течение всего 1 второго периода времени. Если линия найдена, движение останавливается, но целая секунда все еще должна завершить. В конечном счете это означает, что моя программа работает отлично, но очень медленно.

TL; DR есть ли способ сделать петли с двумя условиями выхода в среде программирования Lego Mindstorm? Либо через 1 секунду прошло, либо датчик получает желаемый вход?

Это было полезно?

Решение 3

Mindstorms не имеет или функционирует.

Решение состоит в том, чтобы создать переменную выхода, а затем иметь два оператора переключения. В приведенном выше примере у меня был один оператор переключения с таймером, а другой с выходом датчика. Установите переменную выхода на FALSE, затем внутри цикла времени запустите, пока переменная выхода не станет истинной.

Если таймер истекает, установите переменную на True, в противном случае игнорируйте переменную выхода. Сделайте то же самое с выходом датчика.

Это грязное и довольно длинное решение, но оно идеально решает проблему в довольно ограниченной системе Lego Mindstorms.

Другие советы

Последние два блока - это логические блоки, установленные для «или». В этом случае наблюдаются 3 датчика. Если кто -то споткнулся, программа выпадает из петли.

.

Это с страницы 86 http://www.hightechkids.org/sites/default/files/coachinglibrary/fll_programming_101_nxt_g.pdf

То, что вы могли бы сделать, это сделать тайм -аут короче (например, на 100 мс) и остановиться, если линия найдена или петля работала 10 раз.

Я не эксперт по Mindstorms, но я ожидаю, что он будет иметь или функционировать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top