Дополнительная клавиатура с кнопкой 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...
Лучшие распечатанные модели
Медведи подставки
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Хевенс Дор из ДжоДжо
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Подставка под умную колонку
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.



Комментарии и вопросы
прожить бы ещё эти 20)
Где-то ещё не меняют масло зад...
Я рассказываю о том, что я дел...
Понемногу назревает вопрос о з...
Доброго времени суок, друзья!П...
Всем привет!Ко мне обратился п...
Доброго времени суток. С момен...