Макропад
Додаткова клавіатура для ПК: три механічні клавіші й екран, що показує навантаження й температуру процесора та відеокарти і зайняту пам’ять у гігабайтах. Працює з Windows 11 і macOS.
Arduino Nano · 3 × Cherry MX · OLED 128×64 · 4 друковані деталі
До складання · Ігри · Схема у Wokwi · Файли
Перед складанням
- Модель Nano має роз’єм Mini-USB; положення USB-C на реальній платі треба звірити з вікном.
- Приміряй кришку без зусилля. Силу клацання задає висота горбиків на рамці.
- Програма для ПК перевірена на macOS зі справжньою платою; macropad.exe перевірено лише на сервері GitHub з Windows.
Як це працює
Arduino Nano не вміє бути USB-клавіатурою, тому натиск клавіші вона передає по USB рядком K1, K2 чи K3. Невелика програма на ПК слухає Nano і виконує дію з файлу налаштувань: комбінацію клавіш, запуск програми, відкриття сайту чи друк тексту. Кожні 2 секунди вона шле на екран показники комп’ютера. Без запущеної програми клавіші нічого не роблять, а на екрані no PC.
Що потрібно



Кріплення й витратні матеріали
| Що | Кількість | Навіщо |
|---|---|---|
| Гвинт M2 × 6 + гайка M2 | 4 | OLED у кришку; M2 × 5 теж тримає |
| Дроти з Dupont «мама» на одному кінці | 8 | 4 від свічів (3 сигнальні + спільний GND), 4 від OLED |
| Суперклей або B-7000 | трохи | рамка екрана |
| Кабель USB-C з даними | 1 | до ПК |
Друковані деталі
| Позначення | Деталь | Файл | Орієнтація на столі | Габарит |
|---|---|---|---|---|
| 1a | Основа | 1a_base_v8.stl | дном на стіл, як є | 62 × 63 × 39 мм |
| 1b | Похила кришка з рамкою | 1b_lid_v6.stl | верхом на стіл, як є; підтримка лише в кишені екрана | 62 × 52 × 12 мм |
| 1c | Кейкап | 1c_keycap_x3.stl | як є, 3 штуки | 18 × 18 мм |
| 1d | Рамка екрана | 1d_frame_v1.stl | пласко, як є; гарно іншим кольором | 31,7 × 33,2 × 1,2 мм |
Усе без підтримок, PLA, шар 0,2 мм. Кейкап той самий, що в клікері: посадка на свічі перевірена друком. Під кришкою по периметру рамка, що заходить усередину стінок із вільним зазором. Тримають її 4 горбики, які клацають у неглибокі пази на стінках; пружинять тонкі стінки корпусу. Ззовні нічого не видно.



Складання
01 / Друк
Надрукувати 4 файли, орієнтацію вже записано в STL. Профіль PLA, шар 0,2 мм. Кришка лежить верхом на столі: увімкнути підтримку «лише від столу», вона з’явиться тільки в кишені екрана. Решта без підтримок.
Перевірка: Підтримка з кишені екрана знята, дно кишені рівне; горбики на рамці кришки цілі.
02 / Свічі
До кожного свіча припаяти сигнальний дріт ~12 см з Dupont «мама» на кінці. Другі ніжки трьох свічів з’єднати одним дротом GND, теж із Dupont на кінці.
Дроти просунути зверху в квадратний отвір і тунелем у задню частину корпусу. Спільний GND іде через проходи між гніздами. Потім впресувати свіч.
Перевірка: Свіч сидить щільно, дроти не затиснуті під ним: під ніжками 2,45 мм на пайку.
03 / Nano
Опустити плату згори деталями назад, штирями вперед: правий кінець у напрямну, лівий у низький паз, USB-C навпроти вікна в лівій стінці.
Свічі на нижній ряд штирів: K1 (ліва) на D4, K2 на D3, K3 (права) на D2, спільний дріт на GND.
Перевірка: USB-C видно у вікні, плата стоїть рівно, гребінка ICSP не торкається задньої стінки.
04 / Екран
До гребінки OLED надягнути 4 дроти з Dupont. Плату вставити згори в кишеню кришки гребінкою до переднього краю, дроти просунути в заокруглений проріз.
4 гайки M2 вкласти в шестигранні кишені знизу кришки, закрутити 4 гвинти M2 × 6 зверху.
Перевірка: Скло на 0,4 мм нижче поверхні кришки, гвинти не виступають.
05 / Підключення екрана
Дроти OLED на верхній ряд штирів Nano: SDA на A4, SCL на A5, VCC на 5V, GND на GND.
Перевірка: Зверху над корпусами Dupont лишається місце під кришку.
06 / Кришка
Поставити кришку згори так, щоб рамка знизу зайшла всередину стінок, і натиснути до клацання. Знімати: підчепити край пальцями у вирізах з боків і потягти вгору.
Перевірка: Кришка лежить на стінках урівень, не хитається.
07 / Рамка й кейкапи
Приклеїти рамку навколо екрана, вікном над світною частиною. Натиснути кейкапи на штоки свічів.
Перевірка: Рамка закриває гвинти й край плати OLED.

