В современном мире любому школьник по силам собрать большого игрушечного робота. И действительно, с помощью конструктора Lego Mindstorms второго поколения любой свирепый монстр и миролюбивый робот оживают. Первое поколение Mindstorms, которое характеризовалось бесконечными возможностями, занимало даже взрослого человека. Обновленный конструктор теперь больше, эластичнее и мощнее.
Современная игрушка для детей, которая может решать любые взрослые задачи, прошла серьезные испытания. В тестах принимали активное участие военные. По большому счету можно сказать, Mindstorms тестировали в реальных военных условиях.
Lego Mindstorms работает на базе компьютерного контроллера NXT, то есть это два микропроцессора, более 256 кбайт Flash-памяти, USB-интерфейс, Bluetooth-модуль, а также жидкокристаллический экран, громкоговоритель, батарейный блок, порты датчиков и сервоприводов.
Как раз в NXT таится огромный потенциал возможностей конструктора. В памяти контроллера есть программы, загружаемые с компьютера. Информация с компьютера передается как с помощью USB-кабеля, так и посредством Bluetooth. Помимо этого, с благодаря Bluetooth можно управлять роботом с помощью мобильного телефона, надо только лишь установить java-приложение.
С помощью четырех датчиков NXT понимает окружающую среду. Элементарный датчик касания выглядит как концевой переключатель. Например, когда робот-погрузчик упирается в груз, датчик командует контроллером. Микрофон отзывается на звук определенной громкости. Вот например, работа программы по хлопку. Непростой ультразвуковой дальномер извещает контроллер о расстоянии до ближайшего объекта в сантиметрах. Датчик света – это лампочка и фотоэлемент, помогает роботу распознавать степень освещенности или цвета. В результате получается, что робот может видеть, слышать и осязать.
Сервоприводные три двигателя Mindstorms оснащены встроенным датчиком поворота. С помощью этого датчика контроллер понимает, на какой угол повернулись оси. Если требуется серво можно применять в качестве измерителя расстояния, нужно только прокатить колесо рукой и посмотреть показания датчика.
Число портов контроллера ограничено тремя серво и четырьмя датчиками, вот почему увеличить комплект, приобретя дополнительный конструктор, нельзя. Однако, программа может приказать экрану контроллера показывать различные рожицы, а динамик – воссоздавать звуки.
В комбинации с многообразными шестернями и передаточными механизмами три двигателя конструктора могут делать множество интересных вещей. Игрушки конструктора могут превосходно двигаться в разные стороны, поворачиваться, пятиться назад и исполнять при этом какую-либо работу. Лучше всего строить рядовые примеры из инструкции, потому что с их помощью можно понять общую логику конструктора, и легко придумывать робота без чьей-либо помощи.
Двуногие роботы – это довольно эффективные создания, однако, они оказались немножко неповоротливыми и прихотливыми к качеству поверхности. Катапульта вышла до такой степени большой, что было решено добавить к типовым колесам гусеницы от первого поколения Mindstorms. Очень важно было получить полноприводные шасси, чтобы машина лучше проходила препятствия. Установить и настроить приводные валы было непросто, однако, в результате вездеход без труда взбирался на преграды высотой с его собственное колесо.
Во время сооружения больших машин немаловажно разобраться с развесовкой и жесткостью конструкции. Когда дети играют в Mindstorms, они довольно скоро понимают, чем треугольник лучше параллелограмма, когда тащит на себе контроллер с шестью батарейками.
Любой школьник без труда запрограммирует NXT, но, как ни странно, опытному программисту будет немного трудновато. Для того, чтобы создать программу довольно требуется нарисовать последовательность иконок, которые показывают то или иное действие. Элементарные настройки графически оформлены и инстинктивно понятны. Итак, благодаря настройкам двигатель может делать столько оборотов, сколько это необходимо, пользователь может также вслушаться к определенному датчику, выставить чувствительность микрофона или дальность срабатывания дальномера.
Наблюдая за поразительными аппаратными возможностями конструктора, возникает желание сделать действительно умного самостоятельного робота. Но во время создания такого робота, конструкторы столкнулись с некоторыми проблемами, а именно привычно отсылать NXT к нужной части кода просто невозможно. Здесь не помог и расширенный режим программирования, где можно подробно определять маршруты передачи данных разных видов между всеми устройствами. В результате была создана линейная боевая программа.