Виртуальная машина Andy – это отличное решение, которое позволяет запустить на обычном ПК «настоящий» Андроид-планшет. Благодаря виртуальным машинам (ВМ) на базе одного физического компьютера можно сделать сколько угодно виртуальных, но таких же функциональных и работоспособных, как и физический ПК. Вариантов применения ВМ множество. От тестирования и прогона приложений, до запуска старых игр, конфликтующих с новейшими ОС, а также игр, разработанных под другие ОС.

Более того, благодаря виртуальной машине можно «на зубок» попробовать другие ОС. Что это за MAC такой, Windows или даже Android. Инсталляция ВМ MAC и Windows проста и проходит, как правило, без особых проблем, а вот с установкой виртуальной машины Android на компьютер нередко возникают сложности. Для их преодоления могут потребоваться специальные навыки и знания или же возможен более простой путь – воспользоваться ВМ, в которой уже все заранее настроили высококлассные специалисты. Есть несколько таких решений, позволяющих иметь на своем компьютере виртуальный планшет на ОС Андроид. Одно из таких замечательных решений – виртуальная машина ANDY.

Инсталлировать виртуальную машину ANDY легко, а пользоваться очень просто! В процессе инсталляции от пользователя требуются минимальные знания, все достаточно автоматизировано, нужно будет только в некоторых местах несколько раз щелкнуть мышкой. Обязательное требование для инсталляции ANDY – наличие интернет-соединения.

ЭТАП ПЕРВЫЙ – ИНСТАЛЛЯЦИЯ

Первым делом скачиваем с сайта официальный веб-установщик ANDY.

Внештатные материалы

Привет всем! Хочу вас познакомить с совершенно неожиданной и впечатляющей возможностью вашего андроидофона. Современное «железо» смартфонов стало настолько мощным, что мы сегодня без каких-либо больших усилий, перепрошивок, рутирований и прочих «танцев с бубном» запустим на нем Windows 95 с помощью программы QEMU, портированной на Андроид mamaich’ем.

Прежде всего хочу уточнить два момента. Во-первых, практическая ценность этого эксперимента находится под большим вопросом: работать в настольной операционной системе на маленьком экранчике не так уж удобно, плюс есть некоторые «косяки», о них ниже. Хотя, с другой стороны, кто-то из студентов технического вуза может оценить возможность иметь MathCAD у себя в кармане, например. Или придумать еще какое-нибудь полезное применение взрослой «Винде» на смартфоне. А можно просто положить друга на лопатки, когда он будет хвастать своим супер-пупер навороченным седьмым виндофоном ??

Во-вторых, для запуска Windows 95 на смарте требуется все-таки чуть больше усилий, чем для обычной установки программы из Маркета, однако ненамного. Во всяком случае, в этой статье я постараюсь разложить все по полочкам, а что не влезет на эти полочки, с удовольствием разъясню в комментариях по мере поступления вопросов.

Ах, да! И в третьих: программа, к сожалению, отсутствует в Андроид Маркете. Но не пугайтесь, что ссылки на файлы в этой статье будут вести на «левые» сайты – Вы всегда можете проверить их на отсутствие вредоносного кода с помощью антивируса, скачав сначала на компьютер.

Также замечу, что в ходе наших испытаний не пострадает ни один кролик не будет затронута целостность операционной системы Андроид и ваших данных. Windows 95 будет работать так же, как любая другая программа вашего смартфона, а в фоне будут выполняться все службы Андроида.

Нам понадобится

  1. Более-менее современный смартфон с 512 МБ памяти и выше. Я использовал HTC Incredible S. Можно попробовать и на меньших объемах ОЗУ, предварительно выгрузив часть приложений из памяти;
  2. Примерно 500 МБ свободного места на флэш-карте;
  3. Примерно 130 МБ Интернет-трафика;
  4. Архиватор — для распаковки архивов, например Androzip;
  5. Пригодится какой-нибудь файл-менеджер с возможностью редактирования текстовых файлов, хотя в простейшем случае он необязателен;
  6. Обычный комп, если идея вам понравилась и вы решили установить свои программы внутрь Windows.

Приступим!

Дабы было поменьше комментариев в духе «неасилил», я буду описывать необходимые действия, следуя от простого к сложному. Для начала просто запустим Windows 95, приготовленную умельцами форума 4pda.

Немного отвлечемся, я опишу, что же все-таки это мы такое делаем. Можно пропустить этот абзац тем, кто рвется в бой. Существует такая современная технология, которая называется виртуализация. В рамках этой технологии, допустим, на обычном компьютере запускается специальное программное обеспечение – так называемая виртуальная машина. Грубо говоря, виртуальная машина – это окошко на рабочем столе, внутри которого живет полноценный обособленный виртуальный компьютер. Его можно перезагружать, форматировать его жесткий диск, ставить на него любую операционную систему, да хоть вирусами заражать. При этом с точки зрения основной операционной системы компьютера эта виртуальная машина будет выглядеть как отдельный комп, стоящий рядом под столом. И наоборот, виртуальный компьютер не будет знать, что он – виртуальный. Ресурсы для работы виртуальной машины выделяются из ресурсов физического компа: объем памяти задается в настройках виртуалки, а ее жесткий диск представляет собой просто большой файл в основной операционной системе, так называемый образ. QEMU – одна из таких систем эмуляции/виртуализации с открытым исходным кодом. Замечательный человек mamaich адаптировал ее под Андроид, и теперь мы можем иметь виртуальную x86-совместимую систему у себя на смартфоне с процессором ARM.

Для начала установим само приложение по ссылке №1. В перечне программ смартфона появится невзрачный стандартный андроидовский значок с подписью libSDL. Далее необходимо скачать архив (ссылка №2), содержащий BIOS виртуальной машины. Этот архив нужно распаковать на SD-карту, в результате чего будет создан каталог /SDL.

И последнее, что мы сделаем – скачаем образ жесткого диска с Windows 95 по ссылке №3, расположив его в той же папке /SDL. Запускаем libSDL из меню программ и…

Работа в Windows 95

После процесса загрузки, спустя минуту-две, мы видим, что наши старания не прошли даром и перед нами полноценный рабочий стол Windows 95!

Для управления курсором используем тач-скрин, он выполняет роль, подобную тач-пэду. В качестве клавиш мыши в данной сборке Windows используются качельки громкости смартфона.

Для вызова программной клавиатуры нужно нажать и удерживать кнопку вызова меню смартфона, и вот здесь обнаруживается недоработка, о которой я писал выше. Пока Вы держите кнопку меню, эмулируется непрерывное нажатие клавиши Enter, так что иногда ввод текста становится проблематичным, это нужно иметь в виду.

В любой момент можно нажать кнопку «домик» и переключиться в домашний экран Андроида, «свернув» Windows 95. Как я говорил, телефон продолжает работать.

При переключении обратно в виртуальную машину через выпадающее системное меню будет предложено остановить или продолжить выполнение Windows 95.

Не стоит без надобности выбирать «terminate», выключайте Windows через Пуск – Завершение работы ??

Немного сложнее: установка программ в Windows

Основная сложность в том, что наша Windows полностью изолирована внутри виртуальной машины. Она не видит файловой системы Андроида, у нее нет выхода в сеть (к сожалению, кстати). Поэтому чтобы закинуть в нее дистрибутив нужной программы нужно немного попотеть. Самым разумным будет подсунуть ей виртуальный CD-ROM с дистрибутивом средствами QEMU. В каталоге /SDL, куда мы разархивировали BIOS, лежит конфигурационный файл sdl.conf, в котором описывается, с какими параметрами запускать виртуальную машину. Рассмотрим его синтаксис:

/sdl -L . -m 16 –hda C.img -boot c -usb -usbdevice tablet

– указывает путь к каталогу, содержащего образы BIOS;

– количество выделяемой виртуальной оперативной памяти (16 мегабайт);

– файл образа жесткого диска виртуальной машины;

– включает управление курсором мыши с помощью тач-скрина смартфона.

Отредактируем эту строку, чтобы она выглядела следующим образом:

/sdl -L . -m 16 –hda C.img –cdrom progs.iso -boot c -usb -usbdevice tablet

Теперь к виртуальной машине будет подключен виртуальный CD-ROM, при этом файл образа компакт-диска должен быть сохранен в файле progs.iso и находиться в каталоге /SDL.

Для создания образа компакт-диска придется воспользоваться компьютером и какой-нибудь программой в духе Nero или UltraISO. В них можно записать необходимый дистрибутив не на диск, а в образ, который затем нужно перекинуть на флэш-карточку смартфона в папку /SDL.

Теперь, загрузив Windows 95 на смартфоне, в «Моем компьютере» можно открывать CD-ROM и ставить программу.

Совсем сложно: устанавливаем Windows 9x с нуля

В принципе, установить операционку заново можно попробовать прямо на смартфоне, этому ничто не мешает: заливаем образ дистрибутива ОС, подключаем его к виртуальному CD-ROM ставим загрузку с диска D и понеслась. Однако, из-за глючащей клавиатуры, я оставил попытки после появления окна с предложением ввести ключ.

Много легче пройти процесс установки на компьютере. Но для этого придется установить на компьютер QEMU, так сказать, в естественную ее среду.

… Вообще, я чувствую, что я уже давно на грани выхода за рамки материала, все-таки, статья о программе для Андроид. Так что за необходимыми разъяснениями прошу в комментарии.

К сожалению, текущая версия порта QEMU поддерживает установку Windows только линейки 9х; есть предположения, что это связано с нереализованным 32-битным доступом к жесткому диску. Также нестабильно работает эмуляция сопроцессора. Запуск инсталлятора Windows XP у меня привел к падению в синий экран.

Подытожим

Итак, что мы получили в итоге:

  1. Возможно, просто узнали что-то новое, почитав статью ?? ;
  2. Настроили на своем Андроидофоне практически полноценный x86-совместимый виртуальный компьютер;
  3. Блеснули рабочим столом настоящей винды на своем смарте в среде гаджетоманов ?? ;
  4. Запустили легендарные олдскульные игры;

Что мы потеряли:

  1. Пару часов времени;
  2. Пол-гига места на флэшке;
  3. Добрую сотню нейронных клеток нервной системы от использования виртуальной экранной клавиатуры ??

Акценты ставьте сами, кому что важней. Удачи во всем!

Ссылки на оригинальные файлы Вы можете найти на форуме 4pda в теме QEMU for Android. Поскольку не все зарегистрированы на этом форуме, я перезалил файлы на DropBox, чтобы вы могли их скачать.

16 октября 2013

Новые модели смартфонов и планшетов, а также версии операционной системы Android сменяют друг друга так быстро, что у многих любителей электронных гаджетов скопилась приличная коллекция вполне работоспособных и полностью исправных аппаратов, которые, к сожалению, уже морально устарели. Конечно, их можно по дешёвке продать или подарить, но есть и другое решение, способное дать всем этим устройствам вторую жизнь. Их все можно превратить в серверы различного назначения — да-да, в серверы!

Не удивляйтесь, ведь по производительности практически любые смартфоны и планшеты на базе операционной системы Android могут легко поспорить с самыми настоящими «взрослыми» серверами всего лишь десятилетней давности. Единственное условие — вы должны обладать правами администратора, то есть «сделать root» на таком устройстве. Существуют различные программы для получения прав root, к тому же процедуры для разных аппаратов могут различаться, поэтому рекомендуем поискать информацию по вашей конкретной модели в интернете.

В какой же именно сервер можно превратить смартфон или планшет? Практически в любой, но проще всего на базе операционной системы Android организовать серверы трёх типов: веб-сервер, файловый или FTP-сервер и медиасервер.

Веб-сервер — это то, куда вы зашли, открыв эту страницу — как и любую другую страницу в интернете. Для создания веб-сервера, работающего по протоколу HTTP, требуется минимум вычислительной мощности, так что для этого подойдёт даже весьма старый смартфон или планшет. Вы можете организовать как полноценный веб-сервер, доступный через интернет, так и просто локальный HTTP-сервер, видимый только в домашней сети и предназначенный, к примеру, для отладки работы сайтов перед размещением их на профессиональном хостинге. При этом, несмотря на низкие аппаратные требования, для правильной настройки веб-сервера требуются некоторые специальные знания, поэтому для неподготовленного пользователя это может оказаться весьма непростой задачей.

