Hlavní navigace

Výroba vlastnej mechanickej klávesnice vyhovujúcej vašim potrebám

20. 4. 2020
Doba čtení: 7 minut

Sdílet

Vyrobte si vlastnú mechanickú klávesnicu s mikroprocesorom Atmel ATMEGA32u4, ktorá vyhovuje presne vaším potrebám. Krok po kroku prejdeme od koncepcie až po finálnu montáž do duralového šasi klávesnice.

Prečo si vyrobiť vlastnú klávesnicu, keď na trhu existuje nespočetné množstvo rôznych druhov klávesníc? Univerzálna odpoveď podľa mňa neexistuje, preto vám poviem, ako som sa k návrhu a výrobe dostal ja. Som fanúšikom a dlhoročným užívateľom editorov, založených na vim-e (momentálne kakoune).

Co se dozvíte v článku
  1. Formát klávesnice
  2. Rozloženie kláves
  3. Tlačidlá
  4. Spínače
  5. Stabilizátory tlačidiel
  6. Telo klávesnice
  7. USB kábel
  8. Doska plošných spojov
  9. Firmware
  10. Stavba klávesnice

Pri neustálom prepínaní medzi normálnym a vkladacím režimom som dospel k názoru, že klávesa „esc“ je z môjho pohľadu ďaleko a mala by byť nahradená dostupnejšou klávesou. Ako ideálny kandidát mi prišla klávesa „CapsLock“, podľa mňa najdostupnejšia nepoužívaná klávesa. Začalo teda „googlenie“ a študovanie, kde namiesto riešenia mojho „esc problému“, som narazil na komunitu venujúcu sa výrobe a úprave mechanických klávesníc. Prečítal som si zopár článkov, pozrel niekoľko videií a bolo rozhodnuté – toto bude môj ďalší hobby projekt!

Formát klávesnice

Je dobre zvážiť, koľko kláves naozaj potrebujeme. Štandardná klávesnica sa skladá z alfanumerického bloku, navigačného bloku, numerického bloku a funkčného riadku. Menšia klávesnica znamená jednoduchší návrh, nižšiu cenu, viac miesta na stole a čo je rovnako dôležité, moje ruky nemusia ďaleko „lietať“. Ideme teda sekať – numerický blok nepoužívam, funkčný riadok iba zriedkavo, „esc“ bude „CapsLock“. Ostal mi alfanumerický a navigačný blok.

Z navigačného bloku používam šípky a klávesu „Dele(j)te“. Aby bol zo mňa lepší VIM-ák, šípky budú dostupné cez funkčnú klávesu + HJKL. A čo spravím s Delete? Cez funkčnú klávesu ho nechcem, vtlačiť ho na úkor inej klávesy z alfanumerického bloku tiež nie. Tu teda spravím kompromis a Delete bude dostupný cez Shift + Backspace.


Aby som to zhrnul, moja nová klávesnica bude len alfanumerická časť s Esc miesto CapsLock. Ostatné klávesy budú dostupné cez funkčnú klávesu alebo Shift. Takáto klávesnica sa často označuje ako 60% klávesnica.

Rozloženie kláves

Ohľadne rozloženia kláves nemám nejaké špecifické požiadavky, takže voľbu prispôsobím najpredávanejším sadám tlačidiel, čo je ANSI + QWERTY. Ďalšie veľmi populárne rozloženie je podľa ISO štandardu. Rozdiel medzi ISO a ASNI poznáme všetci – veľký vs. malý Enter.

Tlačidlá

V tlačidlách sa dá „utopiť“ nezanedbateľná časť rodinného rozpočtu. Vyrábajú sa z rôznych materiálov, predávajú sa jednotlivo alebo v sadách, majú rôzne metódy popisovania, rôzne bočné profily… no hotová džungľa.


Ja osobne som sa rozhodol byť konzervatívny a vybral som si jednu z najpopulárnejších sád, konkrétne od YMDK . Pre túto sadu som sa rozhodol z nasledujúcich dôvodov:

  • Sada je kompatibilná s ANSI rozložením kláves,
  • sada je z PBT plastu a popisky sú dye-sublimated, tlačidlá sa nedajú tak jednoducho zodrať,
  • sada je cenovo dostupná,
  • bočný profil kláves je OEM, preferujem OEM alebo cherry profil.

Spínače

