Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Программируем микрокомпьютер NXT в LabVIEW

Покупка
Артикул: 616106.01.99
К покупке доступен более свежий выпуск Перейти
Учебник по программированию микрокомпьютера NXT в LabVIEW написан специально для школьников. Эта книга может быть рекомендована для изучения темы «Алгоритмизация и объектно-ориентированное программирование» учащимися третей ступени общего образования в старшей школе в рамках федерального базисного учебного плана. Она может быть использована для работы в общеобразовательных классах и классах естественно-математического и информационно-технологического профиля. Структура книги во многом схожа с тематическим планированием изучения языка программирования в курсе школьного предмета «Информатика». Содержание книги поясняется многочисленными рисунками, примерами и упражнениями. На прилагаемом к книге DVD содержатся среда NI LabVIEW Education Edition и примеры виртуальных приборов.
Белиовская, Л. Г. Программируем микрокомпьютер NXT в LabVIEW [Электронный ресурс] / Л. Г. Белиовская, А. Е. Белиовский. - Москва : ДМК Пресс, 2010. - 280 с.: ил. - ISBN 978-5-94074-594-5. - Текст : электронный. - URL: https://znanium.com/catalog/product/408534 (дата обращения: 02.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Белиовская Л.Г.
Белиовский А.Е.

Программируем
микрокомпьютер NXT
 в LabVIEW

Москва, 2010

УДК 621.38
ББК 
32.973.26-108.2

 Б43

Белиовская Л.Г., Белиовский А.Е.

Б43 Программируем микрокомпьютер NXT в LabVIEW. – М.: ДМК 

Пресс; 2010. – 280 с.: ил. + DVD. 

ISBN 978-5-94074-594-5 

Учебник по программированию микрокомпьютера NXT в LabVIEW 

написан специально для школьников. Эта книга может быть рекомендована для изучения темы «Алгоритмизация и объектно-ориентированное программирование» учащимися третей ступени общего 
образования в старшей школе в рамках федерального базисного 
учебного плана. Она может быть использована для работы в общеобразовательных классах и классах естественно-математического 
и информационно-технологического профиля. Структура книги во 
многом схожа с тематическим планированием изучения языка программирования в курсе школьного предмета «Информатика». Содержание книги поясняется многочисленными рисунками, примерами и 
упражнениями. 

На прилагаемом к книге DVD содержатся среда NI LabVIEW 

Education Edition и примеры виртуальных приборов.

ББК 32.973.26-108.2

УДК 621.38 

Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то 

ни было форме и какими бы то ни было средствами без письменного разрешения владельцев 
авторских прав.

Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность 

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

 
© Белиовская Л.Г., Белиовский А.Е., 2010

ISBN 978-5-94074-594-5 (рус.) 
© Издание, оформление ДМК Пресс, 2010

ÑÎÄÅÐÆÀÍÈÅ

Предисловие .......................................................................3

С чего начать  ............................................................................................11

Урок 1. Некоторые сведения о NXT ..................................13
В этом уроке даются основные представления о том, как устроен 
NXT внутри. Рассказывается о возможных сценариях, стратегиях 
программирования NXT в LabVIEW. Представлен ряд датчиков, с 
которыми будем работать далее, а также перечислены датчики 
сторонних фирм.
A. Как устроен NXT внутри .............................................................................. 13
B. Датчики и мотор, с которыми будем работать  ...................................... 16
C. Датчики сторонних фирм для NXT  ............................................................ 17

Урок 2. Введение в LabVIEW ...........................................21
В этом уроке даются основные представления о программной среде 
LabVIEW.
A. Программная среда LabVIEW ................................................................... 21
B. Виртуальные приборы (ВП) ........................................................................ .22
C. Пример оформления ВП в среде LabVIEW ............................................ 24

