Освой Arduino играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

PS2Keyboard

Раньше мыши и клавиатуры подключались к компьютерам через отдельный интерфейс PS/2. Сейчас их вытеснил USB-интерфейс, но возможно у кого-то ещё завалялись старые мыши и клавиатуры. У клавиатур штекер и гнездо фиолетового цвета, а у мышей зелёного. Но этот цветовой стандарт появился позже, до этого производители не заморачивались, поэтому можете встретить штекер без цветовой индикации.

PS/2

Существует библиотека для связи клавиатуры на PS/2 с Arduino. О ней и пойдёт речь.

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

PS/2

Домашняя страница библиотеки PS2Keyboard на Гитхабе.

Установить библиотеку проще через Arduino IDE. Заходим в Sketch | Include Library | Manage Libraries и через поиск находим нужную библиотеку. Нажимаем кнопку Install и устанавливаем её. В разделе File | Examples появится новый раздел PS2Keyboard с двумя примерами: International и Simple_Test.

PS/2

Simple_Test

В комментариях к скетчу написано, что для Arduino Uno следует использовать выводы 2 или 3 для прерываний. Первый вывод Data, выходящий из вывода клавиатуры, соединяем с выводом 8 на плате, третий вывод соединяем с GND, пятый - с выводом 2 на плате, четвёртый с 5V (питание). Второй и шестой выводы штекера не используются.


#include <PS2Keyboard.h>

const int DataPin = 8;
const int IRQpin =  2;

PS2Keyboard keyboard;

// и так далее

Запускаем скетч, открываем Serial Monitor и начинаем печатать. Кроме обычных символов в разных регистрах, печатаются также и служебные клавиши типа Стрелка Вверх, Page Up и т.д.

PS/2

International

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


// Das ist Fantastisch
keyboard.begin(DataPin, IRQpin, PS2Keymap_German);

Дополнительные материалы

PS2Keyboard Library, Connect a keyboard for user input

Реклама