Categories: Без рубрики

blackberry-q10-keyboard/

Однажды, во время утреннего полистывания Twitter, мое внимание привлек проект господина @arturo182 (a.k.a Artur Pacholec). Проект представляет собой DIY смартфон на базе экранчика ILI9341 и qwerty-клавиатуры с подсветкой от BlackBerry Q10. Особенно меня впечатлила идея использования клавиатуры от смартфона. Было решено незамедлительно обзавестись такой клавиатурой и научиться с ней работать.

Вот как она выглядит:

Клавиатуру можно приобрести на eBay менее чем за 3$. Подключение к ней осуществляется через маленький коннектор с замысловатым названием BM14B(0.8)-24DS-0.4V(53). Быстрее и дешевле всего оказалось купить такие коннекторы в Чип-и-Дипе . Нам также понадобится переходник с этого разъема на обычные пины с шагом 2.54 мм. К счастью, @arturo182 заботливо выложил такой переходник на GitHub’е . Платы были заказаны на OSH Park.

Припаять коннектор не особо сложно, главное иметь под рукой хороший флюс и лупу с сильным увеличением. Лично я сначала залудил пады на плате, припаял коннектор за два пина, расположенных по диагонали, а затем, придавливая его к плате пинцетом, припаял все остальные пины. Если визуально плата в порядке, отмываем в УЗ-ванне (при таком расстоянии между пинами зубная щетка плохо справляется) и перепроверяем мультиметром.

Используя получившийся переходник, я подключил клавиатуру к отладочной плате LimeSTM32 :

Для питания клавиатуре нужно 3.3 В. Подсветка не такая яркая, чтобы ее было хорошо видно на фото. Однако в темноте свою функцию она выполняет прекрасно. Кнопки соединены по матричной схеме , 7 строк на 5 столбцов. Подавая высокое напряжение на один столбец и считывая напряжение со строк, мы можем определить, какая кнопка сейчас нажата.

Пример кода, использующего таймер и прерывания :

void keyboard_prepare ( ) {
HAL_GPIO_WritePin ( Col1_GPIO_Port , Col1_Pin , GPIO_PIN_RESET ) ;
HAL_GPIO_WritePin ( Col2_GPIO_Port , Col2_Pin , GPIO_PIN_RESET ) ;
HAL_GPIO_WritePin ( Col3_GPIO_Port , Col3_Pin , GPIO_PIN_RESET ) ;
HAL_GPIO_WritePin ( Col4_GPIO_Port , Col4_Pin , GPIO_PIN_RESET ) ;
HAL_GPIO_WritePin ( Col5_GPIO_Port , Col5_Pin , GPIO_PIN_RESET ) ;
}

char * buttons [ ] [ 5 ] = {
/* ROW 1 */ { «q» , «e» , «r» , «u» , «o» } ,
/* ROW 2 */ { «w» , «s» , «g» , «h» , «l» } ,
/* ROW 3 */ { «SYM» , «d» , «t» , «y» , «i» } ,
/* ROW 4 */ { «a» , «p» , «RSHIFT» , «ENTER» , «DEL» } ,
/* ROW 5 */ { «ALT» , «x» , «v» , «b» , «$» } ,
/* ROW 6 */ { » » , «z» , «c» , «n» , «m» } ,
/* ROW 7 */ { «MIC» , «LSHIFT» , «f» , «j» , «k» } ,
} ;

char * buttons_alt [ ] [ 5 ] = {
/* ROW 1 */ { «#» , «2» , «3» , «_» , «+» } ,
/* ROW 2 */ { «1» , «4» , «/» , «:» , » » «» }
/* ROW 3 */ { NULL «»5″» «»(«»

admin

Share
Published by
admin
Tags: windows

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

2 месяца ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

2 месяца ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

2 месяца ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

2 месяца ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

2 месяца ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

2 месяца ago