Программа для лего робота nxt

Обновлено: 23.04.2024

Это программное решение позволяет создавать набор команд для управления роботом, который был произведен компанией Lego.
Mindstorms NXT, является абсолютно оригинальным программным обеспечением, который было создано лидирующей компанией-изготовителем детского конструктора – LEGO.

Установив данное приложение вы сможете создавать набор операций для роботов из структурных блоков LEGO. Программа несет как развлекательный, так и познавательный смысл. С ее помощью даже самые маленькие смогут обучиться азам программирования, а также создать программу для своего полноценного робота. Процесс написания кода, подается в интерактивном режиме, программа обучает детей в игровой форме. Создать программу для своего робота не составит большого труда даже для самых маленьких.

Для чего была создана данная программа?

Основная задача данной программы – это обучение детей программированию, а также созданию базовых, простых алгоритмов. Такая деятельность прекрасно развивает логику, а также аналитическое мышление ребенка, которое ему пригодиться в дальнейшем обучении. Создание набора инструкций для робота, производится за счет уже заготовленных структурных блоков. Вашему чаду достаточно вписать необходимые параметры и выставить составляющее в нужной последовательности. Каждый структурный модуль отвечают за ту или иную функцию робота. Например, двигатель необходим для осуществления передвижения робота, вы вставляете его в цепочку компонентов, после чего указываете значение его мощности. Дети могут экспериментировать со значениями и смотреть к чему приводит тот или иной показатель. Чтобы усвоить все тонкости работы в данной среде, рекомендуется посмотреть несколько базовых видео уроков. Также программа имеет в себе полный набор документации, который также локализирован на русском языке.

Дополнительные факты

Приложение будет полезно для детей, у которых уже есть робот от компании LEGO. Данное программное обеспечение схоже с теми, что используются в роботах от других производителей. Имеет практически идентичный функционал, а также схожую графическую оболочку. Так что, если ваше чадо, до этого пользовалось другим ПО, начать использовать Mindstorms NXT не составит для него большого труда.

Главные особенности

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

Robot Commander представляет собой управляющее приложение для LEGO® MINDSTORMS®. БЕСПЛАТНАЯ загрузка для большинства смартфонов и планшетов; Robot Commander подключается к модулю EV3 по Bluetooth®. Это простое в использовании приложение позволяет взаимодействовать с вашими уникальными роботами EV3, даже не подключаясь к компьютеру! Это означает, что вы можете мгновенно начать игру с вашими собственными роботами!


Приложения для компьютеров и планшетов

Приложения LEGO® MINDSTORMS® EV3 Home для macOS, Windows 10 и планшетов на iOS и Android

Загрузите, установите, подключите и выполняйте задания по программированию. Для пяти основных роботов есть до пяти задач по программированию. Благодаря более продвинутому, но хорошо знакомому интерфейсу программирования и пяти сложным заданиям для вас и ваших роботов-героев, приложение EV3 Home для PC, Mac и планшетов сможет поднять ваши навыки робототехники на новый уровень!


Важная информация относительно программного обеспечения и приложений LEGO® MINDSTORMS® EV3!

Мы рады сообщить, что пользователям LEGO MINDSTORMS EV3 теперь будут доступны новые возможности при сборке и программировании их творений.

Новое приложение LEGO MINDSTORMS EV3 Home с языком программирования на основе Scratch заменит используемое в настоящее время ПО LEGO MINDSTORMS EV3 Home Edition (Labview) для Windows 10 и macOS, а также приложение LEGO MINDSTORMS EV3 Programmer для планшетов на iOS/Android.

Приложение LEGO MINDSTORMS EV3 Programmer будет удалено из магазинов приложений в конце июня 2021 года.

Выведенное из эксплуатации ПО LEGO MINDSTORMS EV3 Home Edition (Labview) для Mac и PC можно найти ниже. Обратите внимание, что это ПО больше не поддерживается LEGO Group.

Здравствуйте. В своих статьях я хочу Вас познакомить с основами программирования микрокомпьютера LEGO NXT Mindstorms 2.0. Для разработки приложений я буду использовать платформы Microsoft Robotics Developer Studio 4 (MRDS 4) и National Instruments LabVIEW (NI LabVIEW). Будут рассматриваться и реализовываться задачи автоматического и автоматизированного управления мобильными роботами. Двигаться мы будем от простого к сложному.


Предвосхищая некоторые вопросы и комментарии читателей.

Почему именно 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) файлы нету.

  • блочной диаграммы, описывающей логику работы виртуального прибора;
  • лицевой панели, описывающей интерфейс пользователя виртуального прибора.

