USB-панель управления с бесконечными поворотными ручками

usb input hid

Я понимаю, что некоторые arduino могут представить себя как устройство USB HID для ПК.

Я хотел бы использовать один из них для создания пользовательского контроллера ввода, который позволял бы мне считывать, может быть, 8 или около того ручек, которые могут бесконечно поворачивать влево и вправо.

Я новичок в Arduino, но уже занимался кросс-компиляцией двоичных файлов avr.

Какая Arduino подойдет для этого? И любые дополнительные детали, которые могли бы помочь?

Конечный продукт будет выглядеть как MIDI-панель микширования, но она не должна говорить по MIDI, только через USB HID (для ПК с Linux).

Примечание: есть дорогое устройство, которого нет в наличии, похожее на то, что я имею в виду, под названием MIDI Fighter Twister, изображенное ниже, чтобы получить представление.

Twister

, 👍1

Обсуждение

Любой с родным интерфейсом USB. Ищите на базе ATMega32U4. Все остальное связано с интерфейсом, и это зависит от того, сколько у вас кодировщиков и как они взаимодействуют., @Majenko


1 ответ


Лучший ответ:

1

Варианты для Arduino, которые у вас есть:

  • Купите Arduino с поддержкой HID-драйверов (например, платы на базе 32u4, Due/Zero/Arduino Leonardo/Micro или Pro Micro/M0)
  • Вы используете эту библиотеку, она поддерживает UNO/MEGA/Leonardo/(Pro)Micro/ любой 8u2/16u2/at90usb8/162 Платы, совместимые с /32u2/32u4, и некоторые другие

Тогда вам нужно "просто" закодировать связь между вашей программой и HID-драйвером -> довольно стандартный последовательный/usb-интерфейс.
Части (ручки), которые вы ищете, могут быть вращающимися энкодерами, которые не имеют фиксированной нулевой точки, бесконечного вращения и требуют 2 входных контакта на энкодер (кроме GND или дополнительной функции нажатия). Сигналы, создаваемые поворотным энкодером (и то, что может обрабатываться библиотеками), основаны на 2-битном коде Грея, доступном на 2 линии передачи цифровых данных. Поэтому, выбирая Arduino, убедитесь, что у вас достаточно портов ввода/вывода для количества энкодеров и возможных дополнительных компонентов (индикаторы состояния или аналогичные, ЖК-дисплей I2C)

,