Оглавление:

Джойстик USB-клавиатура: 5 шагов
Джойстик USB-клавиатура: 5 шагов

Видео: Джойстик USB-клавиатура: 5 шагов

Видео: Джойстик USB-клавиатура: 5 шагов
Видео: USB клавиатура и мышка на обычной Arduino Nano! EasyHID ч.1 2024, Ноябрь
Anonim
USB-джойстик для клавиатуры
USB-джойстик для клавиатуры
USB-джойстик для клавиатуры
USB-джойстик для клавиатуры
USB-джойстик для клавиатуры
USB-джойстик для клавиатуры
USB-джойстик для клавиатуры
USB-джойстик для клавиатуры

Сделать пользовательские USB-контроллеры клавиатуры и мыши просто.

Я использую несколько сочетаний клавиш при оценке изображений в Adobe Lightroom и обнаружил, что могу работать еще быстрее, используя простой джойстик игрового контроллера. Я смоделировал его на макетной плате с двумя компонентами, которые у меня уже были в моей мастерской, и обнаружил, что он отлично работает, но ему нужен более красивый «шкаф», чтобы он мог жить на моем столе.

Поскольку он основан на Arduino, настроить функции джойстика и добавить дополнительные кнопки, циферблаты или другие элементы управления очень просто.

Этот проект состоит из трех разделов:

  • Аппаратное обеспечение
  • Программное обеспечение
  • Настольный футляр для хранения указанного оборудования

Запчасти

  • Arduino - 5v 16MHz Itsy Bitsy от Adafruit. Многие другие Arduinos будут работать нормально, но убедитесь, что их USB-порт может работать с библиотеками клавиатуры и мыши.
  • Джойстик - игровой контроллер в стиле 2-х осевой с переключателем (вот упаковка из десяти: WGCD 10pcs Joystick Breakout Module Game Controller для Arduino PS2).
  • Дерево или акрил для корпуса. Может быть, покрасить.
  • Провод и USB-кабель.

Шаг 1. Аппаратное обеспечение

Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение

Ардуино

Я хотел использовать небольшую плату Arduino, чтобы сделать эту сборку как можно более компактной. У меня есть несколько Pro Trinkets, но они не подходят для моделирования клавиатуры и мыши, потому что USB не полностью реализован на Trinkets. Для этого проекта я использовал Itsy Bitsy 5V 16MHz от Adafruit, который может использовать стандартные библиотеки HID в качестве клавиатуры и мыши через USB.

Джойстик

Это тип джойстика, который используется в игровых контроллерах. Они двухосные и имеют переключатель, который временно включается при нажатии ручки. Их легко найти в Интернете. Если вы хотите купить только одну, они могут стоить от 4 до 10 долларов, но их можно купить оптом 10 упаковками на Amazon примерно за 11 долларов.

Обратите внимание, похожие джойстики от Adafruit и Sparkfun имеют другую распиновку, чем все остальные, которые вы можете найти в Интернете. Обратите на это внимание при подключении.

На Arduino этот проект использует A0 для переключателя, A1 для оси X и A2 для оси Y. Остается 19 других входных контактов, с которыми вы можете проявить творческий подход.

На джойстик 5В подается питание 5В USB (обозначено как таковое на Itsy Bitsy). И у него есть земля - подключите его к земле Arduino.

Шаг 2: Программное обеспечение

Программное обеспечение
Программное обеспечение

Код Arduino очень прост. Я запрограммировал его специально для нескольких сочетаний клавиш Lightroom, которые я использую для оценки изображений. Нажатие переключателя переключает между видом лупы («e») и сетки («g»). Перемещение джойстика влево и вправо приводит к переходу к предыдущему (стрелка влево) или следующему (стрелка вправо) изображению. При нажатии ручки вверх к рейтингу добавляется звездочка («[»), а при нажатии на нее флажок снимается («u»). (Поверьте мне, это имеет смысл в том, как я оцениваю свои изображения.) Вы можете изменить код, чтобы делать все, что хотите.

Основной цикл сначала считывает состояние переключателя. Если он изменился с ВЫСОКОГО на НИЗКИЙ, он переключается и набирает «e» или «g» для переключения между режимами просмотра «Лупа» и «Сетка».

Затем программа отображает аналоговые значения джойстика (от 0 до 1024) в другой диапазон (от -5 до +5). Код распознает +/- значения 5 как действия для отправки символов, поэтому вам нужно переместить джойстик ближе к концу его диапазона, чтобы отправить сочетание клавиш. Затем джойстик должен пройти через 0, прежде чем он отправит еще одно нажатие клавиши. Код для этого довольно короткий и довольно элегантный. В итоге вы должны быть намеренными в своих движениях, и он не будет случайно отправлять поток того же нажатия клавиши (что и сделала моя первая версия кода!).

Вы можете использовать библиотеку мыши и аналоговые значения с джойстика для управления курсором, колесами прокрутки, регуляторами громкости или любой другой аналоговой (ish) функцией.

Шаг 3: Кейс, часть 1 - Дизайн и раскрой

Кейс, часть 1 - Дизайн и раскрой
Кейс, часть 1 - Дизайн и раскрой
Кейс, часть 1 - Дизайн и раскрой
Кейс, часть 1 - Дизайн и раскрой
Кейс, часть 1 - Дизайн и раскрой
Кейс, часть 1 - Дизайн и раскрой

Иметь макет на моем столе просто не круто, да и эргономика тоже не идеальна. Пришло время разработать футляр.

Это был бы идеальный проект для 3D-печати корпуса. У меня нет 3D-принтера, но есть лазерный резак, так что теперь для меня все выглядит как проект лазерной резки. На создание этого дизайна в Adobe Illustrator ушел целый вечер, включая игру с множеством различных концепций, таких как простая палка, более органичная форма с использованием петель, вырезанных лазером, и квадратные формы.

Я начал с того, что держал макетную плату под разной высотой и под разными углами, и решил, что угол в 30 ° на высоте от 80 до 100 мм от стола будет удобен. Окончательный дизайн немного похож на небольшой полетный джойстик, и его удобно держать в руке.

Исходный файл Adobe Illustrator вместе с версиями DXF и PDF включены ниже. (DXF и PDF не тестировались на лазерном резаке.) Файл также включает виды сверху и сбоку джойстика, которые вы можете использовать при создании собственного проекта.

В этой конструкции использованы материалы двух толщин. Все, кроме верха, изготовлено из «служебной» фанеры 0,187 дюйма из местного магазина больших коробок. Лист 2 x 4 дюйма стоит всего около 8 долларов. в совершенстве. Верх сделан из фанеры толщиной 3 мм, чтобы обеспечить дополнительное пространство для ручки джойстика. Этот проект тоже подойдет в прозрачном акриле.

Пара замечаний о преимуществах изготовления прототипов: сначала я сделал пробную вырезку и сборку из картона, что помогло найти одну дизайнерскую ошибку. Когда я вырезал деревянную версию в первый раз, я также обнаружил, что верхняя пластина была очень хрупкой из-за отверстия, поэтому я переработал выступы, чтобы добавить им дополнительную прочность. Я также обнаружил, что джойстик ударяется о боковую часть корпуса, поэтому я сделал два изменения: я переместил крепление, чтобы лучше центрировать его, и я использовал дерево толщиной 3 мм вместо 5 мм сверху. В загруженном файле дизайна есть все эти изменения - только не забудьте вырезать верхнюю часть из более тонкой древесины.

Шаг 4: Кейс, часть 2 - Покраска и сборка

Дело, часть 2 - Покраска и сборка
Дело, часть 2 - Покраска и сборка
Дело, часть 2 - Покраска и сборка
Дело, часть 2 - Покраска и сборка
Дело, часть 2 - Покраска и сборка
Дело, часть 2 - Покраска и сборка

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

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

Если вам нравится лазерная резка или если вы сделали это из акрила, готово! Я хотел, чтобы изделие было красивее, чтобы оно подходило к моему рабочему столу. Я нанес ему базовый слой черной краски, а затем несколько слоев Rust-oleum Forged Hammered Burnished Amber. Я использовал этот продукт на отделке моего стола, так что он связывает части вместе. Мне также нравится металлический вид этой краски. Я замаскировал внутреннюю часть суставов пальцев там, где подходит верх, чтобы краска не испортила посадку.

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

Джойстик закреплен на центральной стойке. Винты, которые у меня были, были немного длинными, поэтому я укоротил их, ввинчивая в неиспользованную древесину, и отшлифовал кончики настольной шлифовальной машинкой. У Arduino нет монтажных отверстий, поэтому его приклеили на место горячим клеем.

Когда все было смонтировано, я защелкнул верхнюю часть без приклеивания. Он прилегает достаточно плотно, чтобы удерживать себя, и не имеет конструктивного значения.

Шаг 5: Завершение

Завершение
Завершение
Завершение
Завершение
Завершение
Завершение

Готовый проект отлично смотрится на моем столе.

Первое, для чего я его использовал, - это редактировать картинки для этого Instuctable.

Выполнено!

Рекомендуемые: