Тарифы Услуги Сим-карты

Бесплатная виртуальная клавиатура для Windows. Разработка сенсорной клавиатуры для своих устройств

11 января 2011 в 20:33

Разработка сенсорной клавиатуры для своих устройств

  • DIY или Сделай сам

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

В процессе разработки одного проекта мне потребовалась удобная клавиатура на 8 кнопок. Я решил прибегнуть к известному подходу – реализовать емкостные сенсоры.
Физическую теорию я уже описал в своей статье про девайс-сувенир, которой чувствовал, когда его берут в руку (http://habrahabr.ru/blogs/DIY/111627/)
Принцип остается совершенно тем же самым, единственное отличие в реализации – используются не два вывода микроконтроллера а один.
Для начала, видео того, к чему мы будем стремиться:

Шаг 1: Схемотехника

Схемотехника сенсоров слегка изменилась, в связи с тем, что необходимо использовать только одну ногу микроконтроллера на сенсор, а не две. Впрочем, если вам не жалко лишних ног, то можно все оставить по-старому.

Порядок опроса сенсора будет слегка отличаться. Изначально на пин PD0 подан лог. 0.
Таким образом, ток течет от источника питания через мегаомный резистор и втекает в пин. Если сенсор был заряжен, то ток с него также будет стекать в пин PD0.

В момент опроса мы переключаем пин с выхода на вход (подтяжки отключены!). В этот момент, пин переходит в высокоимпедансное состояние, с сопротивлением порядка нескольких десятков(а то и сотен) МОМ. Ток в направлении пина практически прекращает течь, и начинает течь в сторону сенсора. Как только сенсор зарядится до напряжения свыше уровня лог. 1, данный вход микроконтроллера покажет единицу.
Измерив время, которое прошло с момента перевода PD0 в высокоимпедансное состояние до появления на нем лог 1, можно сделать вывод об изменении емкости сенсора, а значит, отловить момент прикосновения.

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

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

Над каждым сенсором расположен SMD диод для индикации нажатия.
Управляется все это микроконтроллером ATMega88, заведенном на частоте 20 МГц.
Таким образом, выход с этой клавиатуры можно сделать любой, какой вам будет нужен и какой потянет мега. В моем случае был удобен SPI (я прошивал и тестил не отключая от программатора, да и в устройстве уже была задействована эта шина), но вы может использовать встроенный в мегу наравне с SPI UART, I2C, или воспользоваться программной реализацией USB от ObjDev. Да, собственно, можно и аппаратной, типа FTDI преобразователя USB->UART.

Итоговая схема (скриншот из Altium) представлена ниже.

Опять-таки, ничего сложного, ничего лишнего – мега, тактирующая ее цепь, пара сглаживающих питание кондеров, разъем для программирования/подключении, 8 диодов и 8 сенсоров.

Что интересно: расстояние, на котором сенсор может почувствовать руку зависит от разрядности таймера, его частоты, а также сопротивления, через которое подключен сенсор. Объясняется это просто – более быстрый таймер сможет засечь более мелкие интервалы времени, а при отсутствии гальванического контакта с сенсором время зарядки существенно снижается. 20 МГц меги и ее 16-разрядного таймера хватает на то чтобы уверенно обнаруживать прикосновение через слой пластика (плексигласа) около 1 мм.
Можно слегка разогнать мегу и немного увеличить сопротивление, но лучше этим не увлекаться – стабильность работы разогнанной меги не гарантируется, а слишком большое сопротивление может сравнять ток заряда с током утечки, что сделает сенсор вечно неактивным.
Как бы то ни было, нормального режима работы вполне хватит для прикрытия сенсоров тонким кусочком пластика. Идеальным бы был вариант с напылением токопроводящего покрытия на стекло, но у меня не было особой возможности поэкспериментировать в этом направлении.

Шаг 2: Код

В принципе все уже описано выше, но для некоторой ясности приведу код проекта.

#include #include unsigned char KBD_STATUS=0x00, TMP_STATUS=0x00; //Текущий статус клавиатуры и переменная, куда запишем новый статус unsigned short SensorTimes={0,0,0,0,0,0,0,0}; //Времена откликов сенсоров unsigned short SensorHI={0,0,0,0,0,0,0,0}, //Для ускорения вычислений - заранее посчитанные SensorLO={0,0,0,0,0,0,0,0}; //верхний и нижний пороги void CheckSensors(); unsigned short SensToLED={8,16,32,1,4,2,1,2}; //Доп. массив, т.к. диоды висят на рандомных ногах) ISR(TIMER0_OVF_vect) { CheckSensors(); //Проверяем сенсоры for(unsigned short i=0;i<8;i++) { if(KBD_STATUS&(1<SensorHI[k]) //Гистерезис, чтобы не дрыгалось при граничном значении емкости TMP_STATUS|=i; else if(TCNT1<=SensorLO[k]) TMP_STATUS&=~i; k++; i<<=1; } KBD_STATUS=TMP_STATUS; } int main() { DDRD=0xFF; PORTD=0x00; PORTC=0xFF; DDRC=0xFF; TCCR0=0b00000101; TCNT0=0x00; TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; MCUCR=0x00; TIMSK=0x01; ACSR=0x80; SFIOR=0x00; InitSPIMode3(); for(int i=0;i<1024;i++) //Просто чтобы не калиброваться сразу как подадут питание CheckSensors(); // подрыгаем сенсорами) KBD_STATUS=0x00; TMP_STATUS=0x00; Calibrate(); //Калибруемся sei(); while(1); }

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

Это бесспорно нужная вещь. И если электронную клавиатуру скачать, а не набирать текст на обычной, то она может предотвратить даже вторжение хакеров на компьютер.

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

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

К такому софту относится замечательная программа Hot Virtual Keyboard, давайте поговорим о ней подробно.

Перейти на официальный сайт программы

Эта электронная клавиатура и ее возможности на порядок выше простых гаджетов:

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

Скачайте файл и установите его на компьютер, затем можно перейти к настройкам:

  • Установите язык программы и ее вид;

Все действия на электронной клавиатуре проходят аналогично обычной, только вводить буквы и символы придется курсором мыши так, как указано на рисунке ниже. Если курсор удерживать долго, то символ будет вводиться многократно;

  • Выберете язык ввода так, как это на рисунке показано стрелочкой. Расположение на виртуальной клавиатуре символов будет различным, в зависимости от настроенного языка ввода;
  • Можно расположить клавиатуру внизу или вверху экрана. А все открытые окна открытых программ будут расположены так, что клавиатуру будет видно в любом случае;
  • Если есть желание освоить слепую печать, то можно настроить и эту опцию: зайти в параметры → оформление → клавиши. Здесь включить кнопку «Раскрасить зону пальцев». То есть те позиции, которые можно нажать одновременно, будут подкрашены в один цвет;

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

Особенности работы на электронной клавиатуре

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

  • Начинается буквенный ряд с буквы Й в русской раскладке или буквой Q в английской. Если вы хотите, чтобы вместо них набиралась А (F), то нажмите на опцию замены, и выберете F, и нажмите на эту опцию. После того, как перераспределение настроено, сохраните настройки в файле, нажав на опцию «сохранить как», и можно набирать по новым созданным вами правилам.

Такая возможность смены клавиш доступна только в электронной клавиатуре, для простых гаджетов это не предусмотрено.

Но это не все преимущества программы. Есть и другие очень полезные функции:

  • Можно настроить выполнение определенного макроса;
  • Вставить текст при помощи всего одной клавиши;
  • Запустить нужное программное обеспечение;
  • Открыть нужную web страницу;
  • Подключение или отключение интернета;
  • Управлять звуковыми эффектами, монитором и пр.

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

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

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

Вконтакте

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

Как правило, есть две основные причины, из-за которых пользователи используют виртуальные клавиатуры вместо настоящих.

Доступность

Использование клавиатуры в качестве замены:

  • Пользователь не может использовать настоящую клавиатуру. Например, наличие у людей устройств, которые не подразумевают физического наличия клавиатуры, такие как коммуникаторы и устройства с сенсорными экранами.
  • Поиск альтернативного способа ввода текста. Например, для того чтобы была возможность набрать текст на своем родном языке (например, на реальной клавиатуре нет наклеек родного языка). Или, например, проблемы с существующей клавиатурой (сломался драйвер в системе, блокировка устройства и т.д.).

Безопасность

Для повышения уровня безопасности и защиты от различного вредоносного программного обеспечения (например, от клавиатурных шпионов):

  • Безопасные экранные клавиатуры станут хорошими помощниками в деле повышения уровня безопасности при использовании общественных, незащищенных или подозрительных компьютеров (например, учебные классы, интернет-кафе и т.д.).
  • Безопасные виртуальные клавиатуры могут помочь защитить ваш компьютер от вредоносного программного обеспечения следующих типов:
    • Кейлоггеры (клавиатурные шпионы) - фиксируют все нажатия клавиш
    • Логирование экрана - создают скриншоты экрана с регулярными периодами или по каким-либо определенным действиям пользователя
    • Логирование буфера обмена - контролируют содержимое буфера обмена
    • Фиксация положения курсора мыши - сохраняют все координаты, где были зафиксированы клики мышкой. В основном, этот тип используется для взлома банковских экранных клавиатур.
    • Захват значений в текстовых полях - получают все значения из текстовых полей, даже скрытых маской пароля (всем знакомые ****)

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

В данном обзоре рассматриваются виртуальные клавиатуры, решающие вопросы доступности .

Обзор бесплатных экранных/виртуальных клавиатур

Экранная клавиатура Click-N-Type отличный аналог коммерческим предложениям

Microsoft On-Screen Keyboard

Поддержка трех способов ввода. Начиная с Windows 7 автоматическое переключение языков при смене активного окна.
Нельзя изменить размер клавиатуры (исправлено начиная с Windows 7).
-------------
211KB 2.0 Unrestricted freeware Windows
Входит в состав Windows

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

Встроенная виртуальная клавиатура Windows

Для начала кратенько расскажу про родную (встроенную) экранную клавиатуру операционной системы Windows, как её включить и вообще — что она из себя представляет.

Найти её очень легко — во всех версиях Windows включатель находится в специальных возможностях панели управления

Очень ускоряют доступ к этим настройкам системные горячие клавиши «Win+U» — они сразу перебрасывают нас куда надо, даже в слегка запутанной Windows 10 …

Встроенная экранная (виртуальная) клавиатура не отличается огромным количеством настроек…


…и дополнительными удобными функциями — абсолютный минимализм…

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

Моё личное мнение — очень «печальная» виртуальная клавиатура встроена в самую популярную операционную систему.

Free Virtual Keyboard — бесплатная виртуальная клавиатура

Совсем другое дело — сторонние более практичные и удобные решения, такие как бесплатная портативная Free Virtual Keyboard.

Запускается она одним кликом по портативному файлу, скачанному Вами по официальной ссылке, что в конце статьи…

Волшебным тыком любой кнопкой компьютерной мышки по маленькому значку клавиатуры в левом верхнем углу окна программы можно попасть в меню этого экранного устройства ввода информации…

Тут простыми кликами по строкам «Активировать следующий вид клавиатуры» и «Изменить цвета»…

…меняется вид…

…и цвет клавиатуры…

Ползунком, что справа внизу, регулируется прозрачность…

Очень удобная функция — клавиатура не закрывает собой содержимое сайта или форума, можно одновременно читать и набирать текст.

Также мне понравилась возможность автоматического растягивания по ширине экрана…

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

Язык ввода меняется стандартным образом — с помощью горячих клавиш или кликом по системному значку в трее…

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

Скачать Free Virtual Keyboard

На официальной странице программы Вы найдёте несколько ссылок на разные варианты инсталлятора…

Размер удобной бесплатной виртуальной клавиатуры, как видите, совсем крохотный — всего 227 кб. Работает она во всех версиях операционной системы Windows: 2000/XP/Vista/7/8/8.1/10. Вирусов нет , как и встроенного «полезного» дополнительного софта .

P.S. Ещё мне понравилась экранная виртуальная клавиатура под названием Virtual Keyboard 4. В неё вмонтированы десятки языков ввода и есть классный режим передачи текста, но совершенно не ясно — она бесплатная или «жадная».

На своём сайте автор пишет, что её можно «бесплатно скачать и использовать в соответствии с лицензионным соглашением», но в нём нет ни слова про условия использования. Более того — в свойствах я увидел временный ограниченный статус…

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

клавиатура (при налаженном массовом производстве) имеет небольшую стоимость, так как нет необходимости использовать литые формы и затрачивать время и на сборку. К достоинствам этой технологии можно отнести и то, что такое устройство гигиенично - негде собираться пыли и грязи. Также сенсорная клавиатура не боится пролитой жидкости (что достаточно актуально для тех, кто много времени проводит за компьютером и часто ест и пьет «не отходя от кассы»). Устройство этого типа может иметь любое количество кнопок, любой вид и конфигурацию. Его можно встраивать в любые устройства: в промышленное оборудование, охранные системы, банкоматы, и т.д.

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

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

Принцип действия

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

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