Краткий обзор набора LEGO NXT Mindstorms 2.0.


Рисунок 1 — Микрокомпьютер NXT с подключенными датчиками и приводами

И конечно же в наборе находятся разнообразные детали LEGO в форм-факторе LEGO Technic из которых будут собраны исполнительные механизмы и несущая конструкция.


Рисунок 2 — Детали в форм-факторе LEGO Technic

Пишем первое приложение.

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

Предварительно инсталлируем платформы MRDS 4 и NI LabVIEW, в случае с MRDS 4 инсталляция должна проводится в папку путь к которой не состоит из кириллицы (русских букв), учетная запись пользователя так-же должна состоять только из латинских букв.

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 – содержит, непосредственно, диаграмму (исходный код) приложения.


Рисунок 3 — Среда программирования VPL

Выполним следующую последовательность действий:

  1. добавим блоки Data (из окна Basic Activities) и блок сервиса Simple Dialog (из окна Services),
  2. в блок Data введем “Hello, World!” (без кавычек) и выберем тип данных String,
  3. соединим блок Data с блоком Simple Dialog, появиться диалоговое окно,
  4. далее, все выполняем как на рисунках


Рисунок 4 — Окно Connections


Рисунок 5 — Окно Data Connections


Рисунок 6 — Законченный вид диаграммы


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

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


Рисунок 8 — Окна среды LabVIEW

Мы будем использовать окно Block Diagram. Выполним следующие шаги:

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



Лет эдак в 10-11, после долгих и беззаботных лет игры с контрукторами Lego, я узнал о существовании великолепного набора Mindstorms, который позволял создавать самых настоящих роботов без специализованных знаний электроники, электротехники и даже программирования. Я сразу же заинтересовался данной серией, но тогда моим мечтам обладать Mindstorms по различным (в основном — финансовым) причинам не суждено было сбыться.
Сейчас мне 20 и в честь юбилея друзья (спасибо им!) решили окунуть меня назад в детство и таки дать возможность полепить собственных роботов. Правда, в этот раз всё будет серьёзнее, чем в моих детских мыслях — мы будем действительно программировать Mindstorms под Debian GNU/Linux.

Неплохо, да?
Собственно, данный робот и будет нашей основной тестовой моделью. Но мы попробуем немного усовершенствовать его навыки. И для этого мы напишем небольшой кусочек кода.


Действительно. Идущее в комплекте ПО работает только в Windows и Mac OS. А у нас, внезапно, Debian Squeeze. К счастью, Mindstorms обладает огромным сообществом фанатов, которые придумали решение данной проблемы — использование альтернативного ПО для программирования роботов, в частности Bricxcc (здесь выложен полнейший мануал по настройке всего и вся).
А теперь немного теории — в программировании Mindstorms, как правило, помимо визуального среды ROBOLAB для Windows и Mac OS используется язык RCX, однако среди фанатов одним из наиболее популярных языков является достаточно простой NXC (Not eXactly C). Простая программа на NXC выглядит примерно так:

  1. task music()
  2. int lastTone=5000;
  3. while ( true )
  4. int tone= Random (5000)+500;
  5. int duration= Random (500);
  6. PlayTone(tone,duration);
  7. Wait(duration);
  8. >
  9. >
  10. task main()
  11. start music;
  12. while ( true )
  13. /* Determine Next Action */
  14. unsigned int duration= Random (5000);
  15. unsigned int motorSpeed= Random (100);
  16. unsigned int syncMode= Random (3);
  17. /* Display Next Action */
  18. ClearScreen();
  19. NumOut(0,LCD_LINE1,duration);
  20. NumOut(0,LCD_LINE2,motorSpeed);
  21. NumOut(0,LCD_LINE3,syncMode);
  22. /* Perform Next Action */
  23. switch (syncMode)
  24. case 0:
  25. OnFwdReg(OUT_AC,motorSpeed,OUT_REGMODE_SYNC);
  26. break ;
  27. case 1:
  28. OnRevReg(OUT_AC,motorSpeed,OUT_REGMODE_SYNC);
  29. break ;
  30. case 2:
  31. OnFwdSync(OUT_AC,motorSpeed,-100);
  32. break ;
  33. case 3:
  34. OnRevSync(OUT_AC,motorSpeed,-100);
  35. break ;
  36. >
  37. Wait(duration);
  38. >
  39. >

Для справки — данная программа заставляет «танцевать» нашего робота под нечто, напоминающее музыку.

