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

Apple: история логотипа

Как менялся логотип Apple на протяжении многих лет. Логотип Apple — это не просто символ,…

6 дней ago

Security Boot Fail при загрузке Acer — решение проблемы

Security Boot Fail при загрузке Acer — решение проблемы При загрузке ноутбука Acer с флешки,…

3 недели ago

Ноутбук не включается — варианты решения

Ноутбук не включается — варианты решения Если при попытке включить ноутбук вы обнаруживаете, что он…

3 недели ago

The AC power adapter wattage and type cannot be determined — причины и решение

The AC power adapter wattage and type cannot be determined — причины и решение При…

3 недели ago

Свистит или звенит блок питания компьютера — причины и решения

Свистит или звенит блок питания компьютера — причины и решения Некоторые владельцы ПК могут обратить…

3 недели ago

Мигает Caps Lock на ноутбуке HP — почему и что делать?

Мигает Caps Lock на ноутбуке HP — почему и что делать? При включении ноутбука HP…

3 недели ago