Урок 3. Создание ВП  ..................................................... 40
В этом уроке более подробно представлены основы создания и 
редактирования ВП. Материал данного урока может стать подробным 
справочным материалом для знакомства с инструментальными 
панелями и палитрами LabVIEW. К уроку можно обращаться по 
мере необходимости использования инструментария LabVIEW. Для 
быстрого старта этот урок можно пропустить.
A. Инструментальная панель лицевой панели  ........................................... 40
B. Компоненты ВП  ............................................................................................. 49

Содержание

C. Создание ВП.................................................................................................. 53
D. Редактирование ВП ..................................................................................... 54
E. Упражнение 3-1. ВП Редактирование ...................................................... 61

Урок 4. Простые программы для NXT.......................... .......66
В этом уроке рассказывается, как настроить NXT для подготовки его 
работы с LabVIEW. Здесь рассмотрены два примера программ для 
NXT, работающего автономно.
A. Настроим NXT для работы с LabVIEW ....................................... ..............67
B. Простые программы для NXT в среде LabVIEW......... ............................ 69
Упражнение 4-1. Вывод информации на дисплей NXT ........................ 69
Упражнение 4-2. Движение робота по простой программе ............. 73

Урок 5. Данные в LabVIEW .............................................. 78
В этом уроке рассматриваются  основные типы данных. Обсуждается 
вопрос соединения различных терминалов данных, установки точности 
и  формата представления числовых данных. Подробнее изучается 
логический тип данных.
A. Последовательность обработки данных в LabVIEW ............................ 78
B. Типы  и проводники данных ......................................................................... 80
C. Упражнение 5-1. ВП с данными логического типа  ............................... 83
D. Упражнение 5-2. ВП с данными логического типа для NXT ................ 86

Урок 6. Алгоритмическая структура «цикл» While                      
 в LabVIEW ................................................................... 90
В этом уроке рассмотрена структура цикл While (по условию), 
разобран простой пример программы для робота с бесконечным 
циклом, разобран пример программы с циклом While (по условию), с 
установкой диапазона изменения данных и количества знаков после 
запятой в данных.
A. Использование цикла While (по условию) бесконечный цикл............. 91
Упражнение 6-1. ВП отслеживания одиночного показания               
энкодера мотора ........................................................................................ 91
Упражнение 6-2. ВП отслеживания показания энкодера                   
мотора в режиме online ............................................................................. 92
B. Использование цикла While (по условию) ....................................95
C. Упражнение 6-3. ВП использования графика диаграмм для          
отображения потока данных. Отслеживание показания датчика    

Содержание

звука в режиме online ................................................................................... 98
D. Упражнение 6-4. ВП для робота следующего заданной                   
траектории .................................................................................................101 
Инструкция, как загрузить программу с РС на NXT ................................105

Урок 7. Алгоритмическая структура «цикл» со счетчиком. 
Доступ к значениям предыдущих итераций                        
 цикла в LabVIEW ........................................................ 110
Структура цикл While (по условию) подробно была рассмотрена 
в уроке 6. В этом уроке рассмотрены цикл For (с фиксированным 
числом итераций), а также функции доступа к значениям предыдущих 
итераций. В этом уроке познакомимся с функцией Shift Register 
(сдвиговый регистр) и со стеком сдвиговых регистров и упомянем о 
Feedback Node (узле обратной связи).
A. Использование цикла For (с фиксированным числом          
     итераций) ......................................................................................................111
B. Организация доступа к значениям предыдущей 
     итерации цикла ...........................................................................................115
Упражнение 7-1. Подсчет суммы цифр в записи целого числа .......117
Упражнение 7-2. Радар для определения скорости ..........................120
C. Организация доступа к значениям предыдущих итераций                 
цикла .............................................................................................................124 
Упражнение 7-3. Использование графика диаграмм для                   
отображения нескольких потоков данных. ВП отслеживания          
показания датчика звука и «бегущего среднего» в режиме 
online .............................................................................................................126