Не буду спорить, программа совсем не сложна для понимания, но достаточно громоздка. И её можно заметно упросить, используя вместо написания кода на NXC специальный конвертер PyNXC. Иначе говоря, мы будем писать код на Python'е, а PyNXC будет преобразовывать его в NXC-код и загружать на устройство, избавив нас от необходимости писать громоздкий код на подобии Си.


Ну, а теперь, собственно, напишем на Python'е программу для путешествия нашего робота среди прозрачных чашек, но используя более грамотный алгоритм разворота:

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

Как вы уже, наверное, заметили, программировать Mindstorms очень просто. Стоит также сказать, что помимо NXC и Python с использованием PyNXC, можно писать код на Java, Lua, Ruby, Ассемблере, а также, что логично, использовать ассемблерные вставки в других языках.
Благодаря всему этому Mindstorms из детской игрушки превращается в весьма мощную штуку, позволяющую создавать сложные и «умные» механизмы, как например вот эта гитара:

image

1 Января. Раннее Утро. Мой 9 летний сын обнаружил под ёлкой подарок от Деда Мороза. Это оказалась огромная коробка с Lego Mindstorms NXT 2.0.

Распаковка

image

Размер коробки, как и качество исполнения на высоте. Первое время хочется просто рассматривать коробку. Откидная крышка показывает комплектацию набора и элементы программного обеспечения.

image

image

  • NXT программируемый блок (дальше просто кирпич) — ядро всей системы
  • 4x сенсора:
    • Ультразвуковой сенсор — позволяет роботу измерять расстояние до объекта и реагировать на движение
    • Два сенсора нажатия – позволяют роботу реагировать на прикосновения
    • Сенсор цвета – самый интересный сенсор, включает в себя сразу три функции: Умеет определять 6 цветов цвет — Белый, Черный, Желтый, Красный, Зеленый и Голубой, интенсивность освещения и быть лампой подсветки

    Это уже вторая версия набора Mindstorms. И он немного вырос по сравнению со своей первой версии. Добавились детали, появился новый датчик — Сенсор Цвета.

    Кирпич может проигрывать заранее записанные звуки и отображать на своем экране подготовленные картинки и текст.

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

    Открыв коробку, понимаешь, что набор содержит много мелких деталей. А хранить их в коробке не очень удобно. Пригодился предыдущий опыт с лего. В использование пошла новая пластиковая коробка и пластиковые пакеты на молнии. Хоть коробка и хороша, но функционально ее больше не использовать.

    image

    image

    Вот он какой великий и ужасный кирпич.

    image

    Инструкция в комплекте на английском языке, но в стиле Лего, все интуитивно понятно и просто. Бумажная инструкция дает пояснения по установке и настройке, заодно позволяет собрать базовый (тестовый) модуль. Остальные схемы доступны через программу Lego Mindstorm NXT.

    Инструкцию на русском языке легко найти в сети, например здесь.

    Для работы кирпича потребуется 6 пальчиковых батареек AA. Рекомендую запастись аккумуляторами и зарядным устройством. Поискав, на сайте лего, был найден стандартный аккумулятор 54.95$ + блок питания 24.99$.

    По мне так дороговато.

    К стандартному программному обеспечению NXT-G тоже вопросов нет, все просто работает.

    image

    NXT-G это графическая среда программирования разработанная National Instruments для LEGO. Написание NXT-G программ очень похоже на создание блок-схем. Вы «пишете» программу путем перетаскивания блоков, которые описывают различные поведения, например, поворот двигателя. С использованием различных блоков, вы можете контролировать двигатели, определять расстояние до объекта или изменение цвета, а так же воспроизвести звук и выполнить код в зависимости от состояния датчиков и т.д.

    image

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

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

    Дальше пошло все по инструкции по маслу сборка моделей, обкатка программного обеспечения. Благодаря пошаговой инструкции Лего, сын все выполняет сам, я лишь изредка подглядываю и подсказываю правильное направление.

    image

    image

    Что же дальше?

    Сын собирает модель. Затем мы на тестовом полигоне тестируем различные варианты программ, например на скорость прохождение робота вдоль линии. Так что ближайшие несколько месяцев есть чем заняться. Главное подкидывать задачки.

    Для себя скачал книгу “Extreme NXT”, которая дает массу идей по использованию кирпича и инструкцию по созданию и подключению новых датчиков. Так что самое интересное еще впереди.

    Ну и на последок Monster Chess — очень большие шахматы с использованием LEGO MINDSTORMS для каждой шахматной фигуры.

    Читайте также: