Место для баннера, продается :)

Лабораторный практикум №3 по LEGO MINDSTORMS NXT

Лабораторный практикум №3 по LEGO MINDSTORMS NXT Лабораторный практикум №3 по LEGO MINDSTORMS NXT

Целью данного урока является написание кода, с помощью которого можно будет считывать состояние мотора робота NXT и заставить моторы двигаться, используя инструментарий LabVIEW NXT.

 

 

Примечание: Перед началом работы выполните инструкции из Лабораторного практикума №1, чтобы убедиться в возможности соединения робота NXT с PC через Bluetooth.

РАЗДЕЛЫ

А. Считывание состояния мотора робота NXT

В. Написание кода для управления моторами робота NXT


ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

• Lego Mindstorms NXT

• NI LabVIEW с Lego NXT инструментарием

АППАРАТНЫЕ СРЕДСТВА

•  Lego Mindstorms NXT Tribot

• Ноутбук или компьютер с D-Link Bluetooth DBT-120 аппаратным ключом

 

ЧАСТЬ A: СЧИТЫВАНИЕ СОСТОЯНИЯ МОТОРА РОБОТА NXT

1. Для экономии времени будем работать не с нуля, а изменим код из предыдущего лабораторного практикума №2. Откройте файл, который создан в части В. Удалите весь код в структуре цикла с условием продолжения, кроме кнопки STOP.

2. Выберите NXT Direct Commands>>  Output>>Get Output Values и поместите в структуру цикла с условием продолжения. Соедините информацию об NXT Object и error информацию этих VI значков.

3. Щелкните правой кнопкой мыши по второму входному порту VI иконки Get Output Values, то есть Output Port (Port A), и выберите Create>>Control в контекстном меню. По умолчанию мотор A подключится к выходному порту А NXT-блока. Пользователи могут считывать различные состояния мотора, изменяя значения настроек.

4. Щелкните правой кнопкой мыши по второму выходному порту VI иконки Get Output Values, то есть Output Port Info, и выберите Create>>Indicator в контекстном меню.

5. Соедините информацию об NXT Object и error информацию VI иконок Get Output Values и Destroy NXTObject.

6. Теперь можно запустить программу и получить обновляющееся состояние мотора. Повращайте мотор руками и наблюдайте за значениями индикатора на фронтальной панели.

7. Для  улучшения кода таким образом, чтобы программа останавливала выполнение цикла, если в процессе возникала бы какая-нибудь ошибка, щелкните правой кнопкой мыши по error соединению в структуре цикла с условием продолжения. Выберите Cluster, Class, & Variant Palette>>Unbundle By Name в контекстном меню. Поместите его в структуру цикла и проведите к нему error связь.

8. Щелкните правой кнопкой мыши по зеленой штриховой линии связи в структуре цикла. Выберите Boolean Palette>>Or в контекстном меню и поместите в структуру цикла с условием продолжения.

9. Удалите зеленую штриховую линию связи и повторно соедините провода, как показано ниже:

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

11. Добавьте в структуру цикла задержку в 40 мс для предотвращения занимания кодом всего ресурса ЦП. Щелкните правой кнопкой мыши по любому пустому месту в окне даиграмм, выберите Programming>>Timing>>Wait Until Next ms Multiple в контекстном меню и поместите в структуре цикла с условием продолжения. Щелкните правой кнопкой мыши по входному порту этого значка задержки и выберите Create>>Constant. Введите значение 40.

12. Написание кода для считывания состояния мотора закончено. Фронтальная панель должна выглядеть подобным образом:

Измените код так, чтобы последовательно считывать состояния моторов A, B, C в цикле с условием продолжения.

ЧАСТЬ B: УПРАВЛЕНИЕ МОТОРАМИ РОБОТА NXT

1. Откройте файл, созданный в части A. Удалите связи между VI иконками Get Output Values и Destroy NXTObject. Выберите и поместите следующие два VI значка в структуру цикла с условием продолжения из палитры функций NXT Direct Commands>>Output>>Set Output Values и NXT Direct Commands>>Utilities>>Keep Alive. Выберите NXT Direct Commands>>Output>>Motor Stop и поместите его вне цикла. Соедините эти VI значки следующим образом:

2. Соедините иконку Output Port (Port A) со значками Set Output Values и Motor Stop так:

3. Щелкните правой кнопкой мыши по третьему входному порту VI значка Set Output Values, то есть Output Port Info и выберите Create>>Control в контекстном меню.

4. Переименуйте Output Port Info 2 в Set Output Port Info. Переименуйте индикатор Output Port Info в Read Output Port Info.

5. Вид фронтальной панели должен выглядеть следующим образом:

6. Нажмите кнопку Run на панели инструментов и обнаружите, что мотор не будет двигаться (поскольку для него не задана соответствующая установка в элементе Set Output Port Info).

7. Щелкните по элементу управления RunState и поменяйте значение с RUN_STATE_IDLE на RUN_STATE_RUNNING.

8. Щелкните по элементу управления Mode и измените значение с COAST на MOTOR ON | BRAKE | REGULATED.

9. Нажмите на элемент Power и поменяйте значение от 0 до 10.

10. Из меню окон выберите Edit>>Make Current Values Default.

11. Сохраните код для будущего использования. Теперь можно нажать кнопку Run на панели инструментов и увидеть, что мотор вращается до тех пор, пока не нажмете кнопку STOP.

Измените код таким образом, чтобы одновременно управлять моторами B и C.

  • Оцените материал
    (0 голосов)
  • Опубликовано в NXT 2
  • Прочитано 15277 раз

Оставить комментарий

Убедитесь, что вы вводите (*) необходимую информацию, где нужно
HTML-коды запрещены

Наверх

Последние новости от LEGO Mindstorms NXT 2

Лабораторный практик…

29-04-2013 Hits:3302 NXT 2 Capitano - avatar Capitano

Лабораторный практикум №4 по LEGO MINDSTORMS NXT

Целью данного урока является написание кода для подключения Wiimote по Bluetooth при помощи LabVIEW. Приведен пример написания кода для считывания состояния одной кнопки и статуса XYZ ускорения Wiimote.

Read more

Лабораторный практик…

24-04-2013 Hits:15278 NXT 2 Capitano - avatar Capitano

Лабораторный практикум №3 по LEGO MINDSTORMS NXT

Целью данного урока является написание кода, с помощью которого можно будет считывать состояние мотора робота NXT и заставить моторы двигаться, используя инструментарий LabVIEW NXT.

Read more

Лабораторный практик…

22-04-2013 Hits:3449 NXT 2 Capitano - avatar Capitano

Лабораторный практикум №2 по LEGO MINDSTORMS NXT

Целью данного урока является изучение основ среды программирования LabVIEW и получение практических навыков программирования с использованием инструментария LabVIEW NXT. Приведен пример написания кодов для считывания показаний датчиков на NXT-блоке.

Read more

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

Мишени для тренировок…

01-12-2016 Hits:3222 Спортивная стрельба Capitano - avatar Capitano

Каталог мишеней для тренировок на основе "Официальной мишени для ПТ" Все файлы в формате PDF, при печати использовать реальный размер!

Read more

17.10.2015г. Чемпионат по Fi…

02-10-2015 Hits:1601 Спортивная стрельба Capitano - avatar Capitano

17.10.2015г. Чемпионат по Field Target. Киев.Украина

Приглашаются все желающие, 17 октября 2015г, принять участие в открытых соревнованиях по Field Target, в классах ППП и ПСП до 16,3дж в калибре 4,5мм. 

Read more