Почему эта программа работает в LabView, когда она нацелена на компьютер, а не на NXT? - PullRequest
0 голосов
/ 06 декабря 2011

У меня есть программа, написанная в Labview для моего LEGO Mindstorms NXT 2.0. Когда цель установлена ​​на компьютере, программа работает просто отлично. Однако, когда я устанавливаю цель на NXT, программа не работает так же, как при нацеливании на компьютер.

Программа заставляет робота двигаться вперед, пока он не окажется на расстоянии 30 сантиметров от объекта, который обнаруживается ультразвуковым датчиком NXT. Тогда робот остановится. Если объект перемещается и в пределах 30 сантиметров от ультразвукового датчика NXT нет объекта, робот снова будет двигаться вперед, пока он снова не окажется на расстоянии 30 сантиметров от объекта. Затем он остановится.

Это работает, когда цель установлена ​​на компьютере в Labview, но не на NXT. Когда установлено значение NXT, как только первый объект обнаружен, он остановится. Но если объект удален и в пределах 30 сантиметров от ультразвукового датчика больше нет объектов, робот останется неподвижным и не будет двигаться вперед.

Вот скриншот блок-схемы: block diagram

Вот ссылка на исходный код программы.

Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

1 голос
/ 07 декабря 2011

Я не вижу ошибки в вашем коде, но при развертывании на цель NXT я бы сделал цикл бесконечным (заменил Stop на False-константу) и удалил график формы сигнала.Вам не нужны они в NXT.

1 голос
/ 08 декабря 2011

Я исправил это, добавив блок ожидания 200 мс, чтобы замедлить NXT.Это сработало, казалось, что кирпич опережал себя.

1 голос
/ 07 декабря 2011

Мой опыт работы с NXT очень ограничен, но я бы посоветовал вам использовать строковые VI для отображения некоторых отладочных данных на экране NXT (таких как i, расстояние и т. Д.). Это позволит вам определить, где находится программа, и может помочь вам найти проблему.

В качестве побочной точки, в LV обычно не рекомендуется иметь цикл, который не имеет чего-либо, контролирующего скорость его выполнения. Это может отличаться для кода, работающего на NXT, но я все равно рекомендую добавить в цикл простое ожидание.

...