Как работает клавиатура: от нажатия кнопки до команды компьютеру

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

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

Что происходит под клавишами

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

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

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

Путь нажатия: от пальца до действия

Проследим один пример. Человек открыл текстовый редактор, выбрал место для ввода и нажал клавишу с буквой.

  1. Палец нажимает клавишу. Движение передаётся переключателю под ней.
  2. Контакт замыкается. Для контроллера это изменение состояния на определённом пересечении матрицы.
  3. Контроллер распознаёт нажатие. Он определяет положение изменившегося контакта и регистрирует нажатие соответствующей клавиши.
  4. Сведения поступают компьютеру. Клавиатура выступает устройством ввода: она сообщает о действии пользователя.
  5. Компьютер и программа обрабатывают ввод. В выбранном текстовом поле программа может добавить символ и показать его на экране.

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

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

Какие части за что отвечают

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

Физические части компьютера называют аппаратной частью, а программы и их инструкции — программным обеспечением. В объяснении компании IBM об аппаратной части клавиатура приведена как устройство ввода, а монитор — как устройство вывода. Первое помогает передать данные компьютеру, второе — показать результат человеку.

Почему сигнал не равен букве

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

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

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

Если нажаты несколько клавиш

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

Аналогия: записка с адресом

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

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

Сходство ограничено: внутри клавиатуры нет человека, который читает записки, и контакт не содержит готового текста для ячейки. Аналогия объясняет различение положения и дальнейшую обработку сведений, а не изображает работу электрических цепей.

О чём поговорить с ребёнком

Как клавиатура различает две кнопки?

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

Почему после нажатия не всегда появляется буква?

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

Зачем компьютеру и клавиатура, и экран?

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

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