Сайт использует сервис веб-аналитики Яндекс Метрика с помощью технологии «cookie». Пользуясь сайтом, вы даете согласие на использование данной технологии.
Теория про USB HID случилась неделю назад, а теперь — практика. Пишем. Запускаем. Работает. Чтобы превратить ATmega32u4 в честную HID-клавиатуру, нам понадобится всего лишь… Всего лишь час возни с чужим кодом (C, make, Doxygen, bash, python — всё, что под руку попадётся) и немного везения. Таймлайн: 0:00 - Введение. Что делаем и зачем 0:31 - Цель проекта: старая клавиатура и длинный текст 1:00 - Повторение: что узнали о USB HID в прошлый раз 1:55 - Начало работы: простейший пример с мигающим светодиодом 2:50 - План на сегодня: сделать устройство-клавиатуру 3:43 - Проверка USB-устройств в системе 4:40 - Обзор дескрипторов USB 5:54 - Цель: передача данных с клавиатуры 6:43 - Используем библиотеку LUFA 7:40 - LUFA: особенности, GitHub, документация 9:08 - Демокоды LUFA: копируем пример клавиатуры 11:01 - Настройка Makefile под наш микроконтроллер 12:19 - Компиляция и первые ошибки 13:11 - Поиск и исправление пути к заголовочным файлам 14:02 - Добавление цели flash для прошивки 15:10 - Проверка: устройство определяется как клавиатура 17:05 - Просмотр списка input-устройств в Linux 18:17 - Проверка устройства через evtest 19:40 - Разбор событий клавиатуры и типов событий 21:20 - Погружение в исходный код демо-примера 23:33 - Структура LUFA и особенности сборочной системы 25:55 - Как ориентироваться в Make-инфраструктуре LUFA 27:58 - Генерация документации Doxygen 30:00 - Просмотр сгенерированной HTML-документации 32:21 - Чтение документации и структуры проекта 34:12 - Переход к исходному коду устройства 36:05 - Поиск точки вставки кода: бесконечный цикл 37:05 - Репорты клавиатуры и структура данных 38:32 - Вставка собственного кода на отправку клавиши 42:04 - Первая попытка: почему ничего не происходит? 43:10 - Гипотеза: нет "отжатия" кнопки, только нажатие 44:12 - Добавление флага и логики "вкл/выкл" 47:23 - Проверка: события приходят, всё работает 49:02 - Почему в текст ничего не вводится? 50:13 - Финальный тест на основном компьютере 52:02 - Резюме достигнутого: микроконтроллер — клавиатура 53:00 - О необходимости трёх состояний кнопки 54:40 - Планы на будущее: собственный драйвер 56:05 - Ответ на вопрос про состояния кнопки 56:59 - Завершение. До следующей пятницы Конспект: