Programming nxt

Логотип Lego Mindstorms NXT.

Lego Mindstorms NXT-это программируемый набор робототехники. Выпущенный компанией Lego в конце июля 2006 года.[1] Он заменил набор Lego Mindstorms первого поколения. Который назывался Robotics Invention System. Базовый комплект поставляется в двух версиях: розничная версия (набор № 8527)[2] и Образовательный базовый набор (набор № 9797).[3] Он поставляется с программным обеспечением программирования NXT-G или опционально LabVIEW для Lego Mindstorms.[4] Существует множество неофициальных языков. Таких как NXC, NBC. LeJOS NXJ и RobotC. Второе поколение набора, Lego Mindstorms NXT 2.0, был выпущен 1 августа 2009 года. Отличаясь цветовым датчиком и другими модернизированными возможностями.

Третье поколение, EV3, было выпущено в сентябре 2013 года.

Основным компонентом в комплекте является кирпичный компьютер под названием NXT Intelligent Brick. Он может принимать входы от четырех датчиков и управлять тремя двигателямис помощью модифицированной версии кабелей RJ12 , очень похожей на телефонные кабели RJ11, но несовместимой с ними. Пластмассовый штырь для удержания кабеля в гнезде слегка сдвинут вправо. Кирпич имеет монохромный ЖК-дисплей размером 100×60 пикселей

и четыре кнопки. Которые можно использовать для навигации по пользовательскому интерфейсу с помощью иерархических меню. Он имеет 32-разрядный ARM7TDMI-core Atmel AT91SAM7Микроконтроллер S256 с 256 КБ флэш-памяти и 64 КБ оперативной памяти. Плюс 8-битный микроконтроллер Atmel AVR ATmega48 и поддержка Bluetooth. Он также имеет динамик и может воспроизводить звуковые файлы с частотой дискретизации до 8 кГц. Питание осуществляется от 6 батареек типа АА (по 1,5 В каждая) в потребительской версии комплекта и от литий-ионной аккумуляторной батареи и зарядного устройства в образовательной версии.

Интеллектуальный кирпич остается неизменным с NXT 2.0. Черная версия кирпича была сделана. Чтобы отпраздновать 10-летие системы Mindstorms без каких-либо изменений во внутренних элементах.

Наборы для разработки

Lego выпустила прошивку для интеллектуального кирпича NXT с открытым исходнымкодом . А также схемы для всех аппаратных компонентов.[5]

Доступно несколько наборов разработчиков. Содержащих документацию для NXT:

  • Комплект разработчика программного обеспечения (SDK) включает в себя информацию о драйверах USB хоста. Формате исполняемого файла и справочнике байт-кода

  • Комплект разработчика оборудования (HDK). Включает в себя документацию и схемы для кирпича NXT и датчиков
  • Bluetooth Developer Kit (BDK). Документирует протоколы. Используемые для связи по Bluetooth

Программирование

Очень простые программы могут быть созданы с помощью меню на NXT Intelligent Brick. Более сложные программы и звуковые файлы можно загрузить с помощью USB-порта или по беспроводной сети Bluetooth. Файлы также можно копировать между двумя кирпичами NXT по беспроводной сети. А некоторые мобильные телефоны можно использовать в качестве пульта дистанционного управления. До трех кирпичей NXT могут одновременно взаимодействовать по Bluetooth при запуске созданных пользователем программ.

Розничная версия комплекта включает в себя программное обеспечение для написания программ. Которые работают на персональных компьютерах Windows и Mac OS. Программное обеспечение основано на National Instruments LabVIEW и обеспечивает визуальный язык программирования для написания простых программ и загрузки их в NXT Brick. Это означает. Что вместо того. Чтобы требовать от пользователей писать строки кода. Они вместо этого могут использовать блок-схему, такую как

NXT-G

NXT-G v2.0-это графическая среда программирования. Которая поставляется в комплекте с NXT.

При тщательном построении блоков и проводов для инкапсуляции сложности NXT-G можно использовать для реального программирования. Параллельные Язык поддерживает виртуальные инструменты для всех фирменных Lego и большинства сторонних датчиков/компонентов. Версия 2.0 содержит новые учебные задачи. Пульт дистанционного управления. Пользовательские графические и звуковые дизайнеры и новую поддержку цветового датчика Lego. Поддержка сообщества значительна. Например: http://www.brickshelf.com/cgi-bin/gallery.cgi?f=191310

