Глава 1. Маленькие шаги большого пути
 | Просмотров: 5 459

Дождливой осенью 1998 года, когда люди уже начинали скучать о прошедшем лете, компания “LEGO” подарила миру свой первый конструктор, объединявший в себе не только обычные для LEGO кубики, пластины, колёса и шестерёнки, но и микрокомпьютер в виде небольшого ярко-жёлтого “кирпича”. Этот набор получил название MINDSTORMS: The Robotics Invention System (RIS). Программируемый блок, названный Robotic Control Explorer (RCX), позволял подключить к нему датчики и моторы, написать программу, и превратить любую конструкцию в самостоятельного робота, умеющего видеть, чувствовать, принимать решения и выполнять определённые действия. Эта система была придумана, спроектирована и изготовлена при непосредственном участии MIT Media Lab - лаборатории Массачусетского технологического института (Massachusetts Institute of Technology, MIT), активно внедрявшего компьютерные технологии в процесс обучения своих студентов. Название “MINDSTORMS”, которое стало именем всего семейства конструкторов на базе программируемых контроллеров LEGO, было взято из названия книги “Mindstorms: Children, Computers, and Powerful Ideas”, написанной профессором математики и компьютерных технологий MIT Сеймуром Пейпертом (Seymour Papert). В этой книге Пейперт предложил уникальную концепцию объединения компьютерных технологий и образовательного процесса, которую он назвал “Microworld” (“Микромир”). В то время MIT был заинтересован в простой и эффективной платформе, сочетающей в себе базу для конструирования и исследований с компьютерными технологиями. “LEGO” производила конструкторы и игрушки с конца 1940-х годов, начиная с широко известных скрепляемых блоков и заканчивая сугубо техническими компонентами, такими как балки, моторы, шестерни и пневматика. Хотя подход к сборке моделей изменился, новые детали были спроектированы так, чтобы быть полностью совместимыми со старыми. Эта функциональная совместимость и огромный ассортимент различных деталей стали одной из причин, по которой компания “LEGO” была выбрана для решения задачи по созданию обучающей платформы. Так появилась серия MINDSTORMS.

■ Robotics Invention System и RCX

Выпущенная в 1998 году “Robotics Invention System” была поистине революционной, потому что впервые люди, занимающиеся конструированием и программированием роботов, получили возможность легко обмениваться своими моделями и изобретениями. Не требовалось быть специалистом в электронике и программировании, не нужно было даже уметь держать в руках паяльник, чтобы построить работающую модель робота. Кроме того, простой и долговечный конструктор LEGO, объединённый с микрокомпьютером и набором датчиков и механизмов, оказался идеальным вариантом для образовательных учреждений, которым требовалась платформа для лабораторных исследований и организации учебного процесса. В состав набора RIS (рисунок 1-1) входило более 700 деталей, в том числе “интеллектуальный блок” RCX, два сервомотора с встроенными редукторами, два датчика касания и один датчик освещённости. Также можно было дополнительно приобрести датчик температуры и датчик вращения, которые не поставлялись в комплекте с основным набором. В дальнейшем компания “LEGO” выпустила ещё две версии набора “Robotics Invention System” – 1.5 и 2.0, в 1999 и 2001 году соответственно, которые имели незначительные отличия в составе деталей и комплектовались более новым RCX 2.0.

Рисунок 1-1. Набор “Robotics Invention System” 1.0

Первое поколение “интеллектуальных блоков” RCX (рисунок 1-2) было построено на 8-битном микроконтроллере Renesas H8/300, работающем на частоте 16Мгц и имеющем 16-битную адресную шину, 16Кб ППЗУ, 512 байт собственного и 28 килобайт (по некоторым данным – 32Кб) внешнего ОЗУ. Блок RCX имел три входа, три выхода, инфракрасный коммуникационный порт, динамик и четырёхсимвольный LCD-дисплей. Также этот блок был оснащён разъёмом для подключения адаптера питания, что позволяло использовать его в лабораторных условиях и не заботиться о периодической подзарядке аккумуляторов или регулярной замене батареек. Минус такого решения только в потере автономности при питании от адаптера, но всегда можно было отключить провод и воспользоваться батарейками. К слову сказать, вышедший позже блок RCX 2.0 по непонятным мотивам был лишён разъёма для адаптера, что явно оказалось не лучшей идеей.

RCX

Рисунок 1-2. Интеллектуальные блоки RCX версии 1.0 и 2.0

Самая первая версия RCX программировалась с помощью языка “Brick Logo”, и, похоже, это было ужасно. В дальнейшем компания “LEGO” выпустила специальную версию RIS, которая называлась “Lego Mindstorms for Schools” и комплектовалась программным обеспечением “ROBOLAB” – графической средой программирования на основе LabVIEW (рисунок 1-3). Процесс программирования в этой среде был похож на складывание моделей из кубиков LEGO – программа составлялась в визуальном редакторе из функциональных блоков. Значительно упрощённый язык программирования хорошо подходил для решения большинства несложных задач, но ему явно не хватало высокоуровневых функций, свойственных большинству полноценных языков программирования.