Файловый сервер — это хранилище файлов, доступное в сети посредством, как правило, протокола FTP. Самый простой в настройке сервер, который можно организовать на устройстве под управлением Android: все его функции заключаются в создании папок, в которые можно записывать файлы и из которых эти файлы можно считывать. Проблема, однако, в другом: обычно у смартфонов и планшетов не слишком много встроенной памяти, поэтому для создания полноценного файлового сервера придётся использовать флеш-карты или, что намного лучше, внешние накопители.

Медиасервер — наверное, самый полезный и интересный тип сервера, в который можно превратить устройство на основе Android. Такой сервер обеспечит потоковую трансляцию звука и видео на домашнюю аудиовидеосистему, компьютер, игровую приставку или другие планшеты и смартфтоны. Это более функциональный, но и более сложный вариант файлового сервера, который может использовать множество различных протоколов (например, DLNA) для соединения и передачи файлов.

Любой правильно настроенный сервер получит локальный IP-адрес, но у всей вашей сети, выходящей в интернет, будет единый внешний IP-адрес. Если вы планируете использовать сервер только в пределах домашней сети, то для подключения к нему потребуется знание локального IP-адреса. Кроме того, для правильной работы серверов может понадобиться переназначение портов (port forwarding) на вашем домашнем роутере: такое перенаправление позволит всем устройствам в сети «видеть» порт, через который работает сервер.

Если вы хотите использовать Android-сервер не только в рамках локальной сети, но и за её пределами, вам придётся воспользоваться услугой динамического DNS либо оплатить статический IP-адрес и обзавестись доменным именем. Это отдельная большая тема, и мы не будем её затрагивать здесь, тем более что в интернете можно найти множество подробных инструкций и советов по работе с этими сервисами.

Для создания сервера на базе устройства под управлением Android можно воспользоваться специализированными программами, которые, как обычно, загружаются с Google Play. Некоторые из них бесплатные, некоторые платные; мы же посоветовали бы прежде всего обратить внимание на три из них: Servers Ultimate, My FTP Server и Pixel Media Server.

Servers Ultimate — это, пожалуй, наиболее универсальная и гибкая программа по настройке серверов в Android: она может похвастаться встроенной поддержкой более 60 типов серверов и более 70 сетевых протоколов, причём отдельно предлагаются пакеты расширения с дополнительными категориями серверов. Бесплатная пробная версия позволяет создать два сервера, которые проработают в течение 14 дней, а полная версия Servers Ultimate Pro обойдётся примерно в 200 рублей.

В зависимости от ваших целей Servers Ultimate может предложить исчерпывающий набор возможностей — от HTTP/веб-серверов и FTP/файловых серверов до медиасерверов с поддержкой DLNA, причём для каждого сервера предлагается масса специфических настроек. Для запуска нужного типа сервера следует просто выбрать его в списке и щёлкнуть по иконке, а затем вы сможете приступить к тонкому конфигурированию.

Приложение может похвастаться встроенными MySQL- PHP- и NAS-серверами, оно обеспечивает шифрование настроек, автоматический запуск и остановку по команде через СМС и Wi-Fi.

Как очевидно из названия, My FTP Server — это простой в настройке бесплатный файловый сервер для устройств под управлением Android. Все настройки предельно просты и понятны: чтобы запустить файловый сервер, нужно задать имя пользователя и пароль, выбрать директорию по умолчанию — и всё: можно подключаться к нему через любой FTP-клиент, чтобы добавлять и удалять файлы.

Приложение My FTP Server хорошо подходит для записи и чтения файлов с устройства под управлением Android, причём оно может автоматически запускаться при загрузке гаджета. Доступ к файлам может быть дополнительно ограничен только определёнными беспроводными сетями. Системные требования My FTP Server минимальны; программа работает с Android начиная с «лохматой» версии 2.2.

Программа Pixel Media Server — это простой в настройке и использовании медиасервер для смартфонов и планшетов под управлением Android, работающий с протоколами UPNP/DLNA. Сервер поддерживает массу форматов, включая аудиофайлы MP3, WAVE, FLAC, видеофайлы AVI, MP4, 3GP, MPEG, MPG, MKV, FLV, TS и MOV, а также цифровые изображения JPEG и PNG. Разработчик гарантирует совместимость Pixel Media Server со всеми сертифицированными UPNP/DLNA-устройствами, включая «умные» телевизоры, медиаплееры, игровые приставки и прочее оборудование.

Бесплатное приложение Pixel Media Server — это один из самых простых способов превратить любое устройство под управлением Android в медиасервер. Для включения сервера нужно просто запустить приложение Pixel Media Server и поменять две настройки — название устройства и папку, в которой находятся мультимедийные файлы. После этого нужно нажать кнопку Play с характерным треугольником, и сервер готов транслировать потоковый контент. Не забудьте отключить функцию перехода в спящий режим, иначе у вас возникнут проблемы со стримингом контента.

Разумеется, существует множество других приложений для создания сервера под управлением Android, но мы бы посоветовали начать именно с этих трёх: они не только максимально просты в настройке, но и заслужили множество наилучших отзывов в Google Play.

Пожалуйста, подтвердите, что вы не робот, нажав на кнопку ниже

Причем тут веб-камера к планшету, скажете вы ? А вот и нет — ведь планшет-то у нас будет виртуальный!

Как-то раз, прочитав о Eye toy от Sony [1], я думал о необычных способах ввода данных в компьютер. В этот момент пришла идея попробовать самостоятельно собрать что-то подобное — благо веб-камера была под рукой.

Итак, давайте подумаем – что можно отслеживать, имея одну камеру? Во-первых — положение какого-либо объекта, отличающегося от фона. При этом он должен двигаться только в какой-то плоскости — поскольку для отслеживания координат в пространстве потребуется две камеры. Во-вторых — мы может отслеживать изменение цвета и формы объекта. К сожалению, распознавания формы потребует изучения серьезных алгоритмов распознавания образов, и потому от этого лучше отказаться. Но даже простого отслеживания положения в пространстве уже достаточно, чтобы собрать виртуальный планшет, если позаботиться о датчике нажатия.

Итак, принцип работы. Располагаем в поле зрения камеры белый лист бумаги. Наклеиваем на кончик ручки цветной маркер. Если перемещать ручку по листу бумаги, то, распознавая цвет маркера на картинке, можно получить координаты ручки в плоскости листа. Если эти координаты превращать в движение курсора на экране, мы получим простейший виртуальный планшет.

Ручка с цветным маркером

Для стабильного распознавания необходимо, чтобы отслеживаемый цвет значительно отличался от фона картинки. Кроме того, этот цвет должен быть насыщенным. Наилучшее, что нашлось под рукой – стикеры, используемые для наклеивания цен на товары. Ярко зеленый цвет отлично контрастирует с фоном картинки.

Берём обычную шариковую ручку.

Берем один стикер, и отрезаем тонкую полоску.

Полоску наматываем на стержень ручки.

Наш «стайлус» готов ! На картинке видно, что насыщенный цвет буквально «горит», и потому будет стабильно распознаваться нашей программой. Наша ручка не имеет датчика нажатия, поэтому пользователь должен будет использовать какую-либо клавишу клавиатуры, например – левый Ctrl.

Собственно, «аппаратная» часть уже закончена. Мы жестко закрепили камеру так, чтобы лист бумаги занимал как можно большую часть картинки, и сделали «стилус». С помощью программного обеспечения камеры мы можем видеть, что когда мы рисуем на листе бумаги, то на картинке с камеры отчетливо виден цветной маркер. Нам нужно написать программное обеспечение, которое будет отслеживать положение маркера на листе бумаги, и переводить его движение в движение курсора мыши на экране компьютера. Сразу скажу, что читатель, незнакомый с программированием, может пропустить два следующих раздела и сразу перейти к испытаниям, т.к. готовое программное обеспечение прилагается к статье.

В качестве языка программирования возьмем Delphi, т.к. для него легко найти готовые компоненты для работы с веб-камерой и ком-портом (об этом дальше), и легко делать пользовательский интерфейс. Но, прежде чем запускать редактор, обсудим алгоритмы.

С камеры мы получаем картинку в формате RGB (красный, зеленый, синий). Имея эти данные, мы должны распознать положение (координаты) маркера на картинке. У меня не было желания разбираться со сложными алгоритмами распознавания образов, и поэтому я взял простейший алгоритм: в цикле пройтись по всем пикселам картинки, выбрать из них те, цвет которых похож на цвет маркера, и найти средние координаты этих точек (X,Y).

Сравнивать цвета лучше в пространстве YUV (Y — яркость, UV – цвет), игнорируя яркость (Y). Это для того, чтобы условия освещения не влияли на стабильность распознавания.

Координаты всех точек, похожих на цвет маркера, нужно сложить и поделить на их количество. Таким образом, получим средние координаты, которые и будут положением нашего маркера на картинке.

, где n — количество похожих точек.

Итак, первая версия нашего «драйвера» уже умеет определять координаты маркера на картинке. Однако, координаты на картинке — это еще не координаты на листе бумаги, т.к. лист занимает не всю площадь картинки. Во-вторых, лист расположен под наклоном к плоскости изображения.

Для перевода координат маркера на картинке в координаты на листе бумаги, нам необходимо знать координаты углов листа бумаги на картинке. Для этого просто попросим пользователя «откалибровать» наш виртуальный планшет – кликнуть в углах листа бумаги.
После «калибровки» мы получаем четыре пары координат (x1,y1, x2,y2, x3,y3, x4,y4) на картинке, которые соответствуют углам листа бумаги. Теперь нужно вывести соотношение, которое позволит нам переводить координаты на картинке (x,y) в координаты на листе бумаги (X,Y). По началу, я долго не мог придумать, как это сделать, но потом все же удалось найти решение.

Лист бумаги представляет собой плоскость в пространстве. Положим, что координаты углов картинки в трехмерном пространстве равны:

Поскольку нас не интересуют реальные размеры в пространстве, а только относительные координаты на листе бумаги, мы можем принять любые координаты, лежащие в трехмерной плоскости. Я выбрал указанные, чтобы получать на выходе координаты X и Y в диапазоне [0..1].

Из курса трехмерной графики мы знаем, что для создания двумерного изображения из трехмерной модели, координаты трехмерных точек умножаются на локальную матрицу объекта и на матрицу камеры:

Полученные трехмерные координаты в пространстве камеры проецируются на плоскость экрана. Обычно для этого используется матрица проецирования, но в случае перспективной проекции этот же процесс можно описать простыми формулами:

, где f – фокусное расстояние.

Подставляем (1) в (2), и расписываем умножение матрицы на вектор:

, где — элементы суммарной матрицы .gif

Опять же, поскольку нас интересуют только соотношения, фокусное расстояние можно опустить и считать, что оно включено в элементы матрицы , находящиеся в числителе.
Перемножим и распишем (3):

Выразим X,Y (координаты на листе бумаги):

Имея формулы (4), мы может получать координаты на листе бумаги (X,Y) из координат на картинке (x,y). Координаты на листе бумаги будут в диапазоне [0..1] , и останется просто помножить их на разрешение экрана, чтобы получить требуемое положение курсора.

Как найти элементы матрицы для формулы (4)? Нам известны трехмерные координаты углов бумаги ( — приняты ранее) и их координаты на картинке ( — получены при калибровке). Нужно подставить их в формулы (4) и решить полученную систему уравнений.

Мы получаем систему линейных уравнений, которую можно расписать в матричном виде как:

Я дополнил матрицу A нулями снизу, чтобы она получилась квадратной.
Мы получили 8 уравнений и 9 неизвестных. Для нахождения 9 неизвестных недостаточно 8 уравнений. Но мы знаем, что точки (X,Y,Z) лежат в плоскости, и потому линейно зависимы. То есть на самом деле уравнений больше, чем неизвестных, и значит, система имеет решение. Просто скажу, что такие системы уравнений решаются с помощью сингулярного разложения матрицы, которое рассматривать здесь не буду, т.к. наверняка уже и так утомил :).

Усложняем аппаратную часть

Итак, мы уже можем рисовать с помощью нашего планшета! Однако, стабильность распознавания сильно зависит от условий освещения, да и пользоваться клавишей Ctrl для нажатия не очень удобно. Давайте соберем «продвинутый стилус» для нашего планшета.
Чтобы повысить стабильность, я решил поместить на кончик ручки зеленый светодиод. Теперь стабильность распознавания практически не зависит от освещения. В качестве датчика нажатия я взял микропереключатель из старой мышки.