C# с Microsoft Robotics Developer Studio

Бесплатные инструменты (Visual Studio Express в сочетании с Robotics Developer Studio) позволяют программировать NXT на языке C#.[6] Другие поддерживаемые языки включают IronPython и другие языки. VB.NET.[цитата необходима]

BricxCC, Следующие байтовые коды. Не совсем C

Командный центр Bricx (BricxCC) — это интегрированная среда разработки (IDE). Используемая для написания, компиляциии редактирования программ NBC и NXC для NXT. Кроме того, поскольку BricxCC изначально был сделан для RCX, программы для него могут быть написаны с помощью NQC через BricxCC. Различные версии прошивки могут быть прошиты в NXT с помощью BricxCC.

BricxCC имеет множество утилит. Таких как NeXTExplorer (загрузка/загрузка файлов. Дефрагментация NXT. Использование file hex viewer). NextScreen (просмотр того. Что находится на ЖК-дисплее NXT, а также захват изображений и видео).

Next Byte Codes (NBC) — это простой язык с открытым исходным кодом и синтаксисом ассемблера. Который можно использовать для программирования NXT-кирпича. BricxCC также имеет возможность декомпилировать исполняемые файлы standard .rxe NXT в NBC.

Not eXactly C (NXC)-это высокоуровневый язык с открытым исходным кодом, похожий на C, построенный на компиляторе NBC. Он также может быть использован для программирования кирпича NXT. NXC — это в основном NQC для NXT.[8] Это один из наиболее широко используемых сторонних языков программирования для NXT. В NXC возможно даже создание видеоигр для NXT. У некоторых людей даже есть рабочие оттенки серого на экране NXT.

Robolab

Robolab 2.9 Robolab-это новая среда программирования. Первоначально использовавшаяся на программируемом кирпиче RCX. Версия 2.9 была обновлена так. Что ее можно использовать для программирования кирпича NXT. Lego объявила. Что официально прекратит поддержку Robolab. Но Robolab 2.9 все еще доступен[9], и есть еще много форумов пользователей и других источников помощи.

RoboMind

RoboMind-это учебное программное обеспечение. Специально разработанное для обучения студентов логике. Программированию и робототехнике. Сильной стороной RoboMind является компактность обучающей среды. Которая позволяет быстро разрабатывать и тестировать скрипты в виртуальной среде. Затем скрипты могут быть непосредственно перенесены на робота Lego Mindstorms NXT. Чтобы увидеть результат в реальной жизни.[10] Скрипт RoboMind работает на стандартной прошивке.

Очаровательно

Enchanting привносит программирование NXT в популярную Scratch IDE. Разработанную Пожизненной группой детского сада в Массачусетском технологическом институте. Чтобы сделать программирование интуитивно понятным даже для маленьких детей. Результирующие программы NXT обладают компактностью и ясностью. Обеспечиваемыми этой средой программирования.

ROBOTC

ROBOTC-это язык программирования на основе Си для VEX, VEX Cortex, FIRST Tech Challengeи Lego Mindstorms. ROBOTC запускает очень оптимизированную прошивку. Которая позволяет NXT запускать программы очень быстро. А также сжимает файлы так. Чтобы в NXT могло поместиться большое количество программ. Как и другие языки NXT. ROBOTC требует. Чтобы эта прошивка была загружена из интерфейса ROBOTC для запуска.

NXTGCC

NXTGCC-это набор инструментов GCC для программирования прошивки NXT на языке C.

leJOS NXT

leJOS NXJ-это высокоуровневый язык с открытым исходным кодом. Основанный на Java, который использует пользовательскую прошивку. Разработанную командой leJOS.]

nxtOSEK

Чтобы иметь возможность писать на C/C++, можно использовать nxtOSEK. Но для этого также требуется пользовательская прошивка[12]

ЗНАЧОК

Для записи файлов на самом NXT ICON by Steve Hassenplug-идеальный ресурс.