robolab

Рисунок 1-3. Интерфейс ROBOLAB

Счастливчики, купившие наборы RIS сразу же столкнулись с огромным количеством трудностей и проблем при попытках программировать и использовать блоки RCX в своих разработках. По неведомым причинам компания “LEGO” держала в секрете техническую информацию о внутреннем устройстве RCX и датчиков, и энтузиастам ничего не оставалось, как разбирать датчики и блоки, заниматься реверс-инжинирингом и “взломом” программного кода, чтобы добыть хоть какую-то информацию и поделиться её с остальными. Начали складываться группы “хакеров” и “гиков”, которые разрабатывали собственное программное обеспечение, придумывали и изготавливали самодельные датчики, и всячески пытались выйти за рамки тех ограничений, которыми “LEGO” наделила своё детище. Интернет в те времена только зарождался, люди подключались к Сети через медленные модемы по телефонным линиям, и это был реальный кошмар. Основными средствами для общения были новостные группы и адресные рассылки по электронной почте. Несмотря на все эти трудности в организации общения и взаимодействия, группа фанатов, в которую входили Кекоа Праудфут (Kekoa Proudfoot), Рассел Нельсон (Russell Nelson), Дэйв Баум (Dave Baum), Ральф Хемпел (Ralph Hempel) и Маркус Нога(Markus Noga), разработали альтернативные языки программирования для RCX, а Майкл Гаспери (Michael Gasperi) опубликовал инструкции по изготовлению самодельных датчиков всего через несколько месяцев после выхода в свет RIS. В конце концов, компания “LEGO” сдалась под давлением возмущённой общественности, и опубликовала программные средства разработки (Software Development Kit, SDK) и прочую техническую документацию, что сделало RCX гораздо более открытой платформой.

■ Младшие братья

В том же 1998 году на рынок Европы и Австралии поступил набор “CyberMaster” (рисунок 1-4). Хоть официально он принадлежит к серии “TECHNIC”, а не “MINDSTORMS”, у него гораздо больше общего с RCX, чем у всех остальных наборов (за исключением NXT). Этот контроллер построен на той же элементной базе, что и RCX, и, как утверждают, совместим с ним на программном уровне. “CyberMaster” имеет встроенные моторы и датчики вращения, что накладывает ограничения на конструктивное исполнение моделей. Один дополнительный выход позволяет подключить третий мотор. Три входа для подключения датчиков полностью аналогичны входам блока RCX, но, в отличие от датчиков RCX, датчики из комплекта устроены немного по-другому (в каждом резистор своего номинала), и могут быть подключены только каждый к своему входу. Основное отличие заключается в отсутствии инфракрасного канала связи, который заменён двухсторонней радиосвязью. По сути “CyberMaster” – система радиоуправления, позволяющая управлять моделью с помощью персонального компьютера.

Cybermaster

Рисунок 1-4. Набор “ CyberMaster” и его центральный блок

В 2002 году компания “LEGO” выпустила серию роботов под общим именем “Spybotics”. Четыре разных самоходных устройства, громко именуемых “программируемыми роботами”, построены на основе одного общего контроллера, очень близкого по функциям к “CyberMaster” (рисунок 1-5). Spybotics - специализированная система, в которой микроконтроллер, датчики, двигатели, коммуникационная система и батареи питания объединены в единый блок – Spybotic Programmable Controller (SPC) (рисунок 1-6). Хоть этот контроллер имеет характеристики лучше, чем RCX, но для серьёзных роботостроителей он не представляет интереса по тем же причинам, что и “CyberMaster” – невозможность произвольной компоновки и подключения внешних устройств полностью перечёркивает все его достоинства. Очередная “вещь в себе”, не заслужившая широкого признания.

Spybots

Рисунок 1-5. Серия “Spybotics”

SPC

Рисунок 1-6. Контроллер SPC

Вслед за RIS, в 1999 году “LEGO” выпустила набор “Robotics Discovery Set” (RDS), построенный на основе упрощённого программируемого блока “Scout” (рисунок 1-7). Этот набор был рассчитан на более молодую аудиторию, операционная система Scout-а была жестко зашита в ПЗУ и не позволяла вносить в неё изменения, программирование сводилось к минимуму и выполнялось без подключения к компьютеру. Этот набор не вызвал почти никакого интереса со стороны сообщества MINDSTORMS по причине откровенной ограниченности блока Scout и невозможности использовать его для сколь-нибудь серьёзных проектов.

Scout

Рисунок 1-7. Программируемый блок “Scout”

В 1999 и 2000 годах вышли наборы “Droid Developer Kit” и “Dark Side Developer Kit”, в комплект которых входил блок “Micro Scout” (рисунок 1-8), вообще не поддававшийся перепрограммированию. По сути это был мотор с дистанционным управлением и до предела урезанными возможностями программирования – блок позволял запрограммировать всего пять команд. Что с этим делать, и какой вообще прок от такого программирования – непонятно. Складывалось впечатление, что компания “LEGO” идёт совершенно не в том направлении, которого от неё ждут. Вместо расширения возможностей программируемых блоков и добавления новых датчиков и устройств, “LEGO” всё больше и больше упрощала свои новые продукты.

