Ресурсный набор лего nxt

Обновлено: 25.04.2024

Известная притча гласит, что, когда к мудрецу обратилась молодая мать с ребенком на руках и спросила, с какого возраста ей следует начинать воспитание отпрыска, старец ответил, что она опоздала на столько лет, сколько уже было ребенку. С выбором будущего призвания ситуация достаточно похожая. Сложно требовать осознания своих склонностей и интересов от младенца, но вот уже в средней школе начинаются всевозможные специализации, и к этому времени неплохо бы уже знать, в какую сторону двигаться подросшему чаду. Но одно мы знаем уже почти наверняка – в течение ближайших десятилетий от 30 до 80% профессий будут полностью автоматизированы.

Робототехника, кибернетика, понимание алгоритмов – тот набор навыков, с которым, скорее всего, человеку не будут грозить настолько туманные перспективы. Конечно, скорее всего параллельно с заменой рабочей силы на роботов будет развиваться и концепция безусловного базового дохода, вот только вряд ли вы хотите для своего ребенка подобного будущего.

Способов быстро показать молодой и заинтересованной аудитории основы программирования и робототехники сейчас существует много. Все они стоят недорого, достаточно просты в освоении, дают уже через несколько часов понимание основ алгоритмов и концепций кибернетических устройств. Но в учебных классах легко столкнуться и с недостатками этих платформ – ограниченной износоустойчивостью (да и чего греха таить – «идиотоустойчивостью» тоже) макетных плат, не очень дружелюбными для детей 11-12 лет интерфейсами ПО, относительно небольшим элементом «игры».

Со всеми этими недостатками уже больше двадцати лет борются в самой известной компании-производителе развивающих наборов LEGO Education. Речь идет, разумеется, о платформе MINDSTORMS Education EV3. Начиная с произведенных в начале 90-х Mindstorms RCX и заканчивая самым современным комплексом MINDSTORMS Education EV3 принцип формирования платформы остается прежним. В основе лежит «умный кирпич» (“intelligent brick”), это микрокомпьютер с экраном и портами ввода-вывода, к которому подключаются все остальные компоненты. Как и в любой робототехнической системе периферийные устройства подразделяются на сенсоры и эффекторы. При помощи сенсоров робот воспринимает окружающий мир, а благодаря эффекторам – реагирует на него в соответствии с заложенной программой. Соединяются компоненты платформы вместе простыми кабелями без пайки, а механические конструкции ограничены только прочностью пластиковых деталей и фантазией конструкторов.

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

LEGO MINDSTORMS Education EV3 сделан совместимым с деталями Lego Technic. Это означает, что платформу можно использовать для создания самых разнообразных и даже невероятных конструкций, от простых «машинок» и «роборук» до сложных конвейеров или даже «решателей» кубика Рубика. Фактически любой набор Lego Technic может стать источником деталей для проектов, также никаких проблем не будет с заменой пострадавших запасных частей. Да, выглядят они не так брутально, как старый советский алюминиевый конструктор, но на практике оказываются даже прочнее изделий из металла. По крайней мере в моей коллекции, стартовавшей в 1993 году, еще не обнаружилось ни одной сломанной детали.

В комплекте с базовым образовательным набором MINDSTORMS Education EV3 есть 541 деталь Lego Technic. Можно докупить как специализированный ресурсный набор вроде 45560 (или более старый 9648, выпускавшийся еще для NXT), так и просто большой конструктор типа 42043 (2800 деталей) или 42055 (почти 4000 деталей), и, вдоволь наигравшись с основной моделью, пустить его на «кирпичики» для кибернетических опытов. В пересчете на одну деталь Lego здесь очень сильно выигрывает у других наборов – всего 3-5 рублей за одну штуку.


Ну а если у кого-то сохранилась старая коллекция, включающая десятки тысяч деталей, то беспокоиться о ресурсах и вовсе не придется.



Скриншот из сервиса Brickset (интерактивная база для владельцев конструкторов Lego, позволяющая собирать разнообразную статистику) автора