MATLAB и Simulink

  • MATLAB-это высокоуровневый язык программирования для численных вычислений. Сбора и анализа данных. Он может быть использован для управления роботами Lego NXT через последовательный порт Bluetooth (связь с последовательным портом является частью базовой функциональности MATLAB) или через USB – соединение; например. С помощью RWTH-Mindstorms NXT Toolbox (free & open-source).
  • Simulink-это блок-схема среды для моделирования и моделирования динамических систем. Используя Simulink. Пользователь может проектировать и моделировать алгоритмы управления и системы Lego. А затем автоматически программировать Lego NXT или EV3. Поддержка программирования Lego NXT или EV3 требует только Simulink и доступна без дополнительной оплаты.

Поддержка MATLAB и Simulink для программирования Lego Mindstorms доступна в свободном доступе. Более подробная информация находится в Lego Mindstorms Support от MATLAB и Simulink

Lua

pbLua — это порт языка программирования Lua, скриптового языка общего назначения для Lego Mindstorms.

Ада

Порт GNAT доступен для NXT. Он опирается на выделенное ядро времени выполнения . Основанное на профиле Ravenscar, таком же. Как и на спутнике Goce: это позволяет использовать высокоуровневые функции Ada для разработки параллельных систем и систем реального времени на Mindstorms NXT.

URBI

URBI-это еще один язык. Параллельный и управляемый событиями. С интерфейсами к C++/Java и Matlab. Он также имеет компонентную архитектуру (UObject) для распространения. Urbi совместим со многими роботами. Включая Nao (cf Robocup). Bioloid или Aibo.]

FLL NXT Навигация

FLL Nxt Navigation-программа с открытым исходным кодом. Помогающая навигации по таблице соревнований FLL. Он использует файлы NXT-G и .txt для написания программ. Неизвестно, сможете ли вы легально реализовать это в соревнованиях FLL.

Ruby-nxt

Ruby-nxt-это библиотека для программирования NXT на языке программирования Ruby. В отличие от других языков для NXT. Код не компилируется в двоичный файл. Вместо этого код напрямую передается на NXT через соединение Bluetooth.

Робототехника.NXT

Робототехника.NXT-это интерфейс Haskell для NXT по Bluetooth. Он поддерживает прямые команды. Сообщения и множество датчиков (также неофициальных). Он также поддерживает простое управление кирпичом NXT на основе сообщений с помощью удаленно выполняемой программы (включая базовый код NXC).

LibNXT

LibNXT-это служебная библиотека для общения с интеллектуальным кирпичом Lego Mindstorms NXT на относительно низком уровне. LibNXT ориентирован в основном на платформы. Которые игнорирует официальное программное обеспечение Lego Mindstorms NXT. А именно Linux и другие unices. Он будет работать на любой POSIX-совместимой операционной системе. Где поддерживается libusb 0.1 libusb. Поддержка Windows также возможна с помощью win32-порта libusb.

C_NXT

C_NXT-это библиотека для управления Lego NXT. Лицензированная под лицензией GPLv2. Библиотека позволяет пользователям управлять Lego NXT через контроллер Bluetooth из других программ на языке Си. Библиотека обеспечивает низкоуровневый контроль и высокоуровневую абстракцию. Библиотека работает только на Linux.

PyNXC

PyNXC-это проект. Который преобразует код Python в код для загрузки в роботов Lego Mindstorms.

NXT-Python

NXT-Python-это модуль python. Который взаимодействует с NXT через USB или Bluetooth. Он поддерживает прямые команды и несколько датчиков послепродажного обслуживания.

Программное обеспечение LEGO Mindstorms EV3

Программное обеспечение, поставляемое вместе с новым набором Mindstorms EV3, может быть использовано для программирования NXT.[14] На данный момент Bluetooth не поддерживается для NXT. Поэтому программы должны загружаться через USB-кабель.

Физические Etoys

Автомобиль Lego NXT. Который избегает стен. Реализованный в физических Etoys

Physical Etoys — это система визуального программирования для различных электронных устройств. Он поддерживает прямой режим и скомпилированный режим.

Интерпретатор C/C++ Ch

Ch-это интерпретатор C/C++. Работающий с кодом C/C++ для управления Lego NXT или EV3. Загрузка/загрузка прошивки не требуется. Компиляция не требуется. Код C/C++. Работающий в Ch, может управлять либо Lego NXT, EV3, либо несколькими NXT/EV3.]