Схема
Інтерактивна схема з прошивкою: відкрити у Wokwi. Там можна натискати кнопки й надіслати на екран рядок з показниками.

| Що | Пін Nano | Колір дроту на схемі |
|---|---|---|
| K1, ліва клавіша | D4 | зелений |
| K2 | D3 | помаранчевий |
| K3, права клавіша | D2 | рожевий |
| Другі контакти трьох клавіш | GND | чорний |
| OLED SDA | A4 | синій |
| OLED SCL | A5 | фіолетовий |
| OLED VCC | 5V | червоний |
| OLED GND | GND | чорний |
Резистори не потрібні: прошивка вмикає внутрішню підтяжку. K1 на D4, а не на D2, бо D4, D3, D2 на платі стоять зліва направо, тож дроти не перехрещуються. Порядок пінів OLED дзеркальний до Nano, тому на схемі дві пари дротів один раз перетинаються.
Екрани

Утримай будь-яку клавішу 3 с, щоб перейти на наступний екран (він зміниться ще до відпускання): таблиця з усім разом, потім процесор, відеокарта й пам’ять, кожен окремо великими цифрами. Чого ПК не надіслав, те просто не показується. Вибраний екран плата запам’ятовує. Дія клавіші спрацьовує при відпусканні, щоб відрізнити короткий натиск від утримання.
| Показник | Windows 11 | macOS |
|---|---|---|
| Навантаження CPU, GPU | так | так |
| Пам’ять, зайнято / усього в ГБ | так | так |
| Температура CPU, GPU | так | так, Apple Silicon |
Прошивка Nano
Найпростіше: нічого не встановлювати. Програма для ПК (нижче) сама прошиває плату. Підключи Nano й запусти програму: якщо на платі немає прошивки макропада або вона стара, програма спитає «Записати прошивку макропада?», а після згоди (у macropad.exe кнопка «Так», у Терміналі літера «т») сама запише вбудований файл і перевірить його, приблизно за 5 секунд. Без питання вона нічого не прошиває, бо до компʼютера може бути підключена інша Arduino.
Способи нижче потрібні, лише якщо хочеш змінювати код прошивки.
Через Arduino IDE
- Arduino IDE: Tools → Manage Libraries, встановити U8g2.
- Завантажити
macropad_nano.inoіmacropad_core.hв одну папкуmacropad_nano, відкрити.ino. - Tools → Board → Arduino Nano, Processor → ATmega328P; якщо заливка зависає з
stk500_getsync, вибрати ATmega328P (Old Bootloader). - Вибрати порт і натиснути Upload.
Без Arduino IDE: готовий .hex
Файл macropad_nano_v7.hex зібраний з тих самих двох файлів коду, хеші в manifest.json. Заливається програмою avrdude (на Маку brew install avrdude, на Windows архів із github.com/avrdudes/avrdude). Замість PORT свій порт:
avrdude -c arduino -p m328p -P PORT -b 115200 -U flash:w:macropad_nano_v7.hex:i
Якщо зависає з stk500_getsync, у плати старий завантажувач: те саме з -b 57600.
Перевірка без ПК-програми: Serial Monitor на 115200, внизу Newline. Натисни й відпусти клавішу, з’явиться K1. Надішли S:45,12,63,52,40,38,134,180, і на екрані будуть ці числа. Потім монітор закрити.
Ігри без комп’ютера
Друга прошивка робить із макропада маленьку ігрову приставку: той самий корпус, клавіші й екран, нічого не перепаюється. Комп’ютер потрібен лише один раз, щоб записати ігри; далі макропад працює від будь-якої USB-зарядки телефона або павербанка. Найкращі результати кожної гри зберігаються в платі й не зникають після вимкнення.

