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

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

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

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

 

 

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

РАЗДЕЛЫ

А. Считывание статуса XYZ ускорения Wiimote

В. Считывание состояния кнопки Wiimote

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

• NI LabVIEW c библиотекой Nintendo Wiimote Брайана Пика

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

•  Nintendo Wiimote

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

ЧАСТЬ A: СЧИТЫВАНИЕ СТАТУСА XYZ УСКОРЕНИЯ WIIMOTE

1. Откройте LabVIEW 8.6 путем нажатия Windows Start >> All Programs >> National Instruments LabVIEW 8.6. Затем запустите новый проект (New>> Blank VI).

2. В функциональной палитре выберите Connectivity>>.NET>>Constructor Node и поместите в блок-схему. Появится всплывающее окно с просьбой выбрать .NET Constructor. Щелкните по столбцу Assembly, в контекстном меню прокрутите вниз полосу прокрутки и выберите WiimoteLib(1.6.0.0).

3. В столбце Objects, прокрутив вниз полосу прокрутки, выберите Wiimote. Затем нажмите OK.

4. В функциональной палитре выберите Connectivity>>.NET>>Invoke Node (.NET) и поместите рядом с Constructor Node в блок-схеме. Соедините reference и error информацию между узлами Constructor Node и Invoke Node. Щелкните по method узла Invoke Node и выберите Connect() в контекстном меню.

5. В функциональной палитре выберите Connectivity>>.NET>>Invoke Node (.NET) и поместите рядом с предыдущим Invoke Node в блок-схеме. Соедините reference и error информацию между этими двумя узлами. Щелкните по method узла Invoke Node и выберите SetReportType(InputReport type Boolean continuous) в контекстном меню.

6. Щелкните правой кнопкой мыши по первому входному порту этого Node, то есть по type, и выберите Create>>Constant в контекстном меню.

7. Измените постоянную величину с Status на IRAccel. Щелкните правой кнопкой мыши по второму входному порту того же самого Node, то есть по continuous, и выберите Create>>Constant в контекстном меню. Измените постоянную величину с False на True, нажав  на символ константы T.

8. В функциональной палитре  выберите Connectivity>>.NET>>Property Node (.NET) и поместите рядом с предыдущим узлом Invoke Node в блок-схему. Соедините reference и error информацию между этими двумя узлами. Щелкните по Property узла Property Node и выберите WiimoteState в контекстном меню.

9. В функциональной палитре выберите Connectivity>>.NET>>Property Node (.NET) и поместите рядом с предыдущим узлом Property Node на блок-схеме. Соедините reference информацию выходного порта предыдущего Property Node, то есть WiimoteState, и error информацию между этими двумя узлами. Щелкните по Property узла Property Node и выберите AccelState в контекстном меню.

10. В функциональной палитре выберите Connectivity>>.NET>>Property Node (.NET) и поместите рядом с предыдущим узлом Property Node в блок-схеме. Соедините reference информацию выходного порта предыдущего Property Node, то есть AccelState, и error информацию между этими двумя узлами. Щелкните по Property узла Property Node и выберите Values в контекстном меню.

11. В функциональной палитре выберите Connectivity>>.NET>>Property Node (.NET) и поместите рядом с предыдущим узлом Property Node в блок-схеме. Соедините reference информацию выходного порта предыдущего Property Node, то есть Values и и error информацию между этими двумя узлами. Переместите курсор на край кнопки Node. Вы увидите пару Синих Квадратов сверху и по краям кнопки значка. Потяните вниз край кнопки, чтобы получить три свойства Property в узле Node. Щелкните по каждому Property этого узла и выберите X, Y, и Z в контекстном меню соответственно.

12. Создайте индикаторы для выводов узла Point3F Property Node, щелкая правой кнопкой мыши по каждому выходному порту и выбирая Create>>Indicator в контекстном меню соответственно.

13. В функциональной палитре выберите Connectivity>>.NET>>Invoke Node (.NET) и поместите рядом с предыдущим узлом Property Node в блок-схеме. Соедините reference информацию узла Wiimote Property Node и error информацию узла Point3F Property Node. Щелкните по method узла Invoke Node и выберите Disconnect() в контекстном меню.

14. В функциональной палитре выберите Connectivity>>.NET>>Close Reference и поместите рядом с предыдущим узлом Invoke Node в блок-схему. Соедините reference и error информацию между этими двумя значками.

15. Щелкните правой кнопкой мыши по выходному порту VI значка Close Reference и выберите Dialog & User Interface Palette>>Simple Error Handler, поместите его рядом с VI значком Close Reference в блок-схеме. Соедините error информацию между этими двумя значками.

16. Сохраните код для дальнейшего использования.

Добавьте в код структуру цикла с условием продолжения для обновления считывания состояния ускорения Wiimote.

ЧАСТЬ B: СЧИТЫВАНИЕ СОСТОЯНИЯ КНОПКИ WIIMOTE

1. Откройте файл, созданный в части A. Откройте окно диаграмм. Переместите курсор на край кнопки WiimoteState Property Node. Вы увидите пару Синих Квадратов сверху и и по краям кнопки. Потяните вниз край кнопки, чтобы получить другой набор свойств Property в узле Node. Щелкните по второму Property узла WiimoteState Property Node и измените в контекстном меню свойство с BalanceBoardState на ButtonState.

2. В функциональной палитре выберите Connectivity>>.NET>>Property Node (.NET) и поместите рядом с узлом WiimoteState Property Node в блок-схеме. Соедините reference информацию второго выходного порта WiimoteState Property Node, то есть ButtonState, и error информацию между этими двумя узлами. Щелкните по Property узла ButtonState Property Node и выберите A в контекстном меню.

3. Щелкните правой кнопкой мыши по выходному порту A узла ButtonState Property Node. Выберите в контекстном меню Create >> Indicator для получения индикатора на фронтальной панели, показывающего статус кнопки A Wiimote.

4. Чтобы объединить error связи в программе, щелкните правой кнопкой мыши по порту вывода ошибок узла ButtonState Property Node. Выберите в контекстном меню Dialog & User Interface Palette>>Merge Errors и поместите в блок-схему.

5. Удалите error связь между VI значками Simple Error Handler и Close Reference. Соедините error выводы иконок Simple Error Handler и ButtonState Property Node с вводами VI  значка Merge Errors соответственно. И соедините error вывод иконки Merge Errors с вводом значка Simple Error Handler.



6. Теперь у Вас есть код, который может считывать состояние одной кнопки и статус XYZ ускорения Wiimote.

Добавьте в код структуру цикла с условием продолжения для обновления считывания состояния кнопки Wiimote. (Не забудьте добавить в структуре цикла задержку на 40 мс).

Измените код так, чтобы можно было считывать статус больше, чем одной, кнопки.

Объедините коды блока управления приводом NXT и Wiimote (лабораторные практикумы №3 и №4), чтобы позволить пользователям использовать Wiimote для управления мотором NXT. (Подсказка: используйте значение состояния ускорения Wiimote как входное значение параметра мощности мотора).

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

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

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

Наверх

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

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

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

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

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

Read more

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

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

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

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

Read more

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

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

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

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

Read more

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

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

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

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

Read more

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

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

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

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

Read more