Урок 8. Основные типы структур. Логическая структура    
«выбор» .................................................................... 130
В этом уроке рассматриваются основные типы структур LabVIEW при 
программировании NXT. Изучаются подробно логическая функция 
«выбор» и логическая структура «выбор». Приведены примеры 
использования этих структур.
A. Основные типы структур. Структуры для NXT ......................................130
B. Логическая функция «выбор» ...................................................................133
Упражнение 8-1. ВП деления чисел .......................................................134
C. Логическая структура Case «выбор» .....................................................136
Упражнение 8-2. ВП подсчета числа нажатий датчика касания .....138
D. Использование вложенных структур Case «выбор» ...........................142 
Упражнение 8-3. Робот обходит препятствия, получая сигналы от 
двух датчиков касания ...............................................................................142

Содержание

Урок 9. Кластеры ........................................................ 148
В этом уроке рассказывается об объединении элементов различных 
типов данных в кластеры. Описано, как создать кластер из элементов 
управления или отображения данных, каков порядок элементов в 
кластере. Описана процедура создания кластера констант.
A. Что такое кластеры ....................................................................................148
B. Использование функций работы с кластерами ...................................151
C. Упражнение 9-1. ВП работы с кластерами на NXT ............................155

Урок 10. Строки и файловый ввод/вывод ........................ 162
В этом уроке рассказывается о функциях работы с файлами, которые 
обеспечивают ввод данных в файл и вывод данных из файла. 
Будем рассматривать работу с файлами, которые расположены 
непосредственно на NXT, и с файлами с данными на РС.
A. Строки. Создание строковых элементов управления и                    
отображения данных .................................................................................162
B. Функции работы со строками ..................................................................164
Упражнение 10-1. ВП компоновки строки для NXT ............................165
C. Функции файлового ввода на NXT ..............................................168
Упражнение 10-2. Запись значений в файл на NXT ...........................170
D. Функции файлового ввода/вывода в  LabVIEW ..................................173
Упражнение 10-3. Запись значений в файл на РС .............................176
Упражнение 10-4. Чтение из файла и запись в файл ........................177

Урок 11. Локальные переменные .................................. 181
В этом уроке продемонстрируем, как создавать, сохранять и 
манипулировать локальными переменными. Опишем, как сделать 
элементы управления и индикации более гибкими и удобными. 
A. Локальные переменные ............................................................................181
Упражнение 11-1. Использование локальной переменной для        
управления параллельными циклами ....................................................183
B. Упражнение 11-2. Счетчик для голосования на NXT ..........................186
C. Упражнение 11-3. Система автоматической регистрации                 
результатов для соревнований роботов ..............................................189
D. Упражнение 11-4. Программа для игры «Тир» ....................................194

Урок 12. Передача данных между NXT ............................ 198
В этом уроке рассказывается о возможности организации процесса 
обмена данных между двумя или несколькими NXT. Описаны примеры 

Содержание

передачи показаний датчиков от одного NXT другому. Отображение 
результатов исследования оформляется с помощью многостраничного 
контейнера Tab. 
A. Связь компьютера с несколькими NXT ...................................................198
B. Упражнение 12-1. Совместная работа двух NXT ............................... 201
C. Упражнение 12-2. Совместная работа двух NXT.                              
 Графопостроитель ....................................................................................207

Урок 13. Создание подпрограмм ВП ............................... 214
В этом уроке представлена последовательность действий по 
редактированию иконки ВП, а также настройки соединительной 
панели (области полей ввода/вывода данных), что позволяет 
использовать виртуальный прибор как подпрограмму в других ВП.
A. Модульный принцип построения программ. Узел Формула ............214 
Упражнение 13-1. ВП содержит узлы формул ....................................217
B. Подпрограмма ВП. Создание иконки ВП и настройка                          
соединительной панели ............................................................................219
Упражнение 13-2. Управление роботом-сортировщиком с             
тремя степенями свободы ........................................................................225
C. Использование виртуального прибора в качестве                              
подпрограммы ВП ......................................................................................232 
Упражнение 13-3. Панель управления для робота-сортиров-       
щика ............................................................................................................. 232
D. Превращение выделенной секции блок-диаграммы ВП в подпрограмму ВП ...................................................................................................236

