Кнопка раздолбая и педалирование vim

Кнопка раздолбая и педалирование vim

О кнопке раздолбая я в первый раз услышал году в 2005-м. Сущность устройства была в том, что нажатие запрятанной под ковром кнопки приводило к сворачиванию всех окон на мониторе, чтобы неожиданно нагрянувший шеф не заметил, чем вы реально занимаетесь на работе. Тогда это позиционировалось как актуальный гаджет для прогрессивной молодёжи.
Смотрите кроме этого: «Кнопка смерти» для устройств на Android 5.0 Lollipop перевоплотит девайс в «кирпич» при кражи

Недавно в Калифорнии, США, приняли закон, в соответствии с которому в кажом мобильном устройстве должна быть «кнопка смерти», которая разрешала бы уничтожать эти на телефоне либо планшете при его кражи. На протяжении анонса Android 5.0 Lollipop разработчики сказали, что такая «кнопка» будет во всех устройствах на базе новой мобильной ОС. Сообщается, что в ОС будет две новых настройки.

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

Так бы оно и лежало в глубинах памяти, если бы не статья «Педалируем Vim». А тут именно на столе валялись пара аппаратных ключей на AT90USB162, что мы производим для защиты собственного софта. И решил я сотворить собственную версию универсальной педали.

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

Исключение – кнопки Reset и HWB, что нужны для запуска штатного bootloader для firmware через USB. Да-да, программатор не нужен, нужна лишь программа Flip от Atmel. Все чипы с завода прошиты штатным bootloader.Reset никак не применять, а вот HWB как и всегда – легко порт PD7 и его возможно применять по желанию. Справедливости для увижу, что ограничений на число педалей нет.

При переделки платы либо приобретения готовой платы в китае, число педалей возможно расширить до двух десятков (у «китайца» выведен 21 пад). В тексте выше, кстати, ответ на 3 вопроса будущих комментариев:1. Из-за чего на AVR?2. Из-за чего не ардуина?3. Из-за чего лишь одна кнопка? Итак, за базу был забран атмельский пример HID клавиатуры на МК серии AT90USB***.

Он детально обрисован в на данный момент «AVR271: USB Keyboard Demonstration» (тут перевод) и останавливаться на нём я не буду. Пример данный возможно скомпилирован как под GCC, так и под IAR, я применял IAR, версии 6.3.3.1990.Для обработки нажатия педали прерывания не употребляются – практика продемонстрировала, что скорости несложного поллинга даже больше чем нужно кроме того с учётом антидребезговых задержек. Вся нужная работа – поллинг и отправка запроса – происходят в файле keyboard_task.с.

Функция kbd_test_hit(); контролирует нажатие единственной кнопки (педали) HWB (PD7) на предмет нажатия либо отпускания, keyboard_task(void) отправляет организованный запрос в ПК. А что именно отправлять, keyboard_task выясняет из eeprom.Мы заботимся о отечественных клиентах, исходя из этого сделали так, чтобы изменение/добавление комбинаций было максимально эргономичным и не вынуждало юзера устанавливать IAR и пересобирать код. Юзеру всего-то нужно вручную исправить hex-файл eeprom!

8)В приложенном к статье архиве три файла eeprom с комбинациями Win+D, Alt+Tab и i/Esc для Vim (за последний не уверен, не контролировал в железе). Но в случае если этого мало, то открываем файл в блокноте. Видим следующее:Выделенные 13 байт, это и имеется отечественная посылка.

Структура их такова:Первый байт определяет, будем мы реагировать лишь на нажатие (0x00) либо ещё и на отпускание (0x01) педали. Потом идут 3 пары байт посылки на пары и 3 нажатие байт посылки на отпускание. Пара байт, это байт и байт модификаторов, фактически, кода кнопки. В байте модификаторов любой бит соответствует нажатию одной кнопки модификатора (Ctrl, Alt, Win etc.).

В случае если мы желаем передать сходу пара модификаторов (к примеру, Ctrl+Shift) – устанавливаем пара бит в байте, соответствующих этим модификаторам. Все коды клавиш и модификаторов наличествуют в файле usb_commun_hid.h. либо их возможно отыскать в инетах. Программа МК проигрывает запись из eeprom аки магнитофон в порт USB, исходя из этого что в том направлении засунуто, то и будет послано ОС без коррекции. Не необходимые байты заменяем нулями – код 0x00 свидетельствует «no_key» и ОС его не принимает.

Позднее я поразмыслил, что первый байт, определяющий реакцию на нажатие, в неспециализированном-то, и не нужен, достаточно забить не необходимые пары байт нулями, но поменять что-то было уже лень. Сделаю при условии глобального успеха конструкции. Итак, вы внесли нужные коррективы в файл. Сейчас нужно посчитать контрольную сумму строчка. Для этого копируем строчок от двоеточия до последнего байта (не включая их), как продемонстрировано на картине снизу, и вычисляем КС, к примеру, тут либо руками.

Полученный итог заносим в последний байт строчка файла eeprom. Сохраняемся. Шьём.

Руководств по firmware флипом в сети море, всё стандартно. Тонкость лишь одна – чтобы прошить eeprom нужно сперва прошить flash, в противном случае никак. В приложенном архиве имеется две firmware flash – для плат с кварцами 8 и 16 МГц. Я советую применять 16 МГц, в особенности, в случае если планируете делать большое количество кнопок.

Обратите внимание, что китайцы на собственных платах перепрошивают чипы своим бутлодырем Teensy Loader (на таких платах имеется лишь кнопка Reset, HWB они не применяют) и Flip с ним не работает, у них собственный софт для firmware, но процедура, в общем, схожа. В архиве под статьёй находятся: исходник проекта, готовые *.hex *.eep файлы firmware, рисунок платы в формате SprintLayout5 и гербер файлы в формате кампании oshpark, конечно схему в высоком разрешении и различные фоточки. Ну и конечно же, демонстрейшон.

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

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

Случайная статья:

Особенности педалирования. Ян Бравый и Владимир Корнеев в Лектории I LOVE RUNNING


Похожие статьи:

Комментирование и размещение ссылок запрещено.

Обсуждение закрыто.