Указывая направление

21 февраль, 2007 - 18:03Андрей Зубинский

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

Эта статья будет непростой в том смысле, что в ней мы расскажем одновременно и о нескольких явлениях, и о предметах, и о программах. При этом предметы и программы будут или весьма, или относительно несложными, а вот явления, напротив, - настолько сложными и только-только зарождающимися, что для оценки их потенциала потребуются даже не годы. Впрочем, обойдемся без многословной преамбулы - речь пойдет о новой дисциплине "physical computing". Автор статьи решил отказаться от перевода этого термина в связи с тем, что языковая калька, состоящая из "заезженных" слов, полностью искажает смыслы (а их немало) PC (Physical Computing), и в дальнейшем использовать исключительно англоязычный термин или аббревиатуру. К слову, она исключительно удачна именно совпадением с PC - Personal Computer: доступность и массовость персональных вычислительных машин также породили множество явлений, большинство из которых еще даже не открыто.

Базис PC (Physical Computing) как инженерной дисциплины определить легко - на соответствующих курсах высших учебных заведений (например, Университета Нью-Йорка, в ее рамках преподаются вполне "традиционные" предметы. Как-то: основы электронной техники, цифровая и аналоговая схемотехника, микроконтроллеры, разработка печатных плат, методы аналого-цифровой обработки сигналов, сенсоры, актуаторы (исполнительные механизмы), основы автоматики и сервопривода и т. д. В общем, традиционный современный базовый междисциплинарный инженерный курс. Но как только речь заходит о применениях полученных базовых знаний, складывается впечатление, что попадаешь в абсолютно незнакомый мир. Даже термины в нем не только ни о чем не говорят непосвященному, но и вообще, по сути, непереводимы: "ассистивные технологии" (assistive technology), "новые интерфейсы для музыкального выражения" (new interfaces for musical expression), "соединенные в сеть объекты реального мира" (оригинальное "networked objects" звучит куда лучше), "софтовость реальных предметов" (о "the softness of things" любой переводчик легко сломает мозг).

Общепринятые определения PC (Physical Computing) ситуацию не улучшают. Впрочем, судите сами: "PC - это подход к изучению общения в системе человек-компьютер-компьютер-человек, в основе которого лежит попытка понимания способов физического самовыражения людей". К счастью (или к несчастью), этому определению есть многочисленные толкования. Одно из них, достаточно пространное, заслуживает внимания и требует следующего отступления.

Границами современной техники PC (Personal Computers, "персонализированные вычисления") принято считать канонические человеко-машинные интерфейсы: клавиатуру (стилус в комбинации с виртуальной клавиатурой), указательно-позиционирующее устройство (мышь, трекбол etc), экран и, не столь часто, - устройства ввода/вывода звука. Соответственно, вся культура, благодаря которой идеи в области "персонализированных вычислений" находят овеществление, строится на концентрации активности именно в этих границах. Под "активностью" здесь понимаются все виды человеческой деятельности: от обучения, научной, исследовательской или инженерной работы до крупносерийного производства. Границы PC (Physical Computing) несоизмеримо шире по той причине, что они охватывают человека и все богатство способов его самовыражения. То есть, PC как Physical Computing призвана полностью устранить естественные ограничения PC как Personal Computer, возникающие из-за сугубо машинных границ последней.

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

Попробуйте оценить возможности взаимодействия вашего ПК с реальным, аналоговым миром, в котором мы живем, и окажется, что, по сути... их нет. Огромная вычислительная мощность современных ПК фактически замкнута сама на себя. Каждая попытка ее утилизации в мире реальных предметов - настоящая катастрофа: ПК фактически не располагает ни удобными для присоединения малоинтеллектуальной "некомпьютерной" периферии интерфейсами, ни развитыми средствами ввода аналоговых сигналов, ни, наконец, простыми эффективными средствами быстрой разработки специализированных программ реального времени. Попробуйте решить с помощью своего ПК простейшую задачу автоматического регулирования яркости настольной лампы вашего компьютерного стола (кстати, весьма небесполезную в смысле экономии энергии, да и раз у вас есть вычислительная мощность в огромном избытке, то почему бы ее не задействовать в сугубо "мирных" целях), и вы поймете, насколько ПК не приспособлен к "жизни" в мире реальных вещей. Достаточно долго это явное ограничение устраивало большинство пользователей. Но самые "непоседливые" из них, конечно же, люди из мира искусства, оказались первыми самыми недовольными. Знаменитые мастера современного искусства, такие как Нам Джун Пайк (Nam June Paik), еще в 60-х годах прошлого столетия востребовали для инсталляций объекты новой природы - не просто активные, а обладающие способностями. Например, к обучению на основе анализа взаимодействий с окружающей средой и людьми. Специалисты по истории искусства, к слову, не считают такое требование чем-то особо революционным - на протяжении всей истории искусства технологии оказывали на него непосредственное влияние, изменяя и доступные выразительные средства, и стилистику, и тематику, и личность самого творца. Танцоры хотят с помощью Physical Computing превратить свое тело в дирижерскую палочку, т. е. получить возможность управлять танцем музыкой, а не подчинять танец ей, как это было во все времена. Скульпторы ищут способы создания реагирующих на зрителя скульптур и инсталляций, композиторы - механизмы порождения новых мелодий и ритмов на основании, например, мониторинга активности пешеходов, посетителей кинотеатра или картинной галереи.

Вслед за жаждущими революций людьми искусства в Physical Computing потянулись представители, пожалуй, самых консервативных областей человеческой деятельности. Например, педагоги и медики. Physical computing интересен им как область для поиска новых, более совершенных человеко-машинных интерфейсов и систем адаптации. К последним можно отнести так называемые "скелетоны" - электромеханические антропоморфные оболочки, предназначенные для усиления физических возможностей человека. Кстати, их потенциальные военные предназначения далеко не столь важны и интересны по сравнению с медицинскими.

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

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

Хотим мы того или не хотим, но человечество уже живет в мире предметов с цифровой начинкой, иначе говоря, в мире, где "softness of things" стала фактом. Стиральные машины, радиоприемники, музыкальные плееры, фотоаппараты, будильники, телефоны - все это things with softness. Ход развития данных предметов сопровождался паразитным эффектом, проявления которого принято называть "рвотной функциональностью" (feature creep). Речь идет о реализации производителем дополнительных бессмысленных или неудобных функций только потому, что цифровая начинка дает возможность их реализации. В результате обычно получается эквивалент набора привычных физических объектов, лишенных признаков и, в том числе, достоинств этих объектов. Например, современный мобильный телефон объединяет в себе несколько аналогичных традиционным объектов: записную книжку, фотокамеру, будильник, секундомер, калькулятор, еженедельник, игровую приставку. Но физический интерфейс со всеми этими объектами не имеет ничего общего с их реальным назначением и ограничен исключительно кнопками телефона и его экранчиком. В результате каждый реальный объект на самом деле оказывается удобнее своего внутрителефонного аналога. Производители же надеются, что с помощью техники Physical Computing удастся максимально удалить цифровую функциональность от навязанного ею традиционного физического интерфейсного набора "клавиатура - позиционирующее устройство - экран" и тем самым приблизить производимые устройства к более удобным и привычным объектам реального мира.

Аппаратно-программные средства PC как Physical Computing

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

С точки зрения разработчика все существующие системы поддержки Physical Computing образуются комбинацией специализированного контроллера, оснащенного интерфейсами с ПК и удаленными датчиками и актуаторами, некоторым множеством готовых датчиков и актуаторов или же "конструктором", позволяющими относительно несложно поместить какое-то устройство в мир Physical Computing, и, конечно же, программным обеспечением, с помощью которого можно реализовать потенциал аппаратной системы. Естественно, в этом перечне подразумевается и ряд протоколов взаимодействия как между ПК и контроллером, так и между контроллером и датчиками или актуаторами. Следует сразу заметить, большинство существующих систем, по сути, являются "первой итерацией" процесса становления техники Physical Computing, так как в них развитые протоколы фактически не используются. Этот нюанс очень важен - с ростом масштабов создаваемых систем непременно возникнет проблема унификации. Именно здесь находится та область, куда еще не ступала нога разработчика, и именно здесь можно найти красивые и недорогие решения.

Указывая направление
Аппаратные средства Arduino предельно просты, и это устройство повторяют многочисленные пионеры Physical Computing во всем мире

Перечень готовых к употреблению "из коробки" систем поддержки Physical Computing открывает стабильно работающий с незапамятных времен компьютеров Macintosh с процессорами семейства M680x0 производитель - канадская компания Infusion Systems (infusionsystems.com). В свое время ее инженеры приняли ряд очень интересных проектных решений, благодаря которым был создан бесконтроллерный вариант системы Physical Computing. Первым важным решением стал выбор унифицированного протокола "общения" датчиков, актуаторов и ПК. Им стал хорошо известный и популярный... MIDI. Второе решение - повышение уровня "интеллекта" образующих систему устройств, т. е. оснащение каждого из них пусть небольшой, но собственной вычислительной мощностью. В результате получилась фактически не требующая дополнительного конфигурирования система, для развертывания которой нужны скорее фантазия и жажда творчества, чем профессиональный уровень подготовки в области робототехники. Естественно, платить за это приходится, как говорится, живыми деньгами. Не особенно большими, но и не малыми - система в самом скромном комплекте (всего с одним датчиком угла поворота) стоит $400. Учитывая тот факт, что Infusion Systems - компания по меркам компьютерного рынка уже немолодая и популярная, такая стоимость не отпугивает потребителей.

Еще одна канадская компания, Phidgets, является представителем производителей новой волны. Перечень предлагаемых ею "физических виджетов" (phidgets, phisycal widgets - новообразованный термин, намекающий на простоту конструирования интерфейсов с объектами реального мира из готовых блоков) впечатлит кого угодно. Все "фиджеты" соединяются с помощью USB-интерфейсов, а стоимость их существенно ниже аналогов от Infusion Systems. Но если говорить о программной поддержке, то система "фиджетов" больше рассчитана на использование профессиональным разработчиком, чем, например, скульптором.

Для тех, кто не боится возни с паяльником, есть возможность попасть в мир Physical Computing с минимальной стоимостью входного билета. Проекты для "самодельщиков" - Arduino и Wiring предлагают созданные по принципам открытых исходных текстов и спецификаций и аппаратные, и программные средства. С коммерческими аналогами их трудно сравнивать, но более популярный в академической среде Arduino, несмотря на простоту и дешевизну конструкции, является весьма интересной разработкой. По сути, это спецвычислитель, построенный на доступном микроконтроллере ATMega8 корпорации Atmel. Главное его назначение - управление несколькими подключенными дискретными устройствами (по типу "включено-выключено"), получение и преобразование в цифровую форму аналоговых сигналов и формирование управляющих переменных напряжений. В общем, небольшой, но весьма функциональный набор. Для тех, кому базовой функциональности вычислителя Arduino не хватает, предусмотрена возможность подключения аппаратно-программных расширений, которые принято называть shields. В комплекте с полным описанием аппаратных средств и "прошивкой" микроконтроллера проект Arduino предлагает и кросс-платформенную реализацию языка программирования задач в области Physical Computing, реализованного по спецификациям проекта Processing

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