Урок 14. Структура данных массивы ................................237
В этом уроке рассказывается об объединении элементов одного типа 
данных в массивы.
A. Типы и объявление массивов ....................................................................237
B. Создание массивов с помощью цикла .................................................. 238
Упражнение 14-1. Запись показаний датчика в числовой                
массив ...........................................................................................................243
C. Двумерные массивы и вложенные циклы ...............................................245
D. Использование функций работы с массивами ....................................247
E. Полиморфизм...............................................................................................248

Содержание

Урок 15. Графические возможности языка....................... 251
В этом уроке рассмотрены способы визуализации данных с помощью 
графика с постоянным шагом (Waveform Graph) и двухкоординатного графика (XY graph). В общем случае графики диаграмм следует 
использовать для вывода на экран скалярных точек, а графики 
Waveform Graph – для вывода массивов данных.
A. Использование графика с постоянным шагом ....................................252 
Упражнение 15-1. Вывод массива показаний датчика света              
на график .....................................................................................................253
Упражнение 15-2. Вывод нескольких графиков ..................................255
B. Двухкоординатный график для отображения данных .........................258
Упражнение 15-3. ВП графика окружности ........................................258
Упражнение 15-4. ВП отображения нескольких зависимостей          
на одной области графика ......................................................................262

Урок 16. Режим прямого обмена ....................................265
В этом уроке рассказывается о режиме прямого обмена между 
компьютером РС и NXT. Описан пример синхронизированной работы 
компьютера РС одновременно с несколькими NXT.
A. Режим прямого обмена .............................................................................265
Упражнение 16-1. Запускаем программу на NXT из ВП                       
на РС .............................................................................................................267
B. Упражнение 16-2. Совместная работа четырех NXT, управляемых 
компьютером РС ........................................................................................270
C. Упражнение 16-3. Синхронизированная работа четырех NXT,        
управляемых компьютером РС ...............................................................274
Заключение .....................................................................277

Ïðåäèñëîâèå

Сейчас вы держите в руках замечательную книгу, которая поможет 
вам сделать первые шаги по интересному, трудному, но очень увлекательному пути объектно-ориентированного программирования. Эта 
книга написана для начинающих, для самых начинающих – для школьников. Мы будем постигать основы программирования на LabVIEW, 
используя замечательный микрокомпьютер NXT с датчиками и активными устройствами, из которых получается робот, автономное, 
мобильное устройство, работающее по программе, которую мы составим на языке LabVIEW. Нам повезло. Из LEGO MINDSTORMS 
NXT оборудования можно создать реальное устройство, которое 
будет действительно выполнять наши задания.
Сразу внесем ясность. Нашей задачей не является научить строить 
роботы. Конструировать научить довольно трудно. Каждый идет 
своей дорогой, у каждого есть свои предпочтительные узлы крепления конструкции и этапы создания самой конструкции. Многому 
можно научиться только многократным переделыванием конструкции. Некоторые, таланты, видят конструкцию сразу. По многолетнему опыту работы с ребятами – робототехниками разных возрастов, 
можем сделать вывод: сборка модели по инструкции отвергается 
в 90% случаев. Молодые амбициозны, у них нет авторитетов. Они 
уверены в себе и считают, что сделают все сами лучше. Поэтому в 
книге приведены лишь каркасы моделей и не описывается, как их 
собрать. Наша задача – научить тому, как заставить роботов выполнять задания и упражнения, как написать программу. Написание 
программ – процесс творческий. И для одного и того же задания 
можно составить несколько вариантов работающих программ. Но, 
освоив принципы программирования, разобрав примеры, можно 

Предисловие