Базовый комплект Lego Mindstorms NXT 1.0 включает в себя:[16]

  • 3 идентичных серводвигателя. Которые имеют встроенные редукторы в сборе с внутренними оптическими поворотными энкодерами, которые воспринимают их вращение с точностью до одного градуса.[17]
  • Сенсорный датчик определяет. Нажата ли она в данный момент. Ударилась или отпущена. Оранжевая кнопка Enter и серые правая и левая кнопки NXT могут быть запрограммированы в качестве сенсорных датчиков. В программном обеспечении NXT-G значение 0 выдается. Когда оно не нажато. И значение 1 выдается. Если оно нажато вниз.]
  • Датчик света определяет уровень света в одном направлении. А также включает светодиод для освещения объекта. Датчик освещенности может измерять значения отраженного света (с помощью встроенного красного светодиода) или окружающего света. В программном обеспечении NXT-G датчик воспринимает свет в масштабе от 0 до 100, 100-очень яркий и 0-темный.[19] При калибровке датчик также может использоваться в качестве датчика расстояния.
  • Датчик звука измеряет уровень громкости по шкале от 0 до 100, 100-очень громко, 0-полностью бесшумно.
  • Ультразвуковой датчик может измерять расстояние от датчика до чего-то. С чем он сталкивается. И обнаруживать движение. Он может показывать расстояние как в сантиметрах. Так и в дюймах. Максимальное расстояние. Которое он может измерить. Составляет 233 см с точностью до 3 сантиметров. Ультразвуковой датчик работает. Посылая ультразвуковые звуковые волны. Которые отражаются от объекта впереди него. А затем обратно. [20] В базовый комплект Lego Mindstorms 2.0 входят: 2 сенсорных датчика. Один цветовой датчик (обнаруживает несколько различных цветов) и Ультразвуковой датчик.

Эти детали не входят в базовый комплект Lego Mindstorms NXT и могут быть куплены отдельно:[21]

  • Сторонние компании также производят датчики . Такие как компас, гироскоп, инфракрасный трекер, RFID-считыватель и акселерометр. Продаваемые компанией Lego.
  • Датчик температуры может измерять температуру в градусах Цельсия или Фаренгейта.

Датчики собираются и программируются. В программном обеспечении (см. Программирование выше) люди могут решить. Что делать с информацией. Поступающей от датчиков, например. Запрограммировать робота двигаться вперед. Пока он не коснется чего-то.[требуется цитирование]

Lego также продает адаптер для линейки нониусных датчиков. Vernier производит устройства сбора данных и соответствующее программное обеспечение для использования в образовании.[требуется цитирование]

Соединитель

Датчики соединены к кирпичу NXT используя разъем 6 положений модульный который отличает и сетноыми-аналогов и цифровыми интерфейсами. Аналоговый интерфейс обратно совместим (с помощью адаптера) со старой системой робототехники. Цифровой интерфейс способен как на связь I2C, так и на связь RS-485.

NXT 2.0

Lego Mindstorms NXT 2.0-второй набор из серии LEGO Mindstorms, выпущенный 5 августа 2009 года в магазине Lego в США. Набор содержит 619 штук. Включая новый датчик. Который может обнаруживать цвета. Он оценивается примерно в 280 долларов США, 350 долларов США, 230 фунтов стерлингов или 500 долларов США. Lego Mindstorms NXT 2.0 имеет преемника. Названного Lego Mindstorms EV3.]

8547 Особенности комплекта

Модель вилочного погрузчика. Построенного с использованием Lego Mindstorms NXT 2.0

Название этой датской компании игрушек происходит от датской фразы

Смысл девиза компании как раз в том. Что лучшее достаточно хорошо. и они следуют этому девизу. Что части производятся с 2009o миллиметром. И только 18 штук на миллион отбрасываются.

  • Включает в себя звуковой редактор для записи любого звука. А затем программирования NXT кирпича. Чтобы воспроизвести его.
  • Включает в себя редактор изображений для загрузки изображения в кирпич NXT. Чтобы появиться на экране.
  • Включает в себя 619 штук (включая кирпич NXT)

