Mindstorm NXT Программирование
-
27-10-2019 - |
Вопрос
Я разрабатываю робота для инженерного класса. Для целей класса я должен использовать язык программирования 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, но я ожидаю, что он будет иметь или функционировать.