самому пуститься в увлекательное творчество и что-то упростить, 
быть может, или придумать свой, нетривиальный код.
Язык LabVIEW не похож на другие известные языки программирования. У него графический интерфейс. И все наши программы – рисунки-схемы, приводящие в движение роботов.
Что же это за язык – LabVIEW? Среда LabVIEW совершенствуется уже почти двадцать лет. В соответствии со своим названием 
LabVIEW, или Laboratory Virtual Instrument Engineering Workbench 
(среда разработки виртуальных приборов), первоначально использовалась в исследовательских лабораториях. В настоящее время наряду с этим традиционным применением в фундаментальной науке 
она используется и в отраслевых промышленных лабораториях и 
все более широко в образовании – в университетских лабораторных 
практикумах. А такое свойство LabVIEW, как  возможность дистанционного управления экспериментом (по корпоративной сети, или 
через Интекрнет), делает эти практикумы теоретически общедоступными, что, в свою очередь, радикально увеличивает доступность 
качественного образования.
Замечательной особенностью этой среды является то, что основной 
идеей процесса создания программ будет не КАК – как описать переменные, согласовать типы, описать и инициализировать окошки и 
задать их свойства и т.д. и т.п. И за всей этой подготовительной работой 
и многочисленными сложностями, с ней связанными, уже и забыл, что 
хотел ПРОСТО ВЫВЕСТИ ЗНАЧЕНИЕ на экран в удобной форме. 
Нашей основной идеей программирования станет – ЧТО МЫ ХОТИМ 
ПОЛУЧИТЬ. Да, все и сразу. Никакой долгой работы и труда, чтоб 
получить ту рыбку, золотую рыбку из пруда. А если еще потратить 
совсем немного сил, чтоб всю нашу работу раскрасить и оформить, как 
душе угодно, то процесс создания программ совсем будет в радость. 
В этом месте уже возникает у многих ухмылка, опять адаптация под 
детей: «рисовалки», наглядность, отсутствие «мохнатого» кода, так 
радующего глаз профессионалов-программистов. Нет, а управление 
Марсоходом, не хотите? В 1997 году, когда NASA рассекретила свою 
программу SOJOURNER ROVER’S, выяснилось, что для обеспечения ориентации, приземления и функционирования космических 
аппаратов применялась программа LabVIEW National Instruments. 
Распространение LabVIEW лавинообразно идет по тем направле
Предисловие

ниям, где требуются сбор сложно структурированной информации, 
ее сложная обработка и управление системами на основании этих 
обработанных данных. Раньше это были космос, подводные исследования, военные применения, научные лаборатории, а теперь сюда 
прибавились медицина, безлюдные полупроводниковые технологии 
и многие другие, например анализ размеров капелек жира и белка 
в молоке на молочном заводе  или управление атомным реактором 
– все программы написаны в среде LabVIEW – инженерной среде 
программирования. Инженер не должен задумываться, как составить 
программу, его задача – обеспечить выполнение сложного процесса. 
Работа в нашем случае с простыми периферийными устройствами: 
датчиками, моторами, лампочками, гудками, – крайне упрощена. Для 
инженера важны показание прибора и характеристики, которые надо 
подать на активное устройство, например, направление вращения 
и мощность мотора. А вот про шины, регистры, адресацию и т.п. 
думать совсем не надо. Вся наша работа будет построена по принципу KISS – «Keep it simple, stupid!» А само название этого языка 
созвучно с Love YOU, и непосвященным кажется очень заманчивым такой бренд. Эта среда программирования, сама ее концепция 
имеет настолько дружественный интерфейс, что возможно даже 
говорить о более глубокой симпатии.

Ñ ÷åãî íà÷àòü? 

Эта книга поможет научиться программировать на LabVIEW, если 
даже нет оборудования. Задачи подобного рода включены в книгу.
1. Прежде всего надо установить на компьютере среду NI 
LabVIEW Education Edition. Это версия среды, предназначенная  для учебных заведений и включающая все необходимые компоненты для освоения азов программирования на 
LabVIEW. Диск прилагается к учебнику. 
2. Для счастливых обладателей оборудования LEGO 
MINDSTORMS NXT, в которое входят микрокомпьютер 
NXT, моторы и датчики, есть возможность расширить круг 
решаемых задач. Быть конструкторами экстра-класса совсем 
не обязательно, для наших опытов нам понадобится только 
умение закрепить датчики на самоходной тележке робота, 
основная деталь которой – микрокомпьютер NXT.

