Програмування мікрокомп'ютера lego nxt mindstorms 2

  • 04.01.16 2:41 •
  • alfatapok •
  • # 268708 •
  • Гіктаймс •
  • Tutorial •
  • 8 •
  • 6300

- такий же як Forbes, тільки краще.

Програмування мікрокомп'ютера lego nxt mindstorms 2


Чому саме NXT Mindstorms 2.0? Тому-що для своїх проектів даний набір мені здався найбільш гідною кандидатурою, тому що мікрокомп'ютер NXT повністю сумісний з платформами MRDS 4 і NI LabVIEW, а так само даний набір є дуже гнучким в плані складання різних конфігурацій роботів - витрачається мінімум часу на складання робота.

Чому платформи MRDS 4 і NI LabVIEW? Так склалося історично. Навчаючись на старших курсах університету стояло завдання в розробці навчальних курсів з використанням даних платформ. До того ж платформи володіють достатньою простотою в освоєнні і функціональністю, з їх використанням можна написати програму безпосередньо для управління роботом, розробити інтерфейс користувача і провести тестування у віртуальному середовищі (у випадку з MRDS 4).

Так кому взагалі потрібні ці ваші уроки, в мережі і так купа проектів з робототехніки! З використанням цієї зв'язки (NXT + MRDS 4 / NI LabVIEW) навчальних статей практично немає, в основному використовується рідне середовище програмування, а в ній зовсім все тривіально. Всім кому цікаві робототехніка, програмування і у кого є набір NXT (а таких чимало), вікова аудиторія будь-яка.

Графічні мови програмування це зло, а ті хто на них програмують єретики! Графічні мови програмування якими і є MRDS 4 і NI LabVIEW безсумнівно мають свої мінуси, наприклад орієнтованість під вузькі завдання, але все ж в функціональності вони мало поступаються текстовим мов, тим більше NI LabVIEW спочатку розроблявся як мова легкий в освоєнні для вирішення наукових і інженерних задач , для цього в ньому присутня безліч необхідних бібліотек та інструментів. По-цьому для вирішення наших завдань дані графічні мови є найбільш підходящими. І не треба нас за це спалювати на багатті зневажати.

Все це виглядає по-дитячому і взагалі не серйозно! Коли завдання полягає в реалізації алгоритмів, в навчанні основам і принципам програмування, робототехніки, систем реального часу без поглиблення в схемотехнику і протоколи, то це дуже підходящий інструмент хоч і не дешевий (стосовно набору NXT). Хоча для цих же цілей непогано підійдуть набори на базі Arduino, але сумісності з MRDS 4 і NI LabVIEW у даного контролера майже немає, а в даних платформах є своя краса.

Короткий огляд платформ MRDS 4 і NI LabVIEW.


Внесу деяку ясність в термінологію. Під платформою, в даному випадку, мається на увазі сукупність різних інструментів, наприклад мову VPL в MRDS, а так само Виконавча додатків, тобто безпосередній компіляції додатків в виконувані (* .exe) файли нету.

LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench) - це середовище розробки і платформа для виконання програм, створених на графічній мові програмування «G» фірми National Instruments (більш докладно в статті Вікіпедії). LabVIEW використовується в системах збору та обробки даних, а також для управління технічними об'єктами і технологічними процесами. Ідеологічно LabVIEW дуже близька до SCADA-системам, але на відміну від них більшою мірою орієнтована на вирішення завдань не стільки в області АСУ ТП (автоматизовані системи управління технологічним процесом), скільки в області АСНИ (автоматизованих систем наукових досліджень). Графічна мова програмування «G», який використовується в LabVIEW, заснований на архітектурі потоків даних. Послідовність виконання операторів в таких мовах визначається не порядком їх слідування (як в імперативних мовах програмування), а наявністю даних на входах цих операторів. Оператори, не пов'язані з даними, виконуються паралельно в довільному порядку. Програма LabVIEW називається і є віртуальним приладом (англ. Virtual Instrument) і складається з двох частин:
  • блокової діаграми, яка описує логіку роботи віртуального приладу;
  • лицьовій панелі, яка описує інтерфейс користувача віртуального приладу.

Короткий огляд набору LEGO NXT Mindstorms 2.0.


Комплект NXT складається з керуючого блоку, чотирьох датчиків і трьох сервоприводів. Керуючий блок містить в собі:
  • 32-бітний мікроконтролер AVR7 з 256 КБ FLASH пам'яті і 64 КБ RAM пам'яті;
  • 8-бітний мікроконтролер AVR c 4 Кбайт FLASH пам'яті і 512 Байт RAM пам'яті;
  • радіомодуль Bluetooth V 2.0;
  • USB-порт;
  • 3 роз'єми для підключення сервоприводів;
  • 4 роз'єми для підключення датчиків;
  • LCD дисплей дозволом 99x63 пікселів;
  • динамік;
  • роз'єм для 6 батарейок типу AA.

