Разделы
Счетчики
Электронные домашние роботы
В знойный и душный июльский день в продаже появилась очередная "Компьютерра" #453-454. Несмотря на довольно мрачное название темы номера ("Кладбище домашних животных"), речь в ней шла о вещах веселых и занимательных, о домашних роботах. Но Furby, Aibo и прочие "домашние животные", будучи полностью законченными изделиями, всего лишь сложные игрушки, не позволяющие производить над собой никакие "операции", кроме тех, что предусмотрены производителем (впрочем, умельцы умудряются расширять их возможности, но делают это на свой страх и риск).
В то же время существует немало фирм, предлагающих "домашних роботов", в которых заложены возможности дальнейшего развития. Спектр предложений весьма широк: от отдельных комплектующих до готовых изделий, причем это не промышленные или исследовательские роботы, а именно домашние, рассчитанные на любителей, которым хочется чего-то "своего". Хочу оговориться: под словом "домашние" не подразумеваются бытовые агрегаты (как, например, робот-пылесос Trilobite фирмы ElectroLux), поскольку эти устройства с жесткой программой и ограниченной, строго определенной функциональностью, стоят в стороне от темы разговора.
Трудно сказать, когда идея домашнего робота овладела умами. По крайней мере, еще в 1978 (или 1979) году вышла переводная книга Д.Хейзермана "Как самому сделать робота", где достаточно подробно описывался процесс создания Бастера (так звали робота Хейзермана) в домашних условиях.
Правнуки Бастера
Прошли годы. Бастер (даже если брать самую продвинутую конфигурацию) сегодня кажется простым и наивным. А ведь когда-то и я загорелся идеей построить Бастера, но трудоемкость этого процесса меня остановила. И вот недавно я случайно наткнулся на упоминание о PPRK (Palm PilotRoboKit). Сама по себе идея, заложенная в основу PPRK, весьма неплоха, но вот цена показалась несколько завышенной при таких скромных возможностях. Однако толчок был дан, и, вспомнив детские мечты, я стал увлеченно искать информацию о самодельных роботах. Оказывается, энтузиастов домашнего роботостроения немало, и на их увлечении "паразитирует" целый букет компаний. Порой даже конструкции начального уровня способны удовлетворить амбиции одновременно "строителя" и "программиста". Домашнее роботостроение довольно тесно соприкасается с компьютерной областью, отличаясь в основном аппаратной и программной платформой, - тут трудно найти операционные системы MacOS, Windows просто потому, что размеры и ресурсоемкость этих систем не позволяют создавать компактные устройства по приемлемой цене (кстати, цена операционной системы тоже играет не последнюю роль в стоимости конечного продукта). Применяются в основном различные варианты микропроцессоров - от стандартных (широкоизвестных) до специфических (малоизвестных). В качестве же операционных систем используются и простенькие интерпретаторы, и операционные системы собственной разработки.
PPRK
Этот комплект был разработан Институтом робототехники Университета Carnegie Mellon, но по лицензионному соглашению распространением занимается компания Acroname. Впрочем, слово "разработан" не совсем точно отражает суть - просто в Институте додумались собрать серийно выпускаемые компоненты воедино и написать программное обеспечение. В основу комплекта положена оригинальная транспортная схема: жесткая трехколесная система с применением "omni"-колес позволяет роботу свободно перемещаться в любом направлении без всякого рулевого управления, причем с высокой точностью и минимальным радиусом поворота (правда, без капли дегтя не обошлось - достичь такой точности передвижения удается в ущерб скорости).
PPRK-комплект в настоящее время существует в двух модификациях: на базе контроллера Pontech SV203 или контроллера BrainStem. Эти комплекты поставляются как наборы для самостоятельной сборки и наладки, так и в уже отлаженном виде, где необходимо лишь закрутить несколько винтов. Основное отличие контроллеров состоит в том, что BrainStem позволяет сохранять программы в своей памяти и поэтому не требует обязательного подключения Palm, тогда как SV203 является всего лишь контроллером и без Palm обойтись не может. Небольшое неудобство состоит в том, что программы для этих контроллеров несовместимы и требуется адаптация, что, впрочем, не является большой проблемой из-за простоты языка (хотя простота языка еще не означает легкости программирования, ведь алгоритм обработки данных и принятия решений - не слишком примитивная задача). Кроме того, в комплект входят колеса, моторы, три инфракрасных датчика расстояния, корпус, винты, шнуры, аккумуляторы и зарядное устройство. В комплекте используются сервомоторы. К сожалению, скорость их вращения не слишком велика, поэтому робот получается довольно медлительный, но это одновременно и достоинство - Palm останется целей. Поскольку контроллеры позволяют подключать не один сервомотор и датчик, то возможности расширения есть даже в базовом комплекте, а при желании можно объединить несколько таких контроллеров или добавить плату управления электродвигателями или другие платы расширения (видеокамеру, звуковой модуль и так далее).
Кстати, Palm можно использовать не только в этом комплекте. Фирма Diverse Electronic Services предлагает Micro II, основанный на микропроцессоре H-Bridge PWM-контроллер, который может программироваться с помощью Palm. Карл Макинтайр (Karl McEntire) приделал к Palm плату DI-194 от фирмы Dataq. Это плата сбора данных с четырьмя каналами и COM-портом, что позволяет обрабатывать на Palm сигналы с четырех датчиков. Есть у Dataq и более мощные платы сопряжения. А Norland Research, пожалуй, переплюнула всех, соорудив TI Calculator Robot Kit - набор для создания робота, где в качестве контроллера используются калькуляторы фирмы TI.
Сделай сам
Создание робота - это не только забава. Не случайно довольно много ресурсов в Сети существует на серверах различных университетов - ведь робот является отличным пособием при изучении электроники, программирования, систем управления, и именно поэтому в различных соревнованиях роботов (футбол и даже сумо) участвуют университетские команды. Ведь гораздо приятнее изучать основы программирования на таком материале, чем в миллионный раз создавать клон Norton Commander. И если бы детям на уроках труда предлагали делать робота вместо выпиливания кружков из фанеры - было бы больше пользы. В некоторых вузах это понимают. Например, в Новом Государственном университете Мексики вводный курс в машинную организацию и ассемблер является, по сути, вводным курсом в архитектуру процессора 68HC11. Работа с эмулятором позволяет изучить систему команд 68HC11. Лабораторное изучение микропроцессора состоит в разработке и построении моторизованного транспортного средства с использованием управляющего контроллера на основе 68HC11. В течение курса студенты собирают печатные платы, формируют моторизованные транспортные средства (или другие экзотические устройства) и пишут программы на ассемблере для поддержки связи между персональным компьютером, процессором и для управления моторизованным транспортным средством.
Пожалуй, самая известная и популярная основа для создания робота - Lego Invention System. Рассчитанный именно на детей, этот набор позволяет довольно легко построить робота и написать программу. Но кажущаяся простота, "детский" вид деталей и программного интерфейса скрывают неплохой набор возможностей, поэтому нередко используется в обучении студентов колледжей. Существует еще ряд конструкторов, подобных Lego: например, наборы Fischertechnik Industry Robot Kit.
Если же нет желания что-то изобретать, можно воспользоваться уже готовыми платформами. Так, фирма ActivMedia Robotics предлагает законченные решения (не исключающие, впрочем, дальнейшего расширения). Поскольку это довольно сложные устройства, дешевыми их не назовешь. К тому же они продаются уже готовыми, так что их можно порекомендовать как основу для построения специализированных роботов, предназначенных для конкретных задач. Они наверняка заинтересуют тех, кто не хочет слишком долго возиться со сборкой, но хочет иметь достаточно мощную базу для дальнейшего развития. ActivMedia Robotics выпускает четыре серии роботов:
PowerBot - самый крупный робот: при весе 120 килограммов (с аккумуляторами) и габаритах 85х65х43 сантиметров может нести на себе до 100 килограммов оборудования.
PeopleBot - довольно высокое сооружение (112 сантиметров в высоту) и кажется не слишком устойчивым.
Pioneer существует в двух вариантах: Pioneer 2-DXe и Pioneer 2-AT. Это небольшие роботы весом около 30 килограммов.
AmigoBot самый маленький - всего 1 килограмм. В отличие от предыдущих позиционируется прежде всего как "домашний" робот для развлечений, поскольку не может быть оснащен дополнительным оборудованием в достаточном количестве.
Главный недостаток этих моделей - высокая цена. Робота дешевле полутора тысяч долларов найти трудно.
Компания MrRobot вышла на рынок с Talrik Junior (TJ), который "является превосходным транспортным средством для знакомства с миром программируемых, автономных, мобильных роботов". Диаметр собранного TJ - 7 дюймов, высота - 3,5 дюйма. Корпус изготавливается или из пятислойной березовой фанеры, или из черного пластика. Передвигается робот на двух 2,75-дюймовых колесах и заднем опорном ролике. Два высококачественных сервомотора установлены ниже платформы, чтобы управлять каждым колесом непосредственно. В качестве контроллера используется плата MSCC11E2 на основе процессора MC68HC11 (256 байтов оперативной памяти и 2 килобайта EEPROM). Доступные языки: Imagecraft C (коммерческий транслятор Си), ассемблер MC68HC11, sBASIC, tinyFORTH, и TJ Mindstorms (все программное обеспечение свободное).
Кроме того, Talrik Junior оборудован двумя инфракрасными детекторами и двумя инфракрасными излучателями. Плата MSCC11E2A обладает достаточно широкими возможностями ввода-вывода, чтобы существенно увеличить количество датчиков TJ. Стоимость робота от 140 долларов (за набор деталей для самостоятельной сборки) до 220 долларов (за полностью собранного робота). Кроме того, есть TJ Pro и TJ II - более продвинутые модели. У них процессор помощнее, памяти побольше, а значит, и возможности пошире, однако заплатить придется уже от 300 до 800 долларов.
Эта же компания предлагает Robobug (около 500 долларов) - почти аналог TJ, но не на колесах, а на шести ногах - этакий механический таракан.
Фирма K-Team продает парочку дешевых моделей роботов: Koala и Khepera построены на одной платформе (процессор Motorola 68331, тактовая частота 25 мегагерц, датчики, моторы), но у Koala более привлекательный дизайн.
Подобных решений, когда под видом набора "Сделай сам" дается возможность, особенно не напрягаясь, собрать робота, на рынке предостаточно. Для тех же, кто чувствует себя уверенно и готов самостоятельно собирать робота "от и до", тоже существует немало привлекательных предложений. Ведь из чего состоит робот? Из "мозгов", рецепторов, эффекторов и базы (шасси), на которой все это размещено. Кстати, робот может быть "аналоговый", без всяких процессоров и контроллеров, управляемый только инстинктом. Это так называемые BEAM-роботы - пара моторчиков, пара светодиодов, солнечная батарея, и вот у вас в руках "существо", которое бездумно бегает в поисках пищи - солнечного света. Очень простая конструкция (да и цена в российских условиях где-то рублей 300-400, из которых половина приходится на солнечную батарею), однако демонстрирующая "насекомоподобное" поведение. Больше всего об этой разновидности можно почерпнуть на www.solarbotics.com. Но вернемся к "обычным" роботам.
В качестве шасси может использоваться что угодно, но очень часто берутся за основу шасси радиоуправляемых автомобилей или от игрушек, хотя на рынке есть немало специальных предложений. Пожалуй, самый богатый выбор у LynxMotion: есть и колесные, и шагающие варианты.
Электронная начинка
С "мозгами" несколько сложнее. Может быть, это не соответствует действительности, но, по моим ощущениям, в основном используются два роботоконтроллера - OOPIC и BasicStamp. Есть еще два контроллера: BrainStem и HandyBoard, которые упоминаются реже. И существует множество разработок, продвигаемых прочими фирмами. В основном это контроллеры на микропроцессорах Motorola 68xxx. Например, Kameleon K376SBC board фирмы K-Team, построенный на Motorola 68376 и оснащенный 1 мегабайтом оперативной памяти, 1 мегабайтом Flash. Или Eyebot Controller на основе Motorola 68332, предлагаемый фирмой ZagrosRobotics. Чтобы не было путаницы: в Palm используются Motorola 68328, Motorola 68EZ328 и Motorola 68VZ328.
Как ни странно, не удалось обнаружить сведений о применении Z80 - весьма известного процессора. Он, конечно, довольно старый, но весьма привлекательный по цене и возможностям (многие, наверное, помнят легендарные компьютеры "ZX Spectrum", захватившие рынок домашних компьютеров в 1980-х). Есть еще процессоры АТ90S (AVR) фирмы Atmel, которые тоже встречаются очень редко. Несмотря на кажущуюся примитивность подобных контроллеров (слабенький процессор, малюсенькая память), они неплохо справляются со своей задачей. А благодаря наличию шины IIC в большинстве контроллеров можно объединять их по несколько штук.
IIC
Inter-Integrated Circuit Standard (IIC или I2C) - стандарт последовательной одноранговой связи. Разработан компанией Philips в середине 1980-х как эффективное и простое средство связи между различными компонентами в телевизоре. Но этот стандарт (двухпроводной!) оказался достаточно удобным для использования в микроконтроллерах и получил широкое распространение. Двухпроводная шина может работать как на своей стандартной скорости 400 кбит/с, так и на скорости 1 Мбит/с и даже больше (все зависит от устройства). Каждое устройство имеет уникальный адрес, поэтому можно подключать 126 индивидуальных устройств к одной шине. Многие контроллеры, используемые в мобильном роботостроении, поддерживают IIC, что позволяет объединять платы различного назначения разных производителей. Кроме того, поддержка IIC зачастую встречается в жидкокристаллических дисплеях, электронных компасах, CCD-камерах, H-Bridges, EEPROMs, real-time-таймерах, A/D- и D/A-конверторах (ЦАП и АЦП), sonar rangers и прочем. В большинстве контроллеров для мобильных роботов есть IIC (BrainStem, OOPIC, BasicStamp и другие). Кстати, хотя шина двухпроводная, но проводков чуть больше - целых пять. Два служат для передачи данных, два - это питание, и еще один - Reset.
Самыми распространенными рецепторами являются разнообразные датчики расстояния, как инфракрасные, так и ультразвуковые. А самые популярные инфракрасные датчики - серии GP2Dxxx производства фирмы Sharp. Среди ультразвуковых лидируют сонары Polaroid (благодаря тому, что имеют хорошую чувствительность, так как используются в фотоаппаратах). Кроме того, есть множество других датчиков: от простейших датчиков освещенности (фоторезисторов) до систем GPS. Что же касается установки аудио/видеоаппаратуры, то тут предложений меньше, поскольку требуется большая вычислительная мощность и объем памяти. Хотя есть ряд вариантов, где обработка перекладывается на более мощный компьютер благодаря беспроводной связи. Эффекторы (исполнительные части) у робота, как правило, уже есть (колеса, ноги, гусеницы), но всегда можно добавить манипуляторы, светодиоды. Чтобы он мог общаться с создателем, имеются речевые модули. Так что можно собрать робота по своему вкусу. Конечно, повторить Aibo будет трудновато, но достичь уровня Furby или даже превзойти его - вполне реально.
А многие энтузиасты, собрав своего робота из "чужих" комплектующих, не стесняются потом предлагать эти наборы всем желающим по сходной цене. Поэтому в Интернете так много сайтов, где можно примерно за 250 долларов прикупить робота, вот только все они как близнецы: три колеса, контроллер на OOPIC или BasicStamp, несколько инфракрасных датчиков, пара моторчиков и кусок пластика, к которому все это прицеплено.
OOPIC
OOPIC - аббревиатура от Object-Oriented Programmable Integrated Circuit - объектно-ориентированные программируемые интегральные цепи. Судя по всему, OOPIC производится фирмой Savage Innovations. Это первый программируемый микроконтроллер, который использует объектно-ориентированный язык. Не без недостатков, конечно, но устройство вполне пригодно для создания робота. К достоинствам можно отнести EEPROM, в которой программы могут храниться сорок лет без электропитания. Сама плата выпускается в двух вариантах: S и R. Разница в размере и количестве и качестве портов. Но оба варианта поддерживают IIC, что позволяет строить масштабируемые системы. Программирование осуществляется на OOPIC Basic - полностью совместимом по синтаксису с Visual Basic. Поддерживается Си и Java. Так же как и в BrainStem, в OOPIC имеется порт IIC, позволяющий объединять несколько плат в одну систему.
BasicStamp
Фирма Parallax предлагает под торговой маркой BasicStamp микроконтроллер, выполненный в формате DIP (в форме микросхемы), что позволяет встраивать его в самые различные платы, просто вставляя в панельку. В самом микроконтроллере отсутствует электронная обвязка, поэтому к нему необходима плата с разъемами питания, портов, АЦП/ЦАП и так далее.
Компактный и довольно простой контроллер построен на основе микросхемы PIC16*** (или подобных ей), с интерпретатором PBasic. На основе этого решения многие производители предлагают свои варианты - с большим числом портов и так далее. Существует и несколько вариантов от самой Parallax. Например, такой, где вместо Basic используется Java.
Упомянем еще микроконтроллер BasicX от NetMedia, схожий по параметрам с BasicStamp от Parallax, но чуть более мощный - EEPROM 32 килобайта, 65000 IPS, 8000 lines. И самое замечательное: по цоколевке они совместимы. Правда, просто заменить один контроллер другим не получится, так как используются разные версии Basic.
Подобные продукты есть и у других производителей - например, у Micromint.
BrainStem
BrainStem GP 1.0 Module стоит в одном из вариантов PPRK. К сожалению, найти сведений об используемом процессоре не удалось (RISC с тактовой частотой 40 мегагерц - вот и все, что известно), но и остальное выглядит неплохо: пять десятиразрядных АЦП, пять цифровых каналов ввода-вывода, поддержка GP2D02 (инфракрасный датчик расстояния), мегабитный IIC-порт с поддержкой IIC-маршрутизации, способность хранить одиннадцать программ TEA (Tiny Embedded Application - "маленькие встроенные приложения", написанные на Си) размером до 1 килобайта и одновременно выполнять четыре из них, последовательный порт, четыре высокоточных выхода для управления сервомоторами, производительность - 9 тысяч команд в секунду и так далее. Благодаря порту IIC можно соединять до 126 BrainStem-плат или плат сторонних производителей. Модуль может работать в трех режимах: Slave mode - управление осуществляет "главная ЭВМ" через порт I/O (тот же Palm через RS-232), Reflex mode - одна команда (или входной сигнал) вызывает выполнение какой-либо программы действий и TEA mode - выполнение TEA-приложений. Существует поддержка разработки на языках Java, Си и C++ для операционных систем Windows, WinCE, MacOS, PalmOS и Linux. Этот модуль весьма привлекателен для самостоятельного создания робота или просто внешнего контроллера с использованием Palm, WinCE или любого десктопа. Благодаря масштабированию и возможностям расширения и относительно невысокой цене (79 долларов) довольно интересное решение.
Кроме того, в дополнение к BrainStem GP 1.0 Module предлагается плата BrainStem Moto 1.0 Module для управления мощными моторами.
С программной частью робота дело обстоит поинтереснее: значительная часть ресурсов бесплатна, но требует определенных навыков программирования. Впрочем, это неудобство частично компенсируется многочисленными примерами и готовыми разработками, что может помочь в написании своих приложений. Пожалуй, по красоте и удобству на первом месте стоит OOPIC. Это первый контроллер, в котором применена схема "объектно-ориентированного" подхода. Да и сама среда разработки (редактор-компилятор-отладчик-загрузчик) выглядит симпатично, позволяя не только писать программу и загружать ее в контроллер, но и следить за ее выполнением в удобном графическом виде. У большинства других контроллеров среда разработки выглядит гораздо скромнее, что, впрочем, не влияет на функциональность. Пожалуй, самые большие неудобства могут возникнуть при использовании контроллеров на основе Motorola 68xxx, поскольку программное обеспечение зачастую представлено только в DOS-версии.
Но какой бы контроллер ни использовался, какой бы удобной ни была среда разработки, все равно необходимы навыки программирования. Поэтому при создании своего первого робота лучше всего использовать широко распространенные контроллеры, чтобы иметь возможность просмотреть готовые приложения, примеры, а не читать технические описания от производителя и не писать на ассемблере.
Семь раз отмерь
Отдельно стоит поговорить о симуляторах роботов. Самой первой программой такого рода был Autonomous Micro Robot Soccer Simulator (автор Рандиб Сингх [Randeep Singh] из Индии). Но увы! Это больше похоже на игрушку, чем на серьезную программу, - поведение робота жестко задано, хоть и можно выбирать из нескольких вариантов.
К счастью, есть ARC (Autonomous Robot Controller), разработанный Ксави Маркезом (Xavi Mаrquez). Конечно, эта программа не позволяет моделировать своего собственного робота от начала до конца, но дает возможность проверить поведение робота в определенном окружении при наличии тех или иных датчиков. Можно задавать тип, количество, расположение датчиков, реакцию на их сигналы, окружение робота (стены, прозрачные объекты, линии на полу, координатные точки и так далее). К недостаткам можно отнести двухмерность (вид сверху), ограничение на тип робота (только два колеса) и неудобную систему программирования (писать придется на Си да еще оформлять в виде DLL - динамически подключаемой библиотеки). Но зато небольшой размер (примерно 750 Кбайт), наличие примеров, исходников, более или менее подробного описания и бесплатность делают ARC неплохим выбором.
Есть, по меньшей мере, еще одна программа такого рода: MOBOTSIM, но она уже из разряда условно-бесплатного программного обеспечения, стоит 30 долларов. Пробная версия работоспособна в течение тридцати дней (или сто запусков). В сравнении с ARC этот симулятор немного удобнее из-за встроенного интерпретатора языка Sax Basic, так что задавать параметры робота можно не выходя из симулятора. Но лучше пользоваться обеими программами, поскольку в ARC можно использовать больше датчиков различных типов, зато MOBOTSIM проще в настройках.
Следует упомянуть и Electric Drive Train Simulator, который позволяет еще до покупки подобрать роботу подходящие электромоторы и аккумуляторы исходя из веса, размера и требующейся автономности хода, что немаловажно, поскольку робот должен работать больше, чем пару минут.
Этим список симуляторов не исчерпывается, но оставшиеся либо работают под операционной системой Unix, либо представляют собой пристройки к пакетам типа Mathematica, либо являются коммерческим программным обеспечением.
Роботы в России
На сегодняшний день мне не удалось обнаружить в русскоязычной части Интернета никаких ресурсов по роботостроению: есть радиомодели (схожая тематика, но ...), есть почтовые роботы (хоть название и похоже, но совсем не то). Впрочем, это не означает, что роботостроения в России не существует: у нас есть ЦНИИ робототехники и технической кибернетики, в ряде институтов существуют факультеты (или кафедры) робототехники и мехатроники, имеются студенческие разработки. Команда МЭИ стала чемпионом на 6-м Чемпионате мира по мобильным роботам в 1999 году. Но это все научно-практические разработки, а вот как хобби роботостроение в России не слишком распространено. С этим может справиться только энтузиаст, прекрасно разбирающийся в электронике, поскольку придется почти все собирать своими руками. Ведь найти можно лишь колесную базу в магазине радиоуправляемых моделей. Там же можно купить и серводвигатели, емкие аккумуляторы и зарядные устройства.
С "мозгом" сложнее: реально купить микроконтроллер AS-mega (на базе микросхем ATmega 03/ATmega 28 с набором периферийных устройств). В каталоге "Чип и Дип" есть конструктор-контроллер KIT-552 (со стандартной архитектурой MCS-51 и расширенной периферией PCF80C552-16WP, последовательные интерфейсы RS-232 и I2C и макетное поле с подведенными к нему сигналами внутренней шины) и KIT-PIC03 (примерно то же самое, но под микропроцессоры серии PIC16ххх). Стоимость этих конструкторов чуть больше 2 тысяч рублей, но к ним еще надо приложить руки и голову, чтобы вышло что-либо путное. Да и с программным обеспечением скорее всего будут проблемы. А вот с контроллерами именно для робота в комплекте с программным обеспечением или какими-нибудь RoboKit гораздо хуже. Приобрести что-либо можно, пожалуй, только по заказу, но в таком случае покупка обойдется на 50 процентов дороже (доставка, таможня, маржа). Использовать же в качестве "мозгов" компьютер (например, тот же Palm или WinCE) боязно - ведь придется на свой страх и риск приделывать к нему самопальный контроллер. Каюсь, забыл упомянуть фирму Lego: скорее всего Lego Invention System продается и у нас (правда, в центральном "Детском мире" я этого набора не увидел - может, смотрел плохо?).
Рецепторы: тут примерно то же, что и с "мозгом". Кое-что есть по отдельности, но мало. Впрочем, в продаже имеются комплектующие, а инфракрасный датчик или сонар можно спаять самому - вот только какие у него будут характеристики? Есть еще множество самых разных датчиков, но поскольку разброс характеристик может быть весьма велик, тут, кроме желания, требуются еще и достаточно глубокие знания радиоэлектроники.
Вячеслав Гурьянов, Компьютерра, 17 декабря 2002 года