Предисловие

3. Чтобы оживить наше оборудование, не надо предпринимать 
дополнительных шагов. Все необходимые блоки входят в 
состав данной версии. В этой версии предусмотрена возможность программировать роботов для конструкторов TETTIX 
и работать с оборудованием Verner Sensor DAQ.
После этого можно начинать программировать.

Óðîê 1

Íåêîòîðûå ñâåäåíèÿ î NXT

В этом уроке даются основные представления о том, как устроен 
NXT внутри. 
Представлен ряд датчиков, с которыми будем работать далее, а 
также перечислены датчики сторонних фирм.

 ýòîì óðîêå èçëîæåíû âîïðîñû:

A. Как устроен NXT внутри? 
B. Датчики и мотор, с которыми будем работать.
C. Датчики сторонних фирм для NXT.

A. Êàê óñòðîåí NXT âíóòðè 

Микрокомпьютер NXT имеет процессор AT91SAM7S256 архитектуры ARM7, производящийся фирмой ATMEL www.atmel.com. Это 
младшая модель из ряда процессоров ARM, например на ARM 11 
создан всемирно известный i-Phone.
По лицензии ARM 250 фирм по всему миру выпускают 80% процессоров, используемых в видео- и аудиоустройствах, смартфонах, 
устройствах ввода и вывода информации в науке и на производстве. 
Потребность в специалистах по программированию подобных процессоров весьма велика. Последние модели GPS-навигаторов высокого пространственного разрешения некоторых фирм используют 
ARM7 ядро.

Урок 1. Некоторые сведения о NXT

Базовый узел NXT представляет собой сборку с выходящими 
наружу 4 и 3 разъемами типа RJ12 на 6 ламелей, 4 кнопками, графическим черно-белым дисплеем 64×100 пикселей, USB-разъемом, 
объемом для 6 батареек по 1,5 В или литий-полимерного аккумулятора 6 × по 1,2 В.
Корпус NXT имеет стандартные для Lego узлы крепления навесных элементов, что позволяет оперативно собирать достаточно 
широкий диапазон устройств. Элементы объединены в гарантийно 
закрытом корпусе, однако схема электрических соединений  внутри 
корпуса общедоступна. Возможности для сборки необычайно широки – колеса 6 размеров, резиновые гусеницы, червячные передачи, редукторы на практически используемые  передаточные числа, 
пневматические приводы – все это доступно и позволяет собрать 
мобильный робот на колесном или гусеничном ходу, а также роботманипулятор.

Базовый узел NXT (NXT Brick)

А. Как устроен NXT внутри

Внутри базового узла расположены нижеперечисленные элементы: 
1 – 32-bit ARM7 AT91SAM7S256 микроконтроллер 256 Kbytes 
FLASH, 64 Kbytes RAM; 
2 – 8-bit AVR микроконтроллер Atmega 48, 4 Kbytes FLASH, 512 
Byte RAM память;
3 – беспроводной канал Bluetooth (Bluetooth Class II V2.0 
compliant);
4 – USB скоростной порт (12 Mbit/s);
5 – 4 порта входа, 6-wire cable digital platform (один порт включает 
IEC 61158 Type 4/EN 50 170 порт расширения для  использования в дальнейшем); 
6 – 3 порта вывода, 6-wire cable digital platform; 
7 – 100×64 pixel LCD графический дисплей;
8 – динамик – 8 kHz качество;
9 – питание: 6 AA батареек.

Урок 1. Некоторые сведения о NXT

B. Äàò÷èêè äëÿ NXT  
 
 
 
(Mindstorms Education 9797)

В обычной конфигурации к микропроцессору может быть подключены 4 датчика и 3 сервомотора с обратной связью. Датчик может 
быть датчиком касания, датчиком освещенности, ультразвуковым 
датчиком расстояния  или компасом – датчиком магнитного поля.

Датчик касания

Датчик освещенности

Датчик звука

Сервопривод

Ультразвуковой датчик

Компас

К покупке доступен более свежий выпуск Перейти