Впрочем, это касается только «пассивных» элементов вроде балок, колес или соединительных пинов. Сенсоры и эффекторы, разумеется, значительно дороже, но и в базовом комплекте их более чем достаточно. Mindstorms EV3 поставляется в комплекте с тремя моторами (два побольше и помощнее и один компактный сервопривод), парой сенсоров касания (своего рода «умные» кнопки), ультразвуковым, гироскопическим и цветовым сенсорами (он же может работать в режиме сенсора освещенности). Плюс сохранена совместимость с датчиками от предыдущего поколения роботов Lego Education – Mindstorms NXT (в их число входит, например, датчик уровня шума).


Но вернемся к «умному кирпичу», сердцу системы. Это действительно довольно увесистый и объемный «кирпичик», оснащенный монохромным ЖК-экраном 178х128 (на него выводится не только меню, но и всевозможные кастомные картинки в процессе работы) с изменяемым цветом подсветки. При помощи проводов со стандартным разъемом RJ-12 к нему подключаются сенсоры и эффекторы (до четырех устройств каждого типа), есть слот для microSDHC и USB-порт.


Последний можно использовать как для загрузки собственно программ, так и для обновления прошивки. Однако не обделен микроконтроллер и беспроводными интерфейсами, при желании загружать программы можно через Wi-Fi (нужен внешний модуль) или Bluetooth (встроен). Также, если мы собираем робота с дистанционным управлением, «рулить» им можно с использованием беспроводной связи со смартфона или планшета.

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

USB-порт теперь поддерживает режим хоста, это позволяет не только подключать Wi-Fi-адаптер, но и соединять несколько блоков EV3 в одного сложного робота. Правда, и уровень задач при этом становится совершенно «не детским».

Наконец, MINDSTORMS Education EV3 обзавелся поддержкой аккумуляторного питания. Вместо шести АА-батареек можно установить идущий в комплекте литиево-ионный аккумулятор на два с хвостиком ампер-часа. Конечно, никто не запрещает пользоваться пальчиковыми аккумуляторами типа eneloop, но необходимость их вынимать для зарядки делает юзабилити ниже среднего. Да и по цене пара комплектов eneloop c зарядником вполне сравнима с фирменным аккумулятором.


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


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


Третий, так называемый М-сервопривод (средний по размеру мотор) выдает в три раза меньший крутящий момент, но зато его скорость вращения выше почти в два раза.


Что касается сенсоров, то на самом деле вовсе не обязательно ограничиваться теми, что предлагает LEGO Education (хотя и их выше крыши для любого образовательного проекта), ряд сторонних компаний выпускает совместимые и порой довольно экзотические сенсоры. Исходный код прошивки и аппаратные спецификации полностью открыты.

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

Мы много говорили об аппаратной базе, но на самом деле далеко не только она определяет эффективность занятий по робототехнике. Именно наличие действительно интуитивно понятного ПО на множестве платформ (Мак, ПК, мобильные устройства) и готовых учебных планов делает LEGO MINDSTORMS Education EV3 платформой выбора при обучении, и особенно на рубеже начальной и средней школы, для детей лет десяти.



Приветственный экран приложения на iPad

Визуализация алгоритмов в родном ПО LEGO MINDSTORMS Education EV3 находится просто на высшем уровне – достаточно буквально за несколько минут усвоить основные виды взаимодействия логических блоков (условия перехода, цикл и т.д.) и в дальнейшем постепенно наращивать сложность программ. Разумеется, есть и готовые обучающие проекты для десятков разнообразных моделей роботов, а при желании в интернет-сообществах можно найти тысячи интересных программ.



Пример программы в приложении для iPad

Продвинутые же пользователи могут установить LabVIEW или RobotC – «мозги» LEGO MINDSTORMS Education EV3 полностью совместимы с этими пакетами. Вот экспортировать старые проекты для NXT без дополнительной конвертации, увы, не выйдет.

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



Обучающие видео по работе с редактором контента EV3

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

Микрокомпьютер EV3 будет собирать данные с датчиков в реальном режиме времени и в зависимости от температурного фона запускать ту или иную программу модели. При высокой температуре включается вентилятор, при низкой — обогреватель. А ученики смогут фиксировать и анализировать данные, дорабатывая модель.



Журналирование данных

