На высоком уровне этот проект реализует библиотека V-USB(ранее AVR-USB) от Objective Development, которую я часто использую для эмуляции USB-клавиатуры.

Я использовал стандартный дескриптор отчета для USB-клавиатуры, у которого есть 8-байтный буфер отчетов. Это может быть немного излишним, поскольку в проекте используется только 4 байта(1 для каждой кнопки), но это позволяет легко расширить функциональность в будущем.

Каждая кнопка имитирует только 1 ключ, с его индивидуальным нажатием и клавишным событием, которые точно такие же, как у обычной клавиатуры.

В стандартной прошивке эмулируются нажатия для клавиш с 1 по 4. Хотя это можно легко изменить.

Схема устройства

HID клавиатура на 4 клавиши(ATtiny85) - схема

Печатная плата

Программирование микроконтроллера

Если у вас нет программатора, который поддерживает высоковольтное последовательное программирование(HVSP), вы не сможете повторно перепрограммировать ATTiny85 после включения fuse бита RSTDISBL. (Программатор Atmel STK500 поддерживает HVSP!)

Если у вас есть программатор, который поддерживает только ISP, вы все равно сможете успешно прошить МК, прошивка должна быть залита перед установкой fuse бита RSTDISBL.

Если вы хотите поэкспериментировать/протестировать этот проект, не имея программатора поддерживающего HVSP, я предлагаю протестировать его без включения fuse бита RSTDISBL. Это приведет к тому, что кнопка 3 не будет работать (поскольку она подключена к выводу 1, который еще работает как линия сброса), но все остальные кнопки будут работать. Только когда вы уверены, что довольны прошивкой, вы можете установить fuse бит RSTDISBL.

Рекомендуемые настройки битов конфигурации:

EXTENDED: 0xFF
HIGH: 0x5D (используйте 0xDD для тестирования без установленного fuse бита RSTDISBL, как описано выше)
LOW: 0xC1


Архив для статьи "HID клавиатура на 4 клавиши(ATtiny85)"
Описание:

Исходный код AVRStudio 4, файл прошивки микроконтроллера, макет печатной платы Eagle

Размер файла: 623.54 KB Количество загрузок: 723 Скачать

 

Комментарии  

0 #1 Djzem 18.01.2018 01:46
Для этого устройства нужен спец драйвер, или оно принимается как клавиатура??
Сообщить модератору
+1 #2 AntonChip 18.01.2018 17:46
Цитирую Djzem:
Для этого устройства нужен спец драйвер, или оно принимается как клавиатура??

Драйвер устройства устанавливается автоматически, определяется как HID - клавиатура
Сообщить модератору
0 #3 Вадег 14.03.2023 15:44
В схеме ошибка! D+ идет на вывод 7, D- на вывод 5, R3 соотв. подтягивает вывод 5. Коды в программе указаны в десятичном формате, имейте это в виду! Для Tiny45 код занимает чуть больше половины. 4-ю кнопку вырезал, которая задействует ногу RESET. В общем штука отличная, если нужен небольшой проводной пультик.
Сообщить модератору
0 #4 AntonChip 14.03.2023 21:00
Цитирую Вадег:
В схеме ошибка! D+ идет на вывод 7, D- на вывод 5, R3 соотв. подтягивает вывод 5.

Здравствуйте. Схему исправил. Спасибо!
Сообщить модератору