Драйвер матричной клавиатуры 3х4 на ATtiny13 с UART выходом


Титл Эта статья демонстрация устройства со статьи 047-Драйвер матричной клавиатуры 3х4 на ATtiny13 с UART выходом.

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

Для демонстрации работы драйвера я выбрал/купил вот такую клавиатуру:
Заводской кейпад
Она компактна и не испортит внешнего вида любого устройства. Клавиши нажимаются с чувствительным щелчком и, похоже, контакты металлические. Короче, приятная во всех отношениях клавиатура!

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

Старая "резиновая" клавиатура
Эта клавиатура показательна в плане того, что она «резиновая», более того, она довольно старая, а значит, токопроводящие резинки клавиш изрядно изношены – посмотрим, как драйвер будет работать с этой клавиатурой.

Сборка устройства:
Схема драйвера клавиатуры
Печатную плату не изготавливал. За основу взял макетную плату с поста Простая отладочная плата для отладки устройств на ATTiny13 (на ней уже есть разъем для программирования). На плате дополнительно припаял разъем для клавиатуры и добавил необходимые компоненты схемы.
Плата в сборе с двух сторон:

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

После того как все спаял, залил прошивку из 047-Драйвер матричной клавиатуры 3х4 на ATtiny13 с UART выходом. программой UniProf 025-UniProf-универсальный программатор для AVR., при помощи COM шнурка Делаем COM программатор для AVR микроконтроллеров. – получил готовое устройство. Для контроля работоспособности драйвера будем использовать собранный нами ранее 041-UART to USB – простой преобразователь на ATtiny2313.  и программу терминала.

Вот как все выглядит в сборе:

Новая клавиатура с драйвером и преобразователем

Работа устройства:
Сначала подключаем новую клавиатуру и убеждаемся в надежности работы с ней драйвера. При нажатии клавиш терминал отображает символы нажатых клавиш, при нажатии на «*» включается Shift-режим, тон нажатия клавиш изменяется и в терминале уже отображаются символы латиницы. Светодиодик мигает, пьезоизлучатель пикает – все красиво.

Теперь подключаем старую «резиновую» клавиатуру -


Старая клавиатура с драйвером и преобразователем


и убеждаемся в том, что драйвер работает также надежно, как и с новой.

Замечания по работе:
1 Громкий звук пьезоизлучателя – поставте последовательно с ним резистор или параллельно с ним небольшой емкости конденсатор, звук станет приятней;
2 Быстрый автоповтор – специально таким оставил для более комфортного использования Shift-режима в качестве навигации по меню, управления курсором и т.д, (чтобы не возникало ощущения тормознутости при управлении).