Spínačov je na trhu takisto obrovské množstvo, no ich ponuka je prehľadnejšia ako v prípade tlačidiel. Väčšina vychádza z produktov CherryMX. Niektorí výrobcovia ich kopírujú, iní zase dopĺňajú.


Ja som sa rozhodol pre spínače Gateron Brown, čo je čínsky klon spínača CherryMX Brown. Dal som im prednosť pre nízku cenu a dobré užívateľské recenzie. Spínače sa pripevňujú na montážne pláto alebo do dosky plošných spojov. Ja osobne preferujem montáž na pláto. Nemám rád, keď je doska plošných spojov zbytočne mechanicky namáhaná.

Stabilizátory tlačidiel

Úlohou stabilizátora je preniesť silu, ktorou stláčame tlačidlo na jednej strane na druhú stranu tlačidla tak, aby sa klávesa nekrížila. Stabilizátor je nutné použiť pri dlhých klávesách ako je space, enter, atď. Existujú dva druhy montáže stabilizátorov: montáž na dosku plošných spojov a montáž na pláto.

Kedže sme už vybrali tlačidlá s montážou na pláto, budeme teda preferovať stabilizátory s montážou na pláto, a to z dôvodu, aby všetky pohyblivé časti klávesnice boli upevnené na rovnaký základ.

Telo klávesnice

Som fanúšikom minimalistického dizajnu a v tomto duchu som sa rozhodol pojať aj návrh tela klávesnice. Telo klávesnice sa skladá z dvoch častí, ktoré sú vyrobené z eloxovaného durálu. Vrchná časť predstavuje hlavnú časť klávesnice, na ktorú sa budú upínať všetky ďalšie komponenty.


Je vyfrézovaná do 1 cm hrubého materiálu a otvory na montáž tlačidiel a stabilizátorov sú vypálené laserom. Spodná časť zakrýva dosku plošných spojov, pripevňujú sa na ňu nožičky klávesnice a honosí sa super parádnym logom. Vrchná časť je so spodnou časťou spojená 12 skrutkami M2.5.

USB kábel

Všetky DIY klávesnice, s ktorými som sa na trhu stretol, majú USB kábel pripojiteľný cez rôzne varianty USB konektora (od mini USB cez micro USB až po USB-C). Osobne si myslím, že USB kábel nemusí byť odnímateľný od klávesnice. Preto som sa rozhodol druhý koniec USB kábla zapájkovať do dosky plošných spojov a kábel pevne uchytiť do vyfrézovaného lôžka v hornej časti tela klávesnice.

Vďaka tomu nie je doska plošných spojov namáhaná žiadnymi silami pôsobiacimi na konektor a tým pádom nemusím riešiť mechanické upevnenie konektora a dosky plošných spojov.

Doska plošných spojov

Pôvodne som rozmýšľal nad procesorom od Texas Instruments z rodiny MSP430, keďže mám s nimi skúsenosti. Po zvážení som sa rozhodol pre procesor od ATMEL-u konkrétne ATMEGA32u4g, a to z nasledujúcich dôvodov:

  • ATMEGA je populárny procesor v hobby segmente a podporovaný komunitou,
  • má v sebe predinštalovaný USB bootloader a preto nie je potreba dokupovať programátor,
  • tento procesor je už použitý v projekte Opensource klávesnice GH60, z ktorej som sa rozhodol vychádzať.

Možno sa pýtate, prečo som sa nerozhodol pre GH60. Hlavným dôvodom je, že ma baví navrhovať dosky plošných spojov a týmto procesom som si chcel prejsť samostatne a zároveň navrhnúť dosku plošných spojov, ktorá presne vyhovuje mojím predstavám (žiadne LED podsvietenie, podporované iba jedno rozloženie kláves a priamo zapájkovateľný USB kábel). Ostatné súčiastky som vyberal tak, aby boli ručne zapájkovateľné.


Preto som pri výbere preferoval púzdra súčiastok veľkosti 0805 pre dvojvývodové súčiastky. Ostatné súčiastky som vyberal aj s ohľadom na ich maximálnu výšku tak, aby sa zmestili medzi dosku plošných spojov a spodný kryt klávesnice, čo je 2 mm. Súčiastky sú osadené na spodnej strane dosky plošného spoja tak, aby boli vymeniteľné alebo opraviteľné bez vyňatia dosky plošných spojov z klávesnice.

