Arduino Micro Pro. Как построить Wacom Cintiq

  • Цена: 10.38
  • О платах Arduino, наверное, слышали все, а многие и как минимум держали их в руках, а то и создавали на них что-нибудь сами.

    Сегодня мы взглянем поближе на плату на базе ATMega32U4, оживим с её помощью древний графический планшет и дадим возможность самодельному LCD монитору воспринимать написанное прямо на экране.

    Добро пожаловать под кат.

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

    Эталоном таких устройств считают изделия от Wacom. Их сенсоры используют явлениие электромагнитного резонанса. Перо получает необходимую для работы энергию от самого сенсора, поэтому ему не нужны ни провода, ни элементы питания. В своё время фирма подсуетилась насчёт правильного патента и надолго закрепила свою монополию на безбатарейные перья, вынудив конкурентов утяжелять свои встроенными аккумуляторами. Ныне патент уже истёк, но планшеты с активными перьями всё ещё встречаются в продаже.

    Как это работает?

    Arduino Micro Pro. Как построить Wacom Cintiq

    Сенсором является антенна-матрица из множества приёмно-передающих катушек и магнитный отражатель, размещённый под ней. Антенна излучает электромагнитное поле с частотой 531 кГц, которое наводит ЭДС в катушке внутри пера и обеспечивает питанием его электронную схему.

    Arduino Micro Pro. Как построить Wacom Cintiq

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

    Arduino Micro Pro. Как построить Wacom Cintiq

    Антенна, как правило, делается из стеклотекстолита и непрозрачна для света, но LCD-матрица прозрачна для излучения антенны и пера, поэтому антенну можно разместить под LCD-матрицей, тем более что сама по себе антенна можеть быть тонкая — до 0,5 мм толщиной.

    Arduino Micro Pro. Как построить Wacom Cintiq

    При работе с графическим планшетом одной из проблем является разнесение в пространстве пера и изображения — некоторым в такой ситуации сложно рисовать. Совмещение планшета с дисплеем эту проблему снимает.

    В настольном исполнении такие устройства давно известны под торговой маркой Cintiq, в портативных устройствах технология тоже нашла своё применение под названием Wacom Penabled. Такие ноутбуки, как правило, можно определить по специфическому шарниру крышки, позволяющему вывернуть её в обратную сторону и опустить на клавиатуру экраном наружу.

    Arduino Micro Pro. Как построить Wacom Cintiq

    Они время от времени попадаются на вторичном рынке в различной степени работоспособности. Расцвет технологии пришёлся на времена Pentium M/Core Duo, так что даже если девайс достанется живым — при 2-4 Гб оперативной памяти работать с современным ПО будет тяжело.

    Как один из вариантов решения проблемы производительности, в Интернете предлагалось установить Linux и пробросить ввод и вывод на другой ПК через локальную сеть, но это не наш метод. Тем более что изображения на экране все равно нет, поэтому ноутбук можно смело разбирать.

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

    Arduino Micro Pro. Как построить Wacom Cintiq

    А вот так выглядит открытая сторона антенны. Хотя шаг проводников матрицы порядка 3-4 мм, её сигнальный процессор позволяет определять положение пера с точностью до 1/200 мм. Кстати, будете покупать такой девайс — не забудьте убедиться в наличии пера в комплекте. Перья от разных Penabled-ноутбуков хоть и взаимозаменяемы между собой, но отдельно стоят довольно негуманных денег даже на Ebay.

    Arduino Micro Pro. Как построить Wacom Cintiq

    Контроллер антенны расположен на отдельной плате, соединённой с антенной прикленным печатным шлейфом, и прикрыт плёнкой.

    Отклеим плёнку и присмотримся к плате поближе.

    Arduino Micro Pro. Как построить Wacom Cintiq

    На ней распаяны две большие микросхемы, одна из которых — фирменный ASIC W8003, обеспечивающий обработку принятых сигналов. Он выполнен в корпусе BGA, все выводы спрятаны от глаз, нормального описания ни на плату в целом, ни на сам чип нету, но нашлась небольшая табличка, утверждающая, что дигитайзер умеет общаться с внешним миром по интерфейсам USB и UART.

    Arduino Micro Pro. Как построить Wacom Cintiq

    А ещё нашлась табличка с описанием сигналов 14-контактного разъёма.

    Arduino Micro Pro. Как построить Wacom Cintiq

    Забегая вперёд: в таблице есть ошибка — перепутаны контакты 9 и 10.

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

    В родном шлейфе проводов к контактам USB нет — может, экономили порт на плате? В любом случае, берём тонкий провод МГТФ и паяемся прямо к плате — расстояние между выводами разъёма примерно 1 мм, паять несложно, есть шанс легко добиться желаемого.

    Arduino Micro Pro. Как построить Wacom Cintiq

    Откладываем в сторону паяльник и пытаемся подключить конструкцию к USB-порту ПК — «Устройство не опознано».

    Возможно, мы перепутали местами линии данных? Нет, их перемена местами тоже ничего не даёт.

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

    Итак, мы имеем UART с 3В логическими уровнями. Может, нас выручит переходник USB-UART?

    Нет, он нам не поможет. Пока ещё были в ходу графические планшеты с RS-232, пользователи установили, что они нормально работают только через переходник на строго определённом чипе. Но на этом проблемы не исчерпываются — нормальная поддержка планшетов с последовательным интерфейсом осталась только в Linux, в Windows она закончилась вместе с WinXP(начиная с Win7, драйвер для встроенного дигитайзера Wacom проверяет ID материнской платы по белому списку)

    Продолжение поиска вывело на проект под названием Waxbee.

    Изначально он предназначался для продления жизни планшетов с интерфейсом ADB.

    Arduino Micro Pro. Как построить Wacom Cintiq

    Сам интерфейс был разработан фирмой Apple в 1986 году и предназначался для подключения низкоскоростных устройств ввода типа клавиатур и мышек. В теории он должен был обеспечивать поддержку цепочки длиной до 16 устройств(на практике получалось только 3) и холодный запуск ПК с клавиатуры.

    Arduino Micro Pro. Как построить Wacom Cintiq

    Физически он состоял из четырёх проводов — два обеспечивали питание и заземление, по третьему передавались данные и тактовый сигнал от всех устройств, четвёртый фактически выводил за пределы системного блока линию PS_ON блока питания. Такой вот предок 1-Wire. Естественно, без недостатков тут не обошлось, и если с малой пропускной способностью шины можно было мириться, то короткое замыкание в цепи подключенных устройств пережигало предохранитель на материнской плате и у компьютера разом отваливались клавиатура и мышь. Тем не менее это решение продержалось в производстве больше 10 лет, пока не было заменено на USB — а периферийные устройства начали превращаться в тыкву.

    Судя по всему, проект начался с подключения ADB-клавиатур к ПК: если интерфейсы AT и PS/2 электрически идентичны и взаимопреобразуются в любую сторону простым пассивным переходником, то у ADB потомков не осталось и без активного адаптера уже не обойтись. Адаптеры, как оказывается, довольно популярны — настолько, что производятся по крайней мере мелкосерийно.

    Реализованы они изначально на основе отладочной платы Teensy 2.0, появившейся в 2009 году.

    Arduino Micro Pro. Как построить Wacom Cintiq

    Она отличалась от набиравшей популярность Arduino двумя особенностями — увеличенным объёмом памяти (целых 32 кБ вместо 8-16!) и аппаратным USB, позволявшим сэкономить место в памяти, отказавшись от программной эмуляции, и просто увеличить надёжность работы устройства с ATmega32U4 вместо ATMega8/88/168. Так что если Вы видите проект самодельной клавиатуры — с большой вероятностью в нём будет использован именно этот микроконтроллер, и его главная ценность — умение работать как USB-HID устройство. Добро пожаловать в мир самодельных клавиатур, мышек, джойстиков и прочего!

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

    Одним использованием библиотеки adb2usb дело не ограничилось, и теперь Waxbee может эмулировать USB-планшет на базе оборудования с различными последовательными интерфейсами — хоть RS-232, хоть ISDV4 — в исходниках имеется немало готовых конфигурационных шаблонов, на основе которых нужную прошивку для конвертера можно скомпилировать хоть сразу, хоть после их незначительной правки. Правда, на обычной плате Arduino работать не будет — ATmega32U4, ATMega8 и ATMega88/168/328 между собой программно несовместимы. Поэтому придётся раскошелиться на плату Arduino Micro Pro.

    Плата приехала в почтовом пакете морковного цвета.

    Arduino Micro Pro. Как построить Wacom Cintiq

    Сама она упакована ещё в антистатический защитный пакет — всё ж электронное устройство, как-никак.

    Arduino Micro Pro. Как построить Wacom Cintiq

    Размеры платы 35х18 мм. Ещё с ней в пакете есть пара однорядных гребёнок на 12 контактов.

    Arduino Micro Pro. Как построить Wacom Cintiq

    На нижней стороне платы никаких деталей нет.

    Arduino Micro Pro. Как построить Wacom Cintiq

    Сравнение размеров с Arduino Nano(справа).

    Arduino Micro Pro. Как построить Wacom Cintiq

    Расположение выводов:

    Arduino Micro Pro. Как построить Wacom Cintiq

    18 цифровых вывода могут работать как входами, так и выходами. Напряжение на выводах 5 или 3,3В в зависимости от версии платы, ток до 40мА на каждом. Есть последовательный интерфейс с выводами TX и RX; I2C интерфейс с выводами SDA и SCL; SPI интерфейс с выводами MISO, MOSI и SCK и 9 аналоговых входов A0-A3 и A6-A10. Доступны 5 каналов ШИМ на выводах 3, 5, 6, 9, 10.

    Принципиальная электрическая схема:

    Arduino Micro Pro. Как построить Wacom Cintiq

    Забегая немного вперёд: оба сигнальных светодиода, распаянных на плате, одного цвета — зелёного. Видимо, кто-то оптимизировал закупку комплектующих изделий, а теперь при беглом взгляде на плату сразу и не понять, какой из них светится.

    Собственно сборка аппаратной части нашего конвертера несложна.

    Если есть родной шлейф для подключения дигитайзера — лучше воспользоваться им. Хотя в крайнем случае можно и прямо к плате припаяться.

    Arduino Micro Pro. Как построить Wacom Cintiq

    Выводы 1(USBGND), 11(GRD) и 14(GND) разъёма дигитайзера соединяем с выводом GND Arduino.

    Вывод 9(TXD) соединяем с выводом RX1 Arduino.

    Вывод 10(RXD) соединяем с выводом TX0 Arduino.

    Вывод 13(VCC) соединяем с выходом стабилизатора напряжения на 3,3В, подключенного к выводу RAW Arduino.

    Вывод 6(PDCT) — сигнал захвата пера — можно использовать для управления индикаторным светодиодом через ключ на транзисторе, а можно и не задействовать.

    Остальные выводы разъёма дигитайзера не используются.

    Вот так всё это выглядит в собранном виде.

    Arduino Micro Pro. Как построить Wacom Cintiq

    Теперь дело за прошивкой.

    Если Вы используете дигитайзер с диагональю 12,1 дюйма и соотношением сторон 4:3, то можно сразу использовать готовую прошивку.

    Как ни странно, но среда разработки Arduino IDE не умеет работать с готовыми .hex-файлами, но скачать и поставить её всё равно придётся — ради драйверов USB-Serial, потому что без них Windows 7 работать с платой не будет:

    Arduino Micro Pro. Как построить Wacom Cintiq

    Скачиваем, ставим, открываем диспетчер устройств:

    Arduino Micro Pro. Как построить Wacom Cintiq

    Для заливки прошивки используем широко известную в узких кругах программу AVRDude. Она консольная, но это не страшно. Кстати, не тратьте зря время на утилиты типа XLoader или ARP Uploader — работать с ATMega32U4 они не умеют.

    Скачиваем последнюю версию(старые не умеют работать c ATMega32U4), распаковываем для удобства в корневую папку диска(например, С:), туда же — скачанную прошивку.

    Запускаем командную строку и набираем в ней команду:

    avrdude -p atmega32u4 -c avr109 -P COMx -b 57600 -D -V -v -U flash:w:SU-040-01X-V2.hex:i

    Нет, клавишу Enter пока что не трогаем.

    Смотрим в открытое окно диспетчера устройств, берём в руки пинцет/отвёртку и ненадолго замыкаем на плате Arduino контактные площадки GND и RST. Кнопки RESET на плате нет, её можно было бы напаять на проводах, но вряд ли она мне понадобится больше двух раз.

    Микроконтроллер уйдёт на перезагрузку и после неё в первую очередь запустит прошитую в него программу загрузки основной прошивки через виртуальный COM-порт, отобразив его в диспетчере устройств.

    Arduino Micro Pro. Как построить Wacom Cintiq

    Эта программа включает в себя таймер, который через некоторое время её завершит, если не начнется передача основной прошивки. На ожидание этой передачи отводится несколько секунд.

    Просто запомним номер порта загрузчика, переключимся в окно консоли с AVRDude, поправим номер порта в командной строке, снова замыкаем металлическим предметом контакты на плате Arduino, снова ждём обнаружения загрузчика и вот сейчас нажимаем Enter.

    Arduino Micro Pro. Как построить Wacom Cintiq

    При этом на плате загорятся и погаснут два зелёных светодиода.

    Выдёргиваем кабель из USB-порта, вставляем его снова — Windows обнаруживает новое устройство.

    Скачиваем legacy-драйвер Wacom, ставим, перезагружаемся.

    В диспетчере задач появляется пара новых устройств:

    Arduino Micro Pro. Как построить Wacom Cintiq

    а в панели управления — новый значок:

    Arduino Micro Pro. Как построить Wacom Cintiq

    Откроем его. Как и обещалось, Arduino эмулирует планшет Wacom Intuos 2.

    На этих вкладках можно настроить чувствительность пера и ластика, назначение кнопок…

    Arduino Micro Pro. Как построить Wacom Cintiq

    … активные области планшета и дисплея и их взаимный маппинг.

    Arduino Micro Pro. Как построить Wacom Cintiq

    Если дигитайзер не 12,1 дюйма 4:3, а 12,1 дюйма 16:10
    1. Скачайте Waxbee(Для работы требуется Java)

    2. Запустите командную строку, перейдите в папку с файлом waxbee.jar, и выполните команду

    javaw -jar waxbee.jar

    3. Выберите пункт меню File-New from Template, выберите в диалоговом окне файл Penenabled ISDV4 to Intuos2 12×18.tmpl.txt

    4. Выберите пункт меню File-Raw Config Editing

    5. Введите значения с картинки:

    Arduino Micro Pro. Как построить Wacom Cintiq

    6. Выберите пункт меню Firmware-Generate firmware .hex file

    7. Загрузите полученный .hex-файл в Arduino как описано выше.

    Если дигитайзер не 12,1 дюйма 4:3 и не 12,1 дюйма 16:10
    1. Скачайте и установите драйвер от PJRC.

    2. Загрузите в Arduino прошивку USB-Serial по методу, описанному выше.

    3. Уточните в диспетчере устройств номер нового COM-порта.

    4. Установите и запустите программу RealTerm

    5. В RealTerm выберите Hex [Space] под «Display», нажмите «Change». Выберите вкладку Port, выберите на ней соответствующий номер порта и скорость передачи 19200 в соответствующих выпадающих списках. Нажмите «Change», затем «Open».

    6. Введите * в окне терминала. Затем должен последовать ответ, начинающийся с C0, например, C0 30 00 24 00 7F 01 00 00 00 62

    Arduino Micro Pro. Как построить Wacom Cintiq

    Если ответа нет:

    — неверно выставлена скорость передачи( для дигитайзера с сенсорным экраном обычно 38400 бод, для обычного 19200 бод)

    — дигитайзер все еще нуждается в сбросе (например, SU-040-X01 от X41t). На короткое время подключите контакт 12 на разъеме дигитайзера к земле(контакт 14). При отсутствии эффекта переключитесь на 38400 бод (не забудьте нажать «Change») и посмотрите, сможете ли вы получить ID-string с помощью *.

    — перепутаны провода RX/TX. Проверьте правильность сборки.

    — дигитайзер неисправен. Проверьте наличие напряжения на выводе 6 при поднесенном пере. При необходимости замените дигитайзер.

    7. Дешифруйте ID-string (о её структуре здесь), всего используется 16 битов для Max_X и Max_Y. В примере:

    C0 30 00 24 00 7F 01 00 00 00 62

    1100 0000 0011 0000 000 0000 0 0 010 0100 0 000 0000 0 111 1111 0 00 0 0 001 0000 0000 0000 0000 0000 0110 0010

    Max_X: 011 0000 000 0000 00 Max_Y: 010 0100 000 0000 00 Мax_Pressure: 001 111 1111

    Max_X = 24576 Маx_Y = 18432 Мax_Pressure = 255

    8. Запустите Waxbee, как описано выше, отредактируйте файл Penenabled ISDV4 to Intuos2 12×18.tmpl.txt, используя полученные при расшифровке ID-string числовые константы.

    9. Создайте .hex-файл прошивки и загрузите его в Arduino, как указано выше.

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

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

    Arduino Micro Pro. Как построить Wacom Cintiq

    Если она живая — к ней можно подключить плату управления и превратить её в LCD монитор:

    Arduino Micro Pro. Как построить Wacom Cintiq

    Экспериментальный стенд перед включением:

    Arduino Micro Pro. Как построить Wacom Cintiq

    Оно пробуждается!

    Arduino Micro Pro. Как построить Wacom Cintiq

    Работает пока что в штатном режиме.

    Arduino Micro Pro. Как построить Wacom Cintiq

    Накроем матрицу родной рамкой с защитным стеклом — и можно писать специальным пером прямо на экране:

    Arduino Micro Pro. Как построить Wacom Cintiq

    Тест чувствительности к давлению:

    Arduino Micro Pro. Как построить Wacom Cintiq

    Итак, на выходе мы получили примерный функциональный аналог интерактивного монитора Wacom Cintiq 15X — девайса хоть и не нового, но до сих пор пользующегося спросом — примерно за 10% от его стоимости.

    Arduino Micro Pro. Как построить Wacom Cintiq

    С донором, конечно, не очень повезло, но тем не менее для редактирования фотографий и несложного рисования девайс вполне пригоден.

    Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта.

Оцените статью