Берем старую шариковую ручку диаметром 1см.

Берем старую COM-мышку.

Из мышки нам понадобится провод с разъемом и микропереключатель.

Микропереключатель вставляем в ручку так, чтобы при надавливании, стержень ручки его включал.

Берем зеленый светодиод. Я немного подпилил его с краев, чтобы сделать меньше.

Приклеиваем светодиод на кончик ручки. Я обернул светодиод фольгой с боков. Теперь в темноте вокруг светодиода не создается ореол, и стабильность распознавания улучшается.

Паяем все по приведенной схеме. Смысл состоит в следующем: светодиод запитывается от сигнальных линий СОМ-порта и постоянно горит. Микропереключатель замыкает цепь приема-передачи, и, таким образом, в нажатом состоянии программа получает «эхо» от посланных данных. Это можно проверить, запустив HyperTerminal и набрав несколько символов на консоли. Когда выключатель отжат — символы не отображаются. Когда нажат — введенные символы передаются терминалом, принимаются обратно и отображаются на консоли.

После сборки у вас должно получиться что-то подобное.

О настройке программного обеспечения

Я постарался сделать ПО с максимально понятным интерфейсом в форме Мастера.
Сразу после запуска, ПО пытается соединиться с веб-камерой и требует калибровки. Остановлюсь отдельно на некоторых страницах Мастера.

На экране выбора веб-камеры необходимо выбрать камеру (Кнопка «Источник…») и формат изображения («Формат…»). Если у вас в системе два устройства видеоввода, например — на видеокарте есть видеовход, то нужно правильно выбрать источник. В настройках формата необходимо выбрать один из следующих форматов: I420, IYUV, UYVY. С другими форматами ПО не работает. Здесь следует также отметить, что при более высоком разрешении веб-камеры часто дают в 2-3 раза ниже FPS, так что, возможно, придется пожертвовать разрешением в пользу скорости реакции. При правильной настройке, в левое окно должно поступать изображение с камеры.

На экране настройки цвета слежения необходимо подобрать параметры «Разброс», «Чувствительность» и цвет слежения такие, чтобы в левой картинке за кончиком ручки четко следовал красный крестик.

Нужно начать с параметра «Чувствительность». Установите его таким, чтобы в правом окне отчетливо выделятся цветом наш маркер. Кликните курсором мыши на изображении маркера в правом или левом окне. Программа запомнила требуемый цвет, и начинает собирать похожие точки. Количество похожих точек отображается под меткой «Samples count:». В левом окне похожие точки помечаются розовым цветом. Необходимо подобрать параметр «Разброс» таким образом, чтобы количество похожих точек примерно равнялось пятидесяти. Возможно, придется отрегулировать размер цветного маркера на кончике ручки и убрать посторонние предметы из поля зрения камеры.

Надеюсь, что остальные экраны Мастера не вызовут вопросов. После завершения Мастера, наш «драйвер» сидит в трее. Включать/выключать планшет также можно клавишей «Scroll lock» клавиатуры.

Думаю, что если у вас когда-нибудь возникало желание купить себе какой-нибудь дешевенький планшет «для поиграться», то для этих целей вам вполне хватит виртуального. Ведь все, что нужно — это закрепить камеру, наклеить маркер на кончик ручки, установить ПО — и планшет готов.

Как вариант, можно рисовать лазерной указкой (или брелком) на стене. Веб-камеру также можно заменить цифровым фотоаппаратом, подключенным к видеовходу видеокарты. Лично я пробовал с Canon A70 + видеовход на GeForce 4 TI4200, а также фотоаппарат Agfa CL20 в режиме веб-камеры.

Я не зря назвал этот планшет «игрушкой». Ему никогда не сравниться с профессиональными планшетами типа Wacom из-за низкого разрешения (а оно примерно на 50% меньше разрешения веб-камеры), а также задержки, возникающей из-за задержки видеосигнала при оцифровке. Для сравнения скажу, что планшет Wacom Intuos работает в разрешении не меньше 1024×768, распознает 512 степеней нажатия и наклон ручки. Кроме того, многие камеры меняют баланс белого при изменении условий освещения, из-за чего цвет слежения изменяется и вызывает проблемы со стабильностью распознавания.

Как сделать виртуальный планшет