21.03.2011, 13:16
Источник: https://www.popmech.ru/
«Подумаешь, пропеллер, кнопка… а что же не может быть у мальчишки в наше-то время! Скоро они будут летать на Луну, не начав ходить в школу!» – заявила Фрекен Бок, увидев летающего Карлсона. И ведь как в воду глядела! По крайней мере, смышленый дошкольник уже может собрать настоящего интеллектуального робота из конструктора Lego Mindstorms второго поколения. Первый Mindstorms своими безграничными возможностями мог на пару дней озадачить взрослого дипломированного инженера. Новый конструктор стал еще больше, еще гибче, еще мощнее.
[p]Lego Mindstorms. Тип: электроконструктор. Контроллер: Lego NXT. Более 256 Кб памяти. Интерфейс: USB, Bluetooth. Двигатели: 3 сервомотора с датчиками угла поворота. Датчики: ультразвуковой дальномер, микрофон, атчик света, датчик прикосновения. Управление: автономное, по программе, дистанционное с мобильного телефона. Питание: 6 батарей АА. Назначение: развитие логического мышления, координации движений и конструкторских навыков, диверсии, шпионаж[/p]
Для чудо-игрушки, претендующей на умение решать любые взрослые задачи, мы должны были устроить особенное испытание. Известно, кто лучше всех умеет ставить перед конструкторами самые сложные, а порой и невыполнимые задачи: конечно же, военные. Вот и мы решили отправить Mindstorms на войну. Было решено, что к концу рабочего дня боевой робот, созданный из Lego, должен совершить нападение на соседний отдел. Не спрашивайте, чем провинились наши бедные коллеги. На войне как на войне!
10:00. Склад запчастей
Начало рабочего дня – самое время рассмотреть имеющиеся ресурсы, чтобы определить ключевые задачи. Сердце Lego Mindstorms – компьютерный контроллер NXT. Для взрослых инженеров отметим, что он представляет собой два микропроцессора (32-битный и 8-битный), более 256 кбайт Flash-памяти, USB-интерфейс, Bluetooth-модуль, а также жидкокристаллический дисплей разрешением 100х64, громкоговоритель, батарейный блок, порты датчиков и сервоприводов. Именно в NXT кроется бЧльшая часть возможностей кон-структора. В памяти контроллера хранятся программы, загружаемые с компьютера. Данные с ПК можно передавать как по USB-кабелю, так и через Bluetooth. Кроме того, интерфейс Bluetooth позволяет управлять роботом в реальном времени с помощью мобильного телефона. Для этого необходимо скачать специальное java-приложение (программы для большинства современных мобильников можно найти на сайте Lego)
[p]Чтобы создавать собственные модели роботов, необходимо понять определенную инженерную логику Mindstorms. Для этого достаточно просто собрать несколько стандартных роботов, предлагаемых инструкцией[/p]
Информацию об окружающем мире NXT получает от четырех датчиков. Самый простой датчик прикосновения представляет собой что-то вроде концевого переключателя. К примеру, когда робот-погрузчик упирается в груз, датчик дает контроллеру команду и срабатывает захват. Микрофон реагирует на звук определенной громкости. Классический пример – выполнение программы по хлопку. Сложный ультразвуковой дальномер сообщает контроллеру расстояние до ближайшего объекта (стены, человека) в сантиметрах. Датчик света, состоящий из лампочки и фотоэлемента, позволяет роботу различать степень освещенности или цвета (конечно, в градациях серого). В итоге наш робот обладает зрением, слухом и осязанием.
Три двигателя Mindstorms – это настоящие сервоприводы. Каждый из них имеет встроенный датчик поворота, благодаря которому контроллер точно знает, на какой угол повернулись оси. При желании серво можно использовать как измеритель расстояния, прокатив колесо рукой и узнав показания датчика.
К сожалению, количество портов контроллера ограничено тремя серво и четырьмя датчиками, поэтому расширить набор, купив еще один конструктор, не получится. Зато есть приятные мелочи: по велению программы экран контроллера может показывать разнообразные рожицы, а динамик – воспроизводить звуки.
12:00. Конструкторское бюро
Пусть вас не смущает, что в конструктор входят всего три двигателя. В сочетании с всевозможными шестернями и передаточными механизмами они позволяют сделать массу любопытных вещей. К примеру, инструкция предлагает построить колесный автопогрузчик (разумеется, интеллектуальный), механический манипулятор, двуногого гуманоида и даже шестиногого скорпиона. Мы построили и проверили каждую конструкцию – существа отлично перемещаются в заданном направлении, поворачивают, пятятся назад да еще выполняют при этом какую-либо работу. Строить стандартные примеры из инструкции настоятельно рекомендуется – они помогают понять общую логику конструктора, чтобы потом с легкостью придумывать робота самостоятельно.
При всем разнообразии предложений для нашей катапульты (ну не гаубицу же нам ставить на Lego) мы выбрали колесный привод. Двуногие роботы, несмотря на всю эффектность, оказались несколько нерасторопными и требовательными к качеству поверхности. Катапульта получилась настолько большой, что мы решили добавить к стандартным колесам гусеницы от первого поколения Mindstorms. Нашей главной задачей было сделать полноприводное шасси, чтобы обеспечить машине наилучшую проходимость. С установкой и настройкой приводных валов (их видно на схеме) пришлось повозиться, но игра стоила свеч: в итоге наш вездеход с легкостью забирался на препятствия высотой с его собственное колесо (книги, коробки).
При строительстве крупных машин очень важно уделять внимание развесовке и жесткости конструкции. Играя в Mindstorms, юный конструктор быстро уяснит, чем треугольник лучше параллелограмма, когда тащит на себе контроллер с шестью батарейками.
15:00. Командный центр
С программированием NXT легко справится школьник, а вот опытному программисту будет слегка не по себе. Процесс создания программы не прост, а очень прост: необходимо буквально нарисовать последовательность иконок, изображающих то или иное действие. Простые настройки оформлены графически и интуитивно понятны. С их помощью можно с легкостью поручить мотору совершить нужное количество оборотов, прислушаться к определенному датчику, выставить чувствительность микрофона или дальность срабатывания дальномера.
Глядя на впечатляющие аппаратные возможности конструктора, мы решили, что сделаем действительно умного самостоятельного робота, почти как R2D2 из «Звездных войн». Но споткнулись на невозможности привычно отсылать NXT к нужной части кода. Даже расширенный режим программирования, в котором можно детально устанавливать маршруты передачи данных разных типов между всеми устройствами, не позволяет побороть линейность программы, а предлагает примитивные циклы. Правда, для совсем взрослых инженеров Lego обнародовала исходные коды программ к NXT. Мы же поступили проще и создали линейную боевую программу.
Вдоль нашего коридора до двери несчастных соседей тянется светлая стена. Мы установили по правому борту робота датчик света. С его помощью машина может двигаться вдоль стены и обнаружить, когда она кончится (дверной проем). Кроме того, мы оснастили робота дальномером и микрофоном с очень чувствительной настройкой. Финальный план действий был таков: объект запускается по коридору вдоль стены и движется до дверного проема; обнаружив дверь, объект доходит до середины проема, после чего поворачивается на 90 градусов и начинает движение в глубину комнаты; добравшись до ближайшего препятствия, объект останавливается, выводит на экран злобное выражение лица и издает победный клич «Ура!», обнаруживая себя; любопытный предполагаемый противник подходит к объекту и обращает на него внимание своих коллег; на его слова реагирует микрофон, и катапульта срабатывает. Враг повержен, война выиграна.
17:50. Время икс
План сработал как часы. О последствиях лучше умолчим. Сказать можем только одно: когда проанонсируют третье поколение Lego Mindstorms, мы перенесем редакцию в подземный бункер.
|