Открытость прошивки «умного кирпича» уже сыграла свою роль: существуют альтернативные варианты с поддержкой большинства популярных языков программирования (десятки их). По большому счету использование EV3 можно «прикрутить» к любому образовательному проекту, связанному с программированием, поскольку мало что так радует, как возможность увидеть работу собственных алгоритмов «в железе».

Многие ждут, что камнем преткновения в этой истории может оказаться цена. Действительно, за Базовый набор придется выложить 29 900 рублей, плюс еще 2 500 отдать за зарядку. Однако в эту сумму включены детали и электроника для комфортной работы двух учеников, а также полноценное базовое ПО с 48 готовыми занятиями (которое с января 2016 полностью бесплатно, как для частных лиц, так и для организаций). Конечно, дополнительное оборудование и комплекты заданий могут увеличить стоимость, но в пределах разумного. Так комплект для 8 учеников, включающий базовые и ресурсные наборы LME EV3, зарядные устройства, ПО и дополнительный комплект заданий «Инженерные проекты», обойдется в 174 900. Вполне приемлемо для оснащения, например, кружка в школе.

Да, это заметно дороже простых Arduino-подобных платформ. Но и возможности, а также уровень вовлеченности гораздо выше. Учебную программу на базе EV3 можно спокойно планировать на всю среднюю школу и дальше. Кроме того, при адекватном использовании LEGO MINDSTORMS Education EV3 банально «переживет» несколько простых комплектов за счет механических качеств, легкой заменяемости и доступности деталей (на моей практике только один шлейф RJ-12 потребовал замены в 10-летнем NXT).

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

Выбор пути

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

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

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

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

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

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

В жизни

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

Астраханские школьники Руслан Казимов и Михаил Гладышев на базе регионального технопарка разработали робот-тренажер для реабилитации суставов рук.

На разработку тренажёра восьмиклассники потратили чуть меньше двух месяцев. Они представили свой проект на региональном этапе IX Всероссийского конкурса научно-инновационных проектов в ЮФО, где заняли второе место. В дальнейшем они планируют создать промышленный образец – пока разработчики предлагают только прототип, изготовленный из образовательного робототехнического набора LEGO MINDSTORMS Education EV3.

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

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

На Всемирной Олимпиаде по робототехнике 2015 года (WRO 2015) российская команда DRL из Санкт-Петербурга была награждена специальным призом за креативность от компании LEGO Education (LEGO EDUCATION CREATIVITY AWARD).

Российская команда DRL представила проект CaveBot. Ребята из Санкт-Петербурга под руководством тренера Сергея Филиппова создали уникального робота-исследователя для обнаружения неизведанных областей в пещерах. Разработка затрагивает различные научные области, так как уникальный робот делает возможным выполнение разнообразных по сложности задач.

Команда построила робота-скалолаза, оснащенного различными датчиками, для обнаружения предметов с целью их последующего исследования. Полученные данные могут быть превращены в 3D-модели на компьютере.

А 13-летний Шубхэм Бэнерджи создал принтер Брайля из частей LEGO в рамках школьного научного проекта. Позже, при участии его семьи, был создан стартап по запуску изобретения, который получил финансовую поддержку от технической корпорации Intel.



(Photo: Marcio Jose Sanchez, AP)

Идея создать принтер пришла к Шубхэму после исследования Брайля в сети Интернет. Поняв, что принтеры для слепой печати стоят от 2,000$ и выше, школьник решил сделать более дешевую версию.

Вскоре после изобретения незрячие дети и их родители начали связываться с Шубхэмом с единственной просьбой — сделать недорогой принтер Брайля, обещая «купить его прямо с полки».

Как видите, использование MINDSTORMS Education EV3 в процессе обучения позволяет учащимся по-максимуму включать фантазию, создавая все новые и новые механизмы, которые не только помогают реализовать идеи или наглядно провести какие-либо эксперименты, но и начать определяться со своей будущей профессией.

Если у вас есть вопросы насчет использования этих решений в образовательном процессе (или о самих продуктах) — пишите их в комментариях.

ПервоРобот LEGO Mindstorms NXT - Обзор конструктора

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

