KREMEN Реклама
KREMEN Реклама

Дополнительная клавиатура с кнопкой Del для MacBook

Heinz.Pfufelschmerz
Идет загрузка
Загрузка
17.05.2026
78
0
Мы печатаем

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

0

Много моделирую и пишу программы...  на MacBook. Самая большая беда этих аппаратов отсутствие кнопки DEL, попробуйте в Компас 3D поработать без Del, приходится вызывать контекстное меню, или выбирать "вырезать", теряется масса времени. В общем психанул сделал доп клавиатуру с самыми важными кнопками для меня, а именно DEL и "." (точка).

Дополнительная клавиатура с кнопкой Del для MacBookМозгом данной конструкции стал контроллер digispark attiny85, он умеет прикидываться HID устройством. Из минусов если посмотреть на его распиновку, свободны только два цифровых входа, P0 и P2. P1 какой-то мутный, на нем светодиод висит и реакция странная, остальные пины обслуживают USB.

Дополнительная клавиатура с кнопкой Del для MacBook

Электрическая схема получилась достаточно простой:

Дополнительная клавиатура с кнопкой Del для MacBookКнопки выбрал тактовые вот этой модели:

Дополнительная клавиатура с кнопкой Del для MacBookГлавный их плюс - они позволяют зафиксировать саму кнопку и не проворачиваться, а еще эти кнопки нажимаются под любым углом, подозреваю внутри механизм как у промышленного концевика, ну и размеры, 12 на 12 мм, близко к реальным кнопкам.

Смоделировал кнопки и несколько вариантов корпуса:Дополнительная клавиатура с кнопкой Del для MacBook

Как видите кнопки смоделированы на вырост, кнопки сделал на фотополимере, а вот и сам корпус :

Дополнительная клавиатура с кнопкой Del для MacBook

Корпус простой, напечатал на бамбулабе обычным 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...

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

0
Комментарии к статье
Lider 3D Реклама
Lider 3D Реклама