Простая механическая клавиатура/макропад............
Примечание. Этот макроплан изначально был разработан для личного использования, поэтому некоторые его особенности были адаптированы под мою конкретную настройку:
Все детали, напечатанные на 3D-принтере, были смоделированы для сопла диаметром 0,8 мм и высотой слоя 0,4 мм. Если вы используете другие настройки, зазоры могут различаться.
Используемая плата — Adafruit ItsyBitsy M0 Express, просто потому, что она у меня была.
Вам решать, как вы привязываете события нажатия/отпускания клавиш на вашем компьютере к реальным макросам (если вы этого хотите). Предоставленная прошивка может только имитировать нажатие и отпускание стандартных клавиш.
Необходимые детали и инструменты
Электроника
1 x Adafruit ItsyBitsy M0 Express
4 линейных механических переключателя
4 колпачка для клавиш — (я использовал эту модель, но подойдут любые колпачки, совместимые с MX)
Медный провод 30 AWG
Инструменты и материалы
Паяльник, припой, базовые навыки пайки.
Суперклей или горячий клей (рекомендуется горячий клей).
Микро-USB-кабель
Arduino IDE установлен и настроен.
Инструкция по сборке
Напечатайте top_plate, Bottom_plate и Switch_plate. Распечатайте колпачки клавиш, если вы уже не используете колпачки клавиш.
Вставьте переключатели в пластину переключателя. Сторона с меньшими отверстиями должна быть вверху. Переключатели должны защелкнуться на месте.
Для каждого переключателя:
Отрежьте небол��шой кусок проволоки.
Припаяйте один конец провода к выключателю. Не имеет значения, на какой ножке, но выбирайте одну и ту же для каждого переключателя. Это входные линии переключателя.
Припаяйте другой конец провода к ItsyBitsy. Первый переключатель подключается к контакту 13. Второй к контакту 12. Третий к контакту 11 и четвертый к контакту 10. Если хотите, вы можете изменить порядок, просто запишите, к какому переключателю подключен этот контакт.
Еще раз для каждого выключателя отрежьте небольшой кусочек провода и соедините оставшуюся ножку с такой же ножкой на соседнем выключателе. Это заземляющие соединения. Для последнего переключателя возьмите дополнительный отрезок провода и припаяйте один конец к переключателю, а другой конец к контакту G (круглый) на ItsyBitsy.
Ваши соединения должны выглядеть примерно так, как показано на фотографии.
Теперь вам нужно прикрепить пластину переключателя к верхней пластине. У вас есть два варианта:
Нанесите суперклей на нижнюю часть губы на верхней пластине. Затем вставьте пластину переключателя и удерживайте ее на месте, пока обе части не будут прочно соединены.
ИЛИ вы можете вставить пластину переключателя в верхнюю пластину, а затем нанести несколько капель горячего клея на все четыре угла внутренней стенки, чтобы зафиксировать пластину переключателя на месте (рекомендуется).
Вставьте ItsyBitsy в крепление. Он должен встать на место.
Прикрепите узел верхней пластины к нижней пластине. Поможет, если вы сначала вставите выступ на короткой стороне нижней пластины в верхнюю пластину под углом, затем «закроете шарнир», и две половинки должны встать на место.
Вот и все, что касается сборки. Теперь подключите ItsyBitsy к компьютеру с помощью кабеля micro USB. Загрузите следующую прошивку. Если вы получите всплывающее окно об отсутствующих библиотеках, установите их. Вы можете обратиться к справочнику по библиотеке клавиатуры Arduino для получения более подробной информации о том, как она работает и какие коды клавиш вы можете использовать.
/*
Прошивка для моего напечатанного на 3D-принтере макропада/клавиатуры с 4 переключателями.
*/
#include «Keyboard.h»
#include
#include
// Раскомментируйте следующее, чтобы регистрировать нажатия клавиш на последовательном порту.
// #define ОТЛАДКА
// Для светодиода RGB на ITSY BITSY M0
#define NUMPIXELS 1
#define ПИН-код данных 41
#define ЧАСЫ 40
Полоса Adafruit_DotStar (NUMPIXELS, DATAPIN, CLOCKPIN, DOTSTAR_BRG);
// Служебная функция для обновления цвета светодиода
void updatePixel(uint8_t красный, uint8_t зеленый, uint8_t синий) {
Strip.setPixelColor(0, зелены��, красный, синий);
полоса.шоу();
}
#define NUM_SWITCHES 4
// Номера контактов GPIO
const uint8_t switchPin[NUM_SWITCHES] = { 13, 12, 11, 10 };
// Последнее мгновенное (необработанное) состояние входа
static uint8_t LastState [NUM_SWITCHES] = { ВЫСОКИЙ, ВЫСОКИЙ, ВЫСОКИЙ, ВЫСОКИЙ };
// По��леднее устраненное (фильтрованное) состояние ввода
static uint8_t LastDebouncedState [NUM_SWITCHES] = { ВЫСОКИЙ, ВЫСОКИЙ, ВЫСОКИЙ, ВЫСОКИЙ };
// Метка времени, когда произошел последний переход необработанного ввода





























