Lego Mindstorms NXT — программируемый робототехнический набор, выпущенный Lego 2 августа 2006 года. [1] [2] [ необходим неосновной источник ] Он заменил Robotics Invention System , набор Lego Mindstorms первого поколения. Базовый набор поставляется в двух версиях: розничная версия [3] и образовательный базовый набор. [4] Он поставляется с программным обеспечением NXT-G или дополнительным LabVIEW для Lego Mindstorms. [5] Существует множество неофициальных языков, таких как NXC, NBC, leJOS NXJ и RobotC. Набор второго поколения, Lego Mindstorms NXT 2.0, был выпущен 1 августа 2009 года с цветовым датчиком и другими обновлениями. Третье поколение EV3 было выпущено в сентябре 2013 года.
Интеллектуальный блок NXT
Основным компонентом набора является компьютер NXT Intelligent Brick, который может принимать входные данные от четырех датчиков и управлять тремя двигателями с помощью модифицированной версии кабелей RJ12 (похожей на телефонные линии RJ11 , но несовместимой с ними ). Пластиковый штифт для удержания кабеля в гнезде немного смещен вправо. Блок имеет монохромный ЖК-дисплей 100×64 пикселей и четыре кнопки, которые могут управлять пользовательским интерфейсом с иерархическими меню. Он имеет 32-битный микроконтроллер ARM7TDMI Atmel AT91SAM7 S256 с 256 КБ флэш-памяти и 64 КБ ОЗУ, 8-битный микроконтроллер Atmel AVR ATmega48 и поддержку Bluetooth. В наборе есть динамик , и он может воспроизводить звуковые файлы с частотой дискретизации до 8 кГц. Питание осуществляется от 6 батареек типа АА (по 1,5 В каждая) в потребительской версии набора и от перезаряжаемой литий-ионной батареи в образовательной версии. Блок совместим с датчиками и моторами своего преемника Lego Mindstorms EV3 . [6]
Наборы для разработки
Lego выпустила прошивку с открытым исходным кодом для NXT Intelligent Brick и схемы для всех аппаратных компонентов. [7]
Доступно несколько комплектов разработчика с документацией для NXT:
Комплект разработчика программного обеспечения (SDK) с информацией о драйверах USB-хоста, формате исполняемого файла и справочником по байт-коду
Комплект разработчика оборудования (HDK) с документацией и схемами для блока NXT и датчиков
Bluetooth Developer Kit (BDK), документирующий протоколы, используемые для связи Bluetooth
Программирование
Простые программы можно создавать с помощью меню на интеллектуальном блоке NXT. Более сложные программы и звуковые файлы можно загружать с помощью порта USB или Bluetooth. Файлы можно копировать по беспроводной связи между двумя блоками NXT, а некоторые мобильные телефоны можно использовать в качестве пульта дистанционного управления. До трех блоков NXT могут одновременно обмениваться данными через Bluetooth при запуске программ, созданных пользователем.
Розничная версия комплекта включает программное обеспечение для написания программ, работающих на персональных компьютерах с Windows и Mac OS. Программное обеспечение, основанное на National Instruments LabVIEW , предоставляет визуальный язык программирования для написания простых программ и загрузки их в NXT Brick; вместо того, чтобы требовать от пользователей писать строки кода, они могут использовать блоки, похожие на блок-схемы, для разработки своей программы.
НХТ
NXT-G v2.0 — это графическая среда программирования, которая поставляется в комплекте с NXT и может использоваться для реального программирования. Программное обеспечение может запускать несколько параллельных циклов или сочетать автономное управление с Bluetooth или другим дистанционным управлением. Оно поддерживает виртуальные инструменты для всех датчиков и компонентов Lego и большинства сторонних датчиков и компонентов. Версия 2.0 содержит новые задачи, дистанционное управление, пользовательские графические и звуковые дизайнеры, а также поддержку цветового датчика Lego. [8]
Bricx Command Center (BricxCC) — это интегрированная среда разработки (IDE), используемая для написания, компиляции и редактирования программ NBC и NXC для NXT. Кроме того, поскольку BricxCC изначально был создан для RCX , программы для него можно писать с помощью NQC через BricxCC. Различные версии прошивки можно прошивать в NXT с помощью BricxCC. Next Byte Codes (NBC) — это простой язык с открытым исходным кодом с синтаксисом языка ассемблера , который можно использовать для программирования блока NXT. BricxCC также имеет возможность декомпилировать стандартные исполняемые файлы .rxe NXT в NBC. Not eXactly C (NXC) — это высокоуровневый язык с открытым исходным кодом , [10] похожий на C и построенный на компиляторе NBC. Его можно использовать для программирования блока NXT. NXC — это по сути NQC для NXT. [11]
Роболаб
Новая среда программирования, изначально использовавшаяся в программируемом блоке RCX. Версия 2.9 была обновлена для программирования блока NXT. Lego объявила о прекращении поддержки Robolab, но Robolab 2.9 по-прежнему доступен. [12]
РобоМозг
RoboMind — это образовательное программное обеспечение для обучения студентов логике, программированию и робототехнике. Скрипты можно переносить в робота Lego Mindstorms NXT для тестирования. [13]
Очаровательный
Enchanting переносит программирование NXT в среду разработки Scratch IDE, разработанную группой Lifelong Kindergarten Group Массачусетского технологического института, чтобы сделать программирование интуитивно понятным для маленьких детей.
РОБОТК
Язык программирования на основе C для VEX, VEX Cortex, FIRST Tech Challenge и Lego Mindstorms . ROBOTC позволяет NXT быстро запускать программы и сжимает файлы для размещения большого количества программ.
NXTGCC
Набор инструментов GCC для программирования прошивки NXT на языке C.
леДЖОС NXT
leJOS NXJ — это высокоуровневый язык программирования с открытым исходным кодом, основанный на Java , который использует пользовательскую прошивку. [14]
nxtOSEK
nxtOSEK можно использовать для написания на C и C++ с пользовательской прошивкой. [15]
ИКОНА
ICON может записывать файлы на сам NXT. [16] [17]
MATLAB и Simulink
MATLAB — это язык программирования высокого уровня для численных вычислений, сбора данных и анализа. Он может управлять роботами Lego NXT через последовательный порт Bluetooth (связь через последовательный порт является частью базовой функциональности MATLAB) или через USB . [18] (бесплатно и с открытым исходным кодом). Simulink — это среда блок-схем для моделирования и имитации динамических систем. Пользователь может проектировать и моделировать алгоритмы управления и системы Lego, а также программировать Lego NXT или EV3. [19]
Луа
plLua [20] — это порт языка программирования Lua , языка сценариев общего назначения, для Lego Mindstorms.
Ада
Порт GNAT [21] для NXT. Он опирается на выделенное ядро времени выполнения на основе профиля Ravenscar, используемого на спутнике Goce , что позволяет высокоуровневым функциям Ada разрабатывать параллельные и работающие в реальном времени системы на Mindstorms NXT.
УРБИ
URBI — параллельный, событийно-управляемый язык с интерфейсами к C++/Java и Matlab. Он имеет компонентную архитектуру (UObject) для распространения. Urbi совместим со многими роботами, включая Nao (ср. Robocup), Bioloid и Aibo. [22]
FLL NXT Навигация
FLL Nxt Navigation [23] — это программа с открытым исходным кодом для помощи в навигации на соревновательном столе FLL. Она использует файлы NXT-G и .txt для написания программ.
Ruby-nxt
Ruby-nxt [24] — библиотека для программирования NXT для языка программирования Ruby . Код не компилируется в двоичный файл (в отличие от других языков для NXT), а передается в NXT через Bluetooth.
Робототехника.NXT
Robotics.NXT [25] — это интерфейс Haskell для NXT через Bluetooth. Он поддерживает прямые команды, сообщения и множество датчиков, а также поддерживает простое управление блоком NXT на основе сообщений через удаленно выполняемую программу. Базовый код NXC включен.
LibNXT
LibNXT [26] — это библиотека утилит для общения с интеллектуальным блоком Lego Mindstorms NXT на относительно низком уровне. Она ориентирована на платформы, которые не поддерживаются официальным программным обеспечением Lego Mindstorms NXT (например, Linux), и работает в любой POSIX-совместимой операционной системе, где поддерживается libusb 0.1. Поддержка Windows также возможна с портом libusb win32.
C_NXT
C_NXT [27] — библиотека для управления Lego NXT, лицензированная по GPLv2 . Она позволяет пользователям управлять Lego NXT через Bluetooth из других программ на языке C. Библиотека, работающая на Linux, обеспечивает низкоуровневое управление и высокоуровневую абстракцию.
PyNXC
PyNXC [28] — проект, который преобразует код Python в Not Exactly C (NXC) [29] для загрузки в роботов Lego Mindstorms.
NXT-Python
NXT-Python [30] — это модуль Python, который взаимодействует с NXT через USB или Bluetooth. Он поддерживает команды и несколько датчиков стороннего производителя.
Программное обеспечение LEGO Mindstorms EV3
Программное обеспечение, которое поставляется с новым набором Mindstorms EV3, может программировать NXT. [31]
Физические игрушки
Physical Etoys — это система визуального программирования для электронных устройств, поддерживающая прямой и компилируемый режимы.
Интерпретатор C/C++ Гл.
Ch — это интерпретатор C/C++, работающий на C/C++ для управления Lego NXT или EV3. Не требуется загрузка/скачивание прошивки или компиляция. Код AC/C++, работающий на Ch, может управлять Lego NXT, EV3 или несколькими NXT/EV3. [32]
Датчики и исполнительные механизмы
В базовый комплект Lego Mindstorms NXT входит: [33]
Датчик касания определяет, нажата ли она, была ли она ударена или отпущена. Оранжевая кнопка ввода и серые правая и левая кнопки NXT могут быть запрограммированы как датчики касания. В программном обеспечении NXT-G значение 0 дается, когда она не нажата, и значение 1 дается, если она нажата. [35]
Датчик освещенности определяет уровень освещенности в одном направлении и включает светодиод для освещения объекта. Он может определять отраженные значения света с помощью встроенного красного светодиода или окружающего света. В программном обеспечении NXT-G он определяет свет по шкале от 0 до 100; 100 — очень яркий, а 0 — темный. [36] При калибровке датчик можно использовать в качестве датчика расстояния.
Датчик звука измеряет громкость по шкале от 0 до 100: 100 — очень громко, 0 — тихо.
Ультразвуковой датчик может измерять расстояние от датчика до чего-либо, к чему он обращен, и обнаруживать движение. Он может показывать расстояние в сантиметрах и дюймах. Максимальное расстояние, которое он может измерить, составляет 233 сантиметра (92 дюйма) с точностью до 3 сантиметров (1,2 дюйма). Датчик посылает ультразвуковые звуковые волны, которые отражаются от объекта впереди него, а затем обратно, и определяет время, которое это заняло. [37]
Другие части можно купить отдельно. [38] Сторонние компании производят датчики, такие как компас , гироскоп , инфракрасный трекер, считыватель RFID и акселерометрические датчики, продаваемые Lego. Датчик температуры может измерять в градусах Цельсия или Фаренгейта.
Соединитель
Датчики подключаются к блоку NXT с помощью шестипозиционного модульного разъема с аналоговыми и цифровыми интерфейсами. Аналоговый интерфейс обратно совместим (с использованием адаптера) со старой Robotics Invention System. Цифровой интерфейс способен к коммуникации I 2 C и RS-485 .
Распиновка интерфейса датчика NXT
Приколоть
Имя
Функция
Цвет
Номер контакта
1
АНАЛОГОВЫЙ
Аналоговый интерфейс, питание +9В
Белый
2
Земля
Земля
Черный
3
Земля
Земля
Красный
4
IPOWERA
+4,3В питание
Зеленый
5
DIGIAI0
I 2 C часы (SCL), RS-485 B
Желтый
6
DIGIAI1
Данные I 2 C (SDA), RS-485 A
Синий
NXT2.0
Lego Mindstorms NXT 2.0 — второй набор в серии Lego Mindstorms , представленный 5 августа 2009 года в магазине Lego Shop в США. Набор содержит 619 деталей, включая датчик, который может определять цвета. За ним последовал Lego Mindstorms EV3 . [39]
Функции
Звуковой редактор для записи звука и программирования блока NXT для его воспроизведения.
Редактор изображений для загрузки изображения в блок NXT для отображения на экране.
^ "Что такое NXT? LEGO Group представляет набор инструментов Lego Mindstorms NXT Robotics на выставке бытовой электроники" (пресс-релиз). Лас-Вегас, Невада : The Lego Group . 4 января 2006 г. Архивировано из оригинала 8 июля 2009 г. Получено 17 сентября 2007 г.
^ "LEGO MINDSTORMS NXT Robotics Toolset Now Widely Available" (пресс-релиз). Нью-Йорк, штат Нью-Йорк : The Lego Group . 2 августа 2006 г. Архивировано из оригинала 11 сентября 2006 г. Получено 3 июля 2022 г.
^ "8527Mindstorms NXT Kit". Mindstorms.lego.com . LEGO Group . Архивировано из оригинала 2009-02-03 . Получено 2008-12-26 .
^ "Lego Mindstorms Education NXT Base Set". Education.lego.com . Архивировано из оригинала 2011-12-10 . Получено 2011-09-30 .
^ "LEGO Education | Продукция > Средняя школа > NI LabVIEW для программного обеспечения LEGO MINDSTORMS". Архивировано из оригинала 2011-12-16 . Получено 2011-11-16 .
^ «Использование программного обеспечения EV3 для запуска NXT – LEGO Engineering». 2013-11-01 . Получено 2024-08-05 .
^ «Все инструменты, чтобы довести ваш Lego Mindstorms NXT до экстремального состояния!». Архивировано из оригинала 6 октября 2009 г.
^ "Галерея Brickshelf - Примеры фрагментов кода". Brickshelf.com . Получено 3 июля 2022 г. .
^ "Шоу". Docs.microsoft.com . Получено 3 июля 2022 г. .
^ "Не совсем C". Sourceforge.net .
^ "NBC – NeXT Byte Codes, Not eXactly C и SuperPro C". Sourceforge.net .