MicroScout

Рисунок 1-8. Блок “Micro Scout”

Положение на спас даже набор “Vision Command” (рисунок 1-9), который вышел в 2000 году и предлагался как средство, позволявшее наделить роботов на основе RCX полноценным зрением. По сути это была обычная веб-камера с программой под Windows, которая использовала RCX как исполнительное устройство. Полноценной работы с камерой средствами самого RCX не было, и смысл подключения камеры к автономному роботу терялся полностью. Разочарованию сообщества любителей MINDSTORMS не было предела.

VisionCommand

Рисунок 1-9. Набор “Vision Command”

Может показаться невероятным, но в мире, где развитие микроэлектроники идёт с невообразимой скоростью, и электронные устройства устаревают сразу же, как только оказываются на полках магазинов, RCX оставался неизменным на протяжении восьми лет. Вероятно, одной из причин было то, что система образования США (и Массачусетский технологический институт в особенности), будучи очень инертной и экономной машиной, не хотела тратить средства на регулярное переоснащение своих учебных кабинетов и лабораторий, и всеми силами сдерживала компанию “LEGO” от замены RCX чем-то более современным. Но прогресс неумолимо наступал, и в 2006 году “LEGO” выпустила новую программируемую систему – MINDSTORMS NXT.

■ MINDSTORMS NXT

Серия MINDSTORMS NXT, выпущенная компанией “LEGO” в июле 2006 года является, по сути, полностью переработанной и улучшенной правопреемницей RIS. К большой радости всего сообщества MINDSTORMS-фанатов, компания “LEGO” на этот раз не стала скрывать подробности технической и программной реализации, и заранее предоставила SDK и подробную документацию по своему новому продукту. Кроме этого, компания организовала “Программу разработчиков MINDSTORMS” (MINDSTORMS Developer Program, MDP), в рамках которой сто комплектов NXT были распределены по специально отобранным группам за месяц до основного выпуска, чтобы протестировать все функции устройства. Производители совместимых датчиков и разработчики программного обеспечения также смогли получить необходимую информацию сразу же после выхода NXT, а не через несколько месяцев, как это было с RIS. К всеобщему удовольствию набор NXT оказался очень удачным и работоспособным прямо из коробки. Новая среда и язык программирования NXT-G оказалась гораздо удобнее, чем ROBOLAB.

Lego-Mindstorms-NXT

Рисунок 1-10. Набор MINDSTORMS NXT

Новый программируемый блок NXT получил дополнительный входной порт, три сервомотора со встроенными датчиками вращения, новые виды датчиков, Bluetooth, графический ЖК-дисплей с разрешением 100x64 точки, и вдобавок всё это было хорошо документировано. Все ликовали, а самые продвинутые сразу же полезли внутрь датчиков и программируемого блока, чтобы с ещё большим фанатизмом начать придумывать новые неординарные способы использования появившихся возможностей. Самодельные датчики, языки программирования и даже операционные системы появились практически сразу же. А тот факт, что новый блок NXT оказался совместимым со старыми датчиками RCX (хоть и через переходник), только добавил всеобщей радости.

NXT_with_sensors

Рисунок 1-11. Программируемый блок NXT с сервомоторами и датчиками

Не откладывая в долгий ящик, компания “LEGO” занялась продвижением своего нового продукта в сферу системы образования, и в мае 2007 года выдала “LEGO Mindstorms Education NXT Base Set” – образовательную версию NXT. Упакованный в пластиковую коробку с лотками для деталей, но при этом лишённый диска с программным обеспечением NXT-G (его стали продавать отдельно), этот набор стал активно продвигаться в качестве замены устаревшим и морально, и физически, наборам RIS с RCX. Количества деталей, поставлявшихся в стандартной коробке, явно не хватало для, и в 2008 году был выпущен набор “LEGO Mindstorms Education Resource Set”, содержащий большое количество различных шестерёнок, колёс и других необходимых деталей.

NXT_Education

Рисунок 1-12. Наборы “MINDSTORMS Education NXT Base Set” и “MINDSTORMS Education Resource Set”

Не прошло и трёх лет с момента выхода MINDSTORMS NXT, как LEGO приняла решение обновить комплект NXT, выпустив в 2009 году улучшенную версию NXT 2.0 (рисунок 1-13). Кроме незначительных изменений в составе мелких деталей, набор NXT 2.0 получил новый датчик цвета взамен монохромного датчика освещённости. К сожалению, из набора был исключён датчик звука, но вместо него был добавлен ещё один датчик касания. Датчик звука можно заказать отдельно, также как и датчик температуры, и множество других интересных датчиков, выпускаемых компаниями, сотрудничающими с “LEGO”.

First_NXT_2

Рисунок 1-13. Стивен Канвин (Steven Canvin), менеджер по маркетингу компании LEGO, держит самую первую коробку с MINDSTORMS NXT 2.0