Doska plošných spojov je dvojvrstvová s prekovenými otvormi a rozliatou zemnou vrstvou. V ľavom hornom rohu je mierne zafrézovanie kvôli ohybu USB kábla. Na doske plošných spojov sú umiestnené dve LED, ktoré indikujú aktivovanú vrstvu tlačidiel. LED sú umiestnené pod tlačidlami FN1 a FN2.

Firmware

Ako základ firmwaru som zvolil open-source projekt projekt tmk. Klávesnica funguje v dvoch základných vrstvách (vrstva FN1 a FN2). Po zapnutí klávesnice je aktivovaná vrstva FN1 a tento stav je indikovaný LED pod tlačidlom FN1. Do vrstvy FN2 sa dostaneme stlačením tlačidla FN2 a druhá vrstva sa indikuje LED pod tlačidlom FN2.

Stavba klávesnice

Stavbu klávesnice začíname osadením všetkých SMD súčiastok na dosku plošných spojov. Akonáhle máme všetky súčiastky zapájkované, môžeme si provizórne zapájkovať USB kábel a zapojiť dosku plošných spojov do počítača. Klávesnica by sa po zadaní príkazu dmesg mala hlásiť ako Product: ATm32U4DFU, čo znamená, že máme vyhrané a náš procesor žije. Ďalším krokom je napálenie firmware klávesnice.

Pre kompiláciu budeme potrebovať gcc-avr, binutils-avr, avr-libc a na nahratie binárneho súboru do procesoru dfu-programmer. K zostaveniu firmwaru spuste nasledujúce príkazy:

$ git clone "https://github.com/MarekKap/KK_ansi60" # naklonuje repozitár s výrobnými datami ku klávesnici
$ cd KK_ansi60/Firmware/
$ make # skompiluje program
$ sudo make dfu # nahrá program do klávesnice

Ak všetko prebehlo správne vytiahnite a zapojte USB kábel ku klávesnici. Naša klávesnica by po reštarte mala ožiť, v dmesg  sa hlási ako Product: KK60. Doporučujem otestovať pinzetou každé jedno tlačidlo, aby ste si boli istí, že všetko funguje tak, ako má.

Teraz ideme zabudovať dosku plošných spojov do tela klávesnice. Odpájkujeme provizórne zapájkovaný USB kábel. Prvý krok je namontovať stabilizátory zacvaknutím do hornej časti klávesnice. Ďalším krokom je postupné nacvakávanie jednotlivých tlačidiel. Je dobré začať s tlačidlami, ktoré podporujú stabilizátory a rohovými tlačidlami.

Otočíme telo klávesnice a umiestnime dosku plošných spojov na vývody spínačov. Vývody spínačov skrátime štikacími kliešťami. Majme na pamäti, že máme len 2 mm priestoru medzi doskou plošných spojov a spodným krytom klávesnice. Napájkujeme osadené spínače a na záver napájkujeme dve LED a dosku plošných spojov máme osadenú.

Teraz je na rade osadiť USB kábel. USB kábel zbavíme vrchnej izolácie tak, aby nám jednotlivé vývody dosiahli od ľavého horného roku klávesnice až po pájkovateľné plôšky pre USB kábel. USB kábel zaistíme proti pohybu v tele klávesnice zdrhovacou páskou a vývody pripájkujeme. Aby sa nám vývody voľne nehýbali v tele klávesnice, je dobré ich prilepiť napr. kaptonovou páskou o dosku plošných spojov.

CS24 tip temata


Teraz si pripravíme zadný kryt klávesnice. Naskrutkujeme naň horné nožičky a nalepíme spodné nožičky. Aby nedošlo k náhodnému preskratovaniu vývodov na doske plošných spojov, nalepíme na zadný panel izolačnú nálepku, na ktorú som si nechal vytlačiť schému zapojenia. Spodnú časť klávesnice zoskrutkujeme s vrchnou časťou a môžeme osadiť jednotlivé tlačidlá a máme hotovo.

Svoju klávesnicu využívam denno-denne a som s ňou nadmieru spokojný. Dúfam, že vás aj tento článok inšpiruje a povzbudí k výrobe vlastných klávesníc. Na záver, námet do diskusie: ako by mala vyzerať vaša vysnívaná klávesnica?

Autor článku

Vyštudoval Fakultu elektrotechniky a informatiky STU, odbor rádio elektronika. Pracuje ako systémový inžinier v automotive.