Краткую информацию о линейке конструкторов LEGO Mindstorms, а также сравнение NXT и EV3 наборов можно найти в статье, посвященной EV3.

Сразу перейдем к содержимому набора LEGO Mindstorms NXT 2.0. Вот что входит в образовательную версию набора:

  • 1 программируемый блок
  • 3 мотора:
  • 5 датчиков:
    • 2 датчика касания
    • 1 датчик освещенности
    • 1 ультразвуковой датчик расстояния
    • 1 микрофон

    9797_713x380_MainProduct.jpg

    Датчики и моторы

    Рассмотрим основные возможности и характеристики моторов и датчиков:

    lego-mindstorms-nxt-touch-sensor.jpg

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

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

    light.jpg

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

    Он позволяет роботу различать яркость объектов и определять освещенность помещения.

    • Способен работать в 2 режимах – измерение отраженного света и окружающего освещения
    • В режиме определения яркости можно различать цвета – например, у желтого цвета яркость ниже, чем у синего

    lego-mindstorms-nxt-sound-sensor.jpg

    Датчик звука

    Датчик звука (микрофон) позволяет определить уровень шума.

    lego-mindstorms-nxt-ultrasonic-sensor.jpg

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

    С помощью этого датчика робот может «видеть» предметы перед собой и определять расстояние до них.

    • Может измерять расстояние в диапазоне 3 - 250 см.
    • Дискретность результата измерений: +/- 1 см.

    M076274P01WL.jpg

    Все три мотора в наборе одинаковые. Стоит отметить, что в каждом моторе присутствует датчик оборотов – энкодер. Он позволяет контролировать движение мотора с высокой точностью. Характеристики мотора:

    • Максимальные обороты - 160- 170 об/мин.
    • Крутящий момент - 20 Н/см
    • Встроенный датчик угла поворота (энкодер) мотора с точностью 1 градус

    NXT датчики, моторы и кабели совместимы с EV3, поэтому оба набора – NXT и EV3 можно комбинировать.

    Программируемый блок NXT

    Программируемый блок NXT представляет собой «мозг» робота. К «мозгу» можно подключить 3 мотора и 4 сенсора, и именно в нем хранятся программы робота. Когда программа запущена блок NXT читает программу и в соответствии с ней дает команды моторам и сенсорам. Робота можно подключить к компьютеру через USB или Bluetooth. Между собой роботы могут «общаться» по Bluetooth

    9841.jpg

    Ниже представлены характеристики программируемого блока NXT:

    С NXT поставляется графическая среда разработки на базе LabView - NXT-G. Поддерживаемые операционные системы - Windows и Mac. Среда разработки NXT очень простая и рассчитана на ребят, не обладающих специальными знаниями по информатике и не знакомых с программированием.

    NXT-G.jpg

    В среде NXT-G каждая команда роботу представлена в виде графического блока. Пример команды для мотора – включить мотор на 3 секунды или включить мотор на 4 оборота. Команда для сенсора зависит от типа сенсора. Например, для датчика освещенности команда может звучать так – скажи, какова освещенность комнаты, а для датчика расстояния – скажи, какое расстояние до препятствия. Составив последовательность таких блоков, можно создать программу – запрограммировать робота.

    В образовательный набор включена инструкция для сборки базового робота.

    Для NXT набора был выпущен ресурсный набор, позволяющий собирать другие модели, используя новые детали.

    mindstorms-education-resource-set-rover-model-9695.PNG

    Робототехнические конструкторы NXT и EV3 являются отличным средством для изучения информатики, физики, математики, программирования. Давайте учиться интересно!

     NIR1032 Инфракрасный приемник к микрокомпьютеру NXT

    Набор LEGO Mindstorms NXT – одно из самых интересных, разнообразных по своим возможностям и технически сложных творений ЛЕГО. Это второй по счету конструктор в образовательной серии Майндстормс, выпущенный в 2008 году. Как и предыдущая версия, он служит для создания программируемых механизмов, выполняющих ряд действий в соответствии с заранее продуманным алгоритмом. В сердце конструктора лежит микрокомпьютер ЛЕГО NXT, который и обеспечивает интеллектуальное поведение роботов.

    Купить LEGO Mindstorms NXT можно в двух версиях:

    • Розничной, используемой больше в развлекательных целях;
    • Образовательной, которая применяется в кружках робототехники и на школьных уроках.

    Образовательный набор LEGO NXT дополняется лицензионным ПО LabView и методическими материалами, помогающими организовать работу педагога и ученика. Все материалы и программное обеспечение докупаются отдельно.

    Состав серии ЛЕГО Майндстормс NXT

    • Базовый конструктор, который помимо строительных деталей включает необходимую электронику: микропроцессор NXT, сервомоторы, разнообразные сенсоры, обеспечивающие интеллектуальное поведение роботов;
    • Ресурсный набор, содержащий детали для расширения возможностей базовой версии;
    • Перворобо Экоград – конструктор, позволяющий ученикам построить энергоэффективный город и использовать роботов для решения разных задач;
    • Множество дополнительных датчиков и комплектующих;
    • Программное обеспечение и дополнительные обучающие материалы.

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

    Программирование с ЛЕГО Mindstorms NXT

    Конструктор ЛЕГО Майндстормс NXT работает с графической программной средой, созданной на базе LabView и поддерживающей самые распространенные операционные системы – Mac и Windows. Она проста для понимания детей и может применяться даже теми людьми, кто не знаком с информатикой. Программировать можно и на других языках, подобных Java, Visual Basic, C+ и т.п.

    Почему стоит купить ЛЕГО Майндстормс NXT?

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

    Кому можно купить NXT?

    Конструкторы рекомендованы для ребят 7-10 лет, но они также способны вызвать интерес и у младших детей, и даже у взрослых. Наборы активно применяются на уроках в школе, в кружках по программированию и робототехнике. Без них не проходят известные соревнования роботов, в том числе мировая олимпиада World Robot Olympiad.

    9797 Базовый набор LEGO MINDSTORMS Education NXT

    Отзывов: 4

    Отзывов: 4 | Написать отзыв

    Быстрый заказ

    Пожалуйста, укажите имя и свой номер телефона, чтобы мы могли связаться с Вами

    Этот набор позволяет учащимся собирать и программировать модели реальных роботов. В основе конструктора – база LEGO Techniс. На ней «построены» развивающие технологические конструкторы для юных физиков, механиков и инженеров. Сердцем базового набора Education NXT является программируемый интеллектуальный микрокомпьютер NXT, управляющий моторами и собирающий данные с датчиков. Также микрокомпьютер поддерживает протоколы Bluetooth. Этот конструктор с легкостью вдохновит ваших учеников и юных инженеров на совместное обсуждение проблемы и поиск креативного решения, которые затем можно будет претворить в жизнь, построив и протестировав, используя набор моторов, датчиков и строительных элементов LEGO.

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

    Состав базового набора NXT:

    Микрокомпьютер NXT
    3 мотора:
    Интерактивный сервомотор – 3 шт.
    5 датчиков:
    Датчик касания NXT – 2 шт.
    Ультразвуковой датчик (расстояния) NXT – 1 шт.
    Датчик звука (микрофон) NXT – 1 шт.
    Датчик освещенности NXT – 1 шт.

    Аккумуляторная батарея NXT для микрокомпьютера NXT (робота)

    Пластиковая коробка для хранения
    Сортировочный лоток для облегчения процесса сборки роботов
    413 элементов Lego Technic

    При помощи Mindstorms NXT 2.0 юный конструктор:
    соберет первых программируемых роботов
    с помощью электромоторов сделает их подвижными
    научится управлению через датчики
    через компьютер запрограммирует «мозг» робота
    сможет изучать технические науки (мехатроника и робототехника) в игровой форме.

    Для создания сборки роботов и создания программ потребуется приобретение программного обеспечения.
    Для подзарядки аккумулятора потребуется зарядное устройство.

    Написать отзыв

    Ваш отзыв: Внимание: HTML не поддерживается! Используйте обычный текст.



    Лет эдак в 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 из детской игрушки превращается в весьма мощную штуку, позволяющую создавать сложные и «умные» механизмы, как например вот эта гитара:

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