Датчики (в різних комплектаціях різні набори датчиків):
  • ультразвуковий датчик;
  • два тактильних датчика (датчики дотику);
  • датчик опреденія кольору.

Програмування мікрокомп'ютера lego nxt mindstorms 2


Малюнок 1 - мікрокомп'ютер NXT з підключеними датчиками і приводами

І звичайно ж в наборі знаходяться різноманітні деталі LEGO в форм-факторі LEGO Technic з яких будуть зібрані виконавчі механізми і несуча конструкція.

Програмування мікрокомп'ютера lego nxt mindstorms 2


Малюнок 2 - Деталі в форм-факторі LEGO Technic

Пишемо перший додаток.


Напишемо перший додаток. Нехай, класично, дане додаток виводить текст "Hello, World!". Реалізація буде відбуватися по черзі в MRDS 4 і NI LabVIEW, в процесі будемо розглядати специфіку кожної платформи.

1. Платформа MRDS 4.


Запускаємо середу VPL (Меню Пуск - Всі Програми - Microsoft Robotics Developer Studio 4 - Visual Programming Language). Дане середовище дозволяє розробляти програми на мові VPL, проводити тестування у віртуальному середовищі VSE. Програма в VPL є діаграму, що складається із сполучених між собою блоків. У вікні, крім стандартної панелі команд і меню, присутній 5 основних вікон:

  1. Basic Activities - містить базові блоки, які реалізують такі оператори як константа, змінна, умова і т.д .;
  2. Services - містить блоки, які можуть пропонувати функціоналу платформи MRDS, наприклад блоки для взаємодії з будь-якої апаратної складової робота, або блоки для виклику діалогового вікна;
  3. Project - об'єднує діаграми входять в проект, а так само різні конфігураційні файли;
  4. Properties - містить властивості виділеного блоку;
  5. Diagrams window - містить, безпосередньо, діаграму (вихідний код) програми.

Програмування мікрокомп'ютера lego nxt mindstorms 2

Малюнок 3 - Середовище програмування VPL

Виконаємо наступну послідовність дій:

  1. додамо блоки Data (з вікна Basic Activities) і блок сервісу Simple Dialog (з вікна Services),
  2. в блок Data введемо "Hello, World!" (без лапок) і виберемо тип даних String,
  3. з'єднаємо блок Data з блоком Simple Dialog, з'явитися діалогове вікно,
  4. далі, все виконуємо як на малюнках

Програмування мікрокомп'ютера lego nxt mindstorms 2

Малюнок 4 - Вікно Connections

Програмування мікрокомп'ютера lego nxt mindstorms 2

Малюнок 5 - Вікно Data Connections

Програмування мікрокомп'ютера lego nxt mindstorms 2

Малюнок 6 - Закінчений вигляд діаграми

  • Запустимо програму на виконання.

    Програмування мікрокомп'ютера lego nxt mindstorms 2

    Малюнок 7 - Результат виконання програми

  • 2. Платформа NI LabVIEW.


    На цій платформі все реалізується, практично, ідентично. Запустимо середу LabVIEW. Перед нами з'явитися два вікна, перше - Front Panel, призначене для реалізації інтерфейсу користувача (зовнішнього вигляду віртуального приладу), друге - Block Diagram, для реалізації логіки програми.

    Програмування мікрокомп'ютера lego nxt mindstorms 2


    Малюнок 8 - Вікна середовища LabVIEW

    Ми будемо використовувати вікно Block Diagram. Виконаємо наступні кроки:

    1. у вікні Block Diagram викличемо контекстне меню, натисканням правою кнопкою миші,
    2. у вікні перейдемо по вкладках, як на малюнку і виберемо String Constant,

    Програмування мікрокомп'ютера lego nxt mindstorms 2

    Малюнок 9 - Контекстне меню

  • розмістимо даний блок і введемо «Hello, World!»,
  • аналогічним чином виберемо блок One Button Dialog,

    Програмування мікрокомп'ютера lego nxt mindstorms 2

    Малюнок 10 - Блок One Button Dialog

  • з'єднаємо блоки як показано на малюнку,

    Програмування мікрокомп'ютера lego nxt mindstorms 2

    Малюнок 11 - Готова діаграма

  • запустимо програму, натиснувши кнопку у вигляді горизонтальної стрілки на панелі завдань,

    Програмування мікрокомп'ютера lego nxt mindstorms 2

    Малюнок 12 - Результат виконання програми

  • Ви можете допомогти і перевести трохи коштів на розвиток сайту

    Схожі статті