NXT Intelligent Brick

  • 32-разрядный основной микроконтроллер Atmel AT91SAM7 S256 (256 КБ флэш-памяти, 64 КБ оперативной памяти)
  • 8-битный микроконтроллер Atmel ATmega48 @ 4 МГц (4 КБ флэш-памяти, 512 Байт ОЗУ)
  • 100×64 пикселей ЖК-экран
  • Четыре входных порта RJ12 (порты 1-4)
  • Три выходных порта RJ12 (порты A-C)
  • USB-порт
  • Bluetooth Класс II V2.0
  • Громкоговоритель – качество звука 8 кГц, 8-битное разрешение. Частота дискретизации 2-16 кГц
  • Четыре кнопки. Используемые для навигации по меню и могут использоваться в программах.
  • Питание от шести батареек типа АА или аккумуляторной батареи NXT

Датчики

Детали можно заказать отдельно. В оригинальный комплект входят датчики цвета. Два сенсорных датчика и ультразвуковой датчик:

  • Датчик цвета (9694). Для обнаружения 6 различных цветов: синий, зеленый. Красный, желтый. Белый, черный
  • Датчик света (9844), для обнаружения уровней света. (Входит в первую версию, но в 2.0, заменен цветовым датчиком.)
  • Сенсор касания (9843). Простая кнопка. Которая чувствует. Если что-то столкнулось с ней.
  • Ультразвуковой датчик (9846). Предназначенный для измерения расстояний с помощью неслышимых звуковых волн.
  • Звуковой датчик (9845). Для базового Способен измерять громкость. Но не может записывать реальные звуки.
  • Датчик компаса (MS1034). Для определения направления. Имеет встроенный калибратор для уменьшения помех от других магнитных элементов. (Не входит в базовый комплект. Для продвинутых пользователей.)
  • Датчик акселерометра (MS1040). Для определения общего направления движения. Также можно измерить g-силу. (Не входит в базовый комплект. Для продвинутых пользователей.)
  • Датчик RFID. Для связи между несколькими роботами. (Не входит в базовый комплект. Для ОЧЕНЬ продвинутых пользователей.)
  • Датчик вращения (встроенный в серводвигатели), для измерения того. Как далеко он повернулся. Это уникально. Потому что он измеряет. Основываясь на повороте шестерен внутри. А не на самом двигателе. Полезно для роботов. Которые будут двигаться вдоль берега и действовать в зависимости от пройденного расстояния.
  • Связь по Bluetooth (встроенная в Может использоваться в середине программы или для загрузки новых программ и данных.

Приводы

  • Серводвигатель (9842)
  • Датчик цвета может светить красным. Зеленым или синим светом. (Обычно он воспринимает цвет. Используя лампу в настройках и считывая уровни отраженного света. Он использует ту же лампу здесь для других целей.)

Программирование

Очень простые программы могут быть созданы с помощью самого интеллектуального кирпича NXT. Для создания более крупных и сложных программ требуется программное обеспечение для программирования на ПК. Стандартное программное обеспечение для программирования-NXT-G. Которое входит в комплект поставки. Также доступно стороннее программное обеспечение для программирования. Некоторые из которых перечислены ниже:

NXT-G

NXT-G-это программное обеспечение для программирования. Входящее в стандартный базовый комплект. Он основан на графическом программировании LabVIEW. Он имеет интерактивную среду перетаскивания.

LabVIEW Toolkit

NXT-G работает на базе LabVIEW, отраслевого стандарта программирования. Созданный компанией National Instruments, LabVIEW использует программирование потоков данных для создания виртуального инструмента. Чтобы обеспечить более совершенное программирование в графическом смысле. National Instruments выпустила Набор инструментов для NXT. Версия 1.0 вышла в декабре 2006 года. С момента его выпуска было обнаружено несколько ошибок и создано несколько новых датчиков. Хотя инструментарий действительно позволяет создавать новые датчики. National Instruments еще официально не выпустила обновление.

Lego::NXT

LEGO::NXT предоставляет API между Perl и NXT.

Ада

Порт GNAT доступен для NXT. Для запуска требуется nxtOSEK. Порт включает привязки Ada к аппаратному обеспечению NXT и nxtOSEK.

Следующие байтовые коды & Не совсем C

Next Byte Codes (NBC)-это простой язык с открытым исходным кодом с синтаксисом ассемблера. Который может использоваться для программирования NXT-кирпича.

Not eXactly C (NXC)-это высокоуровневый язык с открытым исходнымкодом [7], похожий на C, построенный поверх компилятора NBC. Он также может быть использован для программирования кирпича NXT. NXC — это в основном NQC для NXT.[8] Это наиболее широко используемый сторонний язык программирования.

ROBOTC

ROBOTC-это интегрированная среда разработки, ориентированная на студентов. Которая используется для программирования и управления роботами Lego NXT , VEX, RCXи Arduino с использованием языка программирования. Основанного на языке программирования C.

RoboMind

RoboMind-это образовательная среда программирования. Которая предлагает краткий скриптовый язык для программирования имитируемого робота. Однако эти интернационализированные сценарии также могут быть напрямую экспортированы в роботов Lego Mindstorms.[23] Для его запуска не требуется пользовательская прошивка.

NXTGCC

NXTGCC-это набор инструментов GCC для программирования прошивки NXT на языке C.

URBI

URBI-это параллельный и управляемый событиями язык с интерфейсами C++/Java и MATLAB. Он также имеет компонентную архитектуру (UObject) для распределенных вычислений. Urbi совместим со многими роботами. Включая Nao (cf Robocup). Bioloid или Aibo.]

leJOS NXJ

leJOS NXJ-это высокоуровневый язык с открытым исходным кодом. Основанный на Java, который использует пользовательскую прошивку. Разработанную командой leJOS.]

nxtOSEK

Чтобы иметь возможность писать на C (языке программирования)/C++, можно использовать nxtOSEK. Но для этого также требуется пользовательская прошивка.]

MATLAB и Simulink

  • MATLAB-это высокоуровневый язык программирования для численных вычислений. Сбора и анализа данных. Он может быть использован для управления роботами Lego NXT через последовательный порт Bluetooth (связь с последовательным портом является частью базовой функциональности MATLAB) или через USB – соединение; например. С помощью RWTH-Mindstorms NXT Toolbox (free & open-source).
  • Simulink-это среда на базе MATLAB для моделирования и моделирования динамических систем. Используя Simulink. Пользователь может разрабатывать управляющие алгоритмы. Автоматически генерировать код на языке Си для этих алгоритмов и загружать скомпилированный код в Lego NXT.

Код MATLAB и Simulink для программирования NXT находится в свободном доступе.

Lua

pbLua — это реализация языка программирования Lua, скриптового языка общего назначения для Lego Mindstorms.

FLL NXT Навигация

FLL Nxt Navigation-программа с открытым исходным кодом. Помогающая навигации по таблице соревнований FLL. Использует файлы NXT-G и .txt для написания программ.

ruby-nxt

ruby-nxt-это библиотека для программирования NXT для языка программирования Ruby. В отличие от других языков для NXT код не компилируется в двоичный файл. Вместо этого код напрямую передается в NXT через соединение Bluetooth. Этот метод выполнения значительно медленнее. Чем прямое выполнение скомпилированного кода.

Робототехника. NXT

Робототехника.NXT-это интерфейс Haskell для NXT по Bluetooth. Он поддерживает прямые команды. Сообщения и множество датчиков (также неофициальных). Он также поддерживает простое управление кирпичом NXT на основе сообщений с помощью удаленно выполняемой программы (включая базовый код NXC).

См. также

Примечания

  1. ^
  2. ^ . Веб-сайт Mindstorms. LEGO Group. Извлечено 2008-12-26.
  3. ^ . Сайт Lego Education. Lego Group. Архивирован с оригинала на 2011-12-10годы . Проверено 2011-09-30.
  4. ^ .
  5. ^ . Архивирован с оригинала 6 октября 2009 года.
  6. ^ Пик, Брайан (2007-07-16). Microsoft Robotics Studio и Lego Mindstorms NXT. Пример проекта на coding4fun. MSDN Channel 9, 16 июля 2007 года. [править]

    У Викисклада есть средства массовой информации, связанные с Lego Mindstorms NXT.