| Гра | Ліва (L) | Середня (M) | Права (R) |
|---|---|---|---|
| Dino: стрибай через кактуси | стрибок | стрибок | стрибок |
| Flappy: пролети між трубами | змах | змах | змах |
| Snake: їж і рости | поворот ліворуч | — | поворот праворуч |
| Breakout: розбий цеглинки, 3 м’ячі | ракетка ліворуч | запуск м’яча | ракетка праворуч |
| Racer: об’їжджай машини | смуга ліворуч | — | смуга праворуч |
| Simon: повтори послідовність | ліва панель | середня панель | права панель |
| Tetris | ліворуч (утримання — швидко) | поворот; утримання — швидше вниз | праворуч |
Меню: L і R гортають ігри, M запускає. Після програшу: M — ще раз, L — у меню. Вийти з гри посеред партії: затисни L і R разом на 1 секунду.
Як записати ігри
- Windows: у macropad.exe клацни правою кнопкою на значку біля годинника → Записати ігри на плату. Повернути прошивку для ПК: там само Записати прошивку для ПК. Поки на платі ігри, програма її не чіпає, щоб гра не перезапускалась.
- macOS: у папці програми
uv run macropad_helper.py --flash games, назад:--flash pc. - Без програми: файл
macropad_games_v3.hexз розділу «Файли» через avrdude, як прошивку для ПК вище, або вихідний кодmacropad_games.inoз усіма.hчерез Arduino IDE (бібліотека U8g2).
Пам’ять Nano: програма 83.7%, оперативна 80.0%. Щоб ігри вмістилися у 2 КБ оперативної пам’яті, екран малюється чотирма смугами, а змійка зберігає тіло бітами.
Програма на ПК
Програма слухає клавіші макропада, виконує їхні дії й раз на секунду надсилає на екран навантаження, температури й пам’ять.
Windows 11
- Завантажити macropad.exe (21 МБ) і запустити подвійним клацанням. Python і інші програми не потрібні.
- Якщо з’явиться «Windows захистив ваш ПК»: Докладніше → Однаково запустити. Так буває з усіма програмами без платного підпису.
- На питання про права адміністратора відповісти Так: без них Windows не віддає температуру процесора.
- «Запускати макропад разом з Windows?» — Так.
- Якщо програма запропонує драйвер PawnIO — Так. Він потрібен лише для температури процесора.
- Підключити макропад. Біля годинника з’явиться значок (може ховатися під стрілкою ^). Наведи на нього: «Макропад: підключено, COM…». Якщо на платі ще немає прошивки, програма запропонує записати її сама.
Меню значка (правою кнопкою): Налаштування кнопок відкриває config.toml (він у папці %APPDATA%\Macropad), Журнал, Запускати разом з Windows, Вийти.
Якщо антивірус видалить exe, додай його у винятки: програми, зібрані з Python, іноді помилково потрапляють під підозру. Або скористайся іншим способом нижче.
Інший спосіб: через Python (uv) і LibreHardwareMonitor
Завантаж файли з розділу «Програма на ПК» (крім exe) в одну папку.
- Встановити uv у PowerShell:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
- Для температур: LibreHardwareMonitor, запускати від імені адміністратора, у меню Options → Remote Web Server → Run. Без нього програма покаже навантаження процесора й пам’ять.
- Перевірка показників:
uv run macropad_helper.py --stats
- Запуск: двічі клацнути
start_macropad.cmd. Для автозапуску ярлик на нього покласти в папкуshell:startup.
Свій macropad.exe можна зібрати на Windows: двічі клацнути build_exe.cmd, він покладе його в dist.
macOS
brew install uv macmon
macmon читає датчики на Маках з Apple Silicon без sudo. Запуск: двічі клацнути start_macropad.command. Щоб працювали комбінації клавіш, у System Settings → Privacy & Security → Accessibility увімкнути Terminal. Автозапуск: General → Login Items.
Налаштування клавіш
Файл config.toml: для macropad.exe відкривається з меню значка, в інших способах лежить у папці програми. Після збереження програма перечитує його сама.
[K1] combo = "play" # пауза / відтворення [K2] run = ["calc.exe"] # Windows: калькулятор [K2.macos] open = "/System/Applications/Calculator.app" [K3] open = "https://youtube.com"
| Дія | Що робить | Приклад |
|---|---|---|
| combo | комбінація клавіш | "ctrl+shift+esc", "cmd+space", "win+d", "mute" |
| open | сайт, файл, папка або програма Mac | "~/Downloads" |
| run | запуск програми з параметрами | ["notepad.exe"] |
| type | надрукувати текст | "Привіт!" |
Таблиці [K1.windows] і [K1.macos] замінюють [K1] на відповідній системі, тож один файл працює на обох комп’ютерах.
Файли
Кожен файл окремо, без архівів.