Дополнительная клавиатура с кнопкой Del для MacBook
Много моделирую и пишу программы... на MacBook. Самая большая беда этих аппаратов отсутствие кнопки DEL, попробуйте в Компас 3D поработать без Del, приходится вызывать контекстное меню, или выбирать "вырезать", теряется масса времени. В общем психанул сделал доп клавиатуру с самыми важными кнопками для меня, а именно DEL и "." (точка).
Мозгом данной конструкции стал контроллер digispark attiny85, он умеет прикидываться HID устройством. Из минусов если посмотреть на его распиновку, свободны только два цифровых входа, P0 и P2. P1 какой-то мутный, на нем светодиод висит и реакция странная, остальные пины обслуживают USB.
Электрическая схема получилась достаточно простой:
Кнопки выбрал тактовые вот этой модели:
Главный их плюс - они позволяют зафиксировать саму кнопку и не проворачиваться, а еще эти кнопки нажимаются под любым углом, подозреваю внутри механизм как у промышленного концевика, ну и размеры, 12 на 12 мм, близко к реальным кнопкам.
Смоделировал кнопки и несколько вариантов корпуса:
Как видите кнопки смоделированы на вырост, кнопки сделал на фотополимере, а вот и сам корпус :
Корпус простой, напечатал на бамбулабе обычным PLA.
Сама программа достаточно простая, написана под Arduino IDE, текст прикладываю:
#include "DigiKeyboard.h"
// Пины для кнопок
const int buttonPin0 = 0; // Точка
// const int buttonPin1 = 1; // DEL
const int buttonPin2 = 2; // DEL
// Переменные для отслеживания состояния кнопок
int buttonState0 = 0;
int buttonState2 = 0;
void setup() {
// Инициализация пинов как входов с подтяжкой
pinMode(buttonPin0, INPUT_PULLUP);
pinMode(buttonPin2, INPUT_PULLUP);
// Инициализация библиотеки DigiKeyboard
DigiKeyboard.update();
DigiKeyboard.delay(1000); // Задержка 1 секунда для инициализации
}
void loop() {
// Считываем состояние всех кнопок
buttonState0 = digitalRead(buttonPin0);
buttonState2 = digitalRead(buttonPin2);
// Обработка нажатия кнопки на пине 2 (точка)
if (buttonState2 == HIGH) {
DigiKeyboard.sendKeyStroke(0x37); // Точка независимо от раскладки
DigiKeyboard.delay(200); // Антидребезг
}
// Обработка нажатия кнопки на пине 0 (DEL)
if (buttonState0 == HIGH) {
DigiKeyboard.sendKeyStroke(0, 0);
// Нажимаем 0x4C
DigiKeyboard.sendKeyStroke(0x4C); // Отправляем DEL
DigiKeyboard.delay(200); // Антидребезг
}
// Небольшая задержка для снижения нагрузки на процессор
DigiKeyboard.delay(10);
}
В целом ничего сложного, сейчас балдею от наличия кнопки Del. Кнопка с точкой тоже пригодилась, удобно вбивать допуски и припуски и т.п. там десятки и сотки часто надо вбивать.
Итог часа три работы и у меня первый в мире Macbook c кнопкой Del...
Лучшие распечатанные модели
Сортировщик дроби
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Чудесная шкатулка-органайзер Леди Баг и Супер Кот.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Радиоуправляемая модель трактора ДТ-75
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.



Комментарии и вопросы
Как писал В.В.Маяковский: "Тво...
"Я полезных перспектив Никогда...
А PID настроить теперь не модн...
Проблема возникла из ниоткуда....
Раньше была стабильная связь п...
Здравствуйте, такой вопрос печ...
понятно что обсуждалось миллио...