2021-08-19 18:22:18 +02:00
|
|
|
# Começando
|
|
|
|
> A vida era como uma caixa de chocolates. Você nunca saberia o que iria
|
|
|
|
> encontrar.
|
|
|
|
|
|
|
|
KMK é uma camada focada em teclados que assenta-se em cima de
|
|
|
|
[CircuitPython](https://circuitpython.org/). Como tal, ela deve funcionar com a
|
|
|
|
maior parte das [placas que suportam
|
|
|
|
CircuitPython](https://circuitpython.org/downloads). É melhor usar a última
|
|
|
|
versão estável (>5.0). Dispositivos funcionais e recomendados podem ser
|
2021-08-19 20:06:11 +02:00
|
|
|
encontrados [aqui](Officially_Supported_Microcontrollers.md)
|
2021-08-19 18:22:18 +02:00
|
|
|
|
|
|
|
Também fornecemos uma versão de CircuitPython otimizada para teclados
|
|
|
|
(simplificada para lidar com os limites de certas placas e com a seleção dos
|
|
|
|
módulos relevantes pré-instalados). Se você estiver se perguntando por que usar
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
|
|
|
## Guia Rápido
|
|
|
|
> Ao Infinito e Além!
|
|
|
|
|
|
|
|
1. [Installe CircuitPython na tua
|
|
|
|
placa](https://learn.adafruit.com/welcome-to-circuitpython/installing-circuitpython).
|
|
|
|
Com a maioria das placas, deve ser algo tão fácil quanto copiar e colar o
|
|
|
|
firmware no drive.
|
|
|
|
2. Obtenha uma [cópia do
|
|
|
|
KMK](https://github.com/KMKfw/kmk_firmware/archive/refs/heads/master.zip) a
|
|
|
|
partir do ramo master.
|
|
|
|
3. Descompacte e cole o diretório KMK e o arquivo boot.py na raiz do drive USB
|
|
|
|
correspondente à tua placa (geralmente aparecendo como CIRCUITPY).
|
|
|
|
4. Crie um novo arquivo *code.py* ou *main.py* no mesmo diretório raiz (no
|
|
|
|
mesmo nível de boot.py) com o exemplo contido abaixo:
|
|
|
|
|
|
|
|
***IMPORTANTE:*** adapte os pinos GP0 / GP1 para a tua placa específica! <br>
|
|
|
|
|
|
|
|
```
|
|
|
|
print("Starting")
|
|
|
|
|
|
|
|
import board
|
|
|
|
|
|
|
|
from kmk.kmk_keyboard import KMKKeyboard
|
|
|
|
from kmk.keys import KC
|
2022-04-09 02:09:24 +02:00
|
|
|
from kmk.scanners import DiodeOrientation
|
2021-08-19 18:22:18 +02:00
|
|
|
|
|
|
|
keyboard = KMKKeyboard()
|
|
|
|
|
|
|
|
keyboard.col_pins = (board.GP0,)
|
|
|
|
keyboard.row_pins = (board.GP1,)
|
2021-09-14 05:30:05 +02:00
|
|
|
keyboard.diode_orientation = DiodeOrientation.COL2ROW
|
2021-08-19 18:22:18 +02:00
|
|
|
|
|
|
|
keyboard.keymap = [
|
|
|
|
[KC.A,]
|
|
|
|
]
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
keyboard.go()
|
|
|
|
```
|
|
|
|
|
|
|
|
5. Usando um fio, um clipe de papel ou o que seja, conecte o GPIO 0 e o GPIO 1
|
|
|
|
(ou os pinos que você escolheu para tua placa).
|
|
|
|
|
|
|
|
6. Se ela imprimir um "A" (ou um "Q" ou o que depender do teu layout de
|
|
|
|
teclado), você conseguiu!
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
|
|
|
|
|
|
|
## Agora que tudo está no seu lugar, você pode querer ir além...
|
|
|
|
|
|
|
|
> Esta é tua última chance. Após isso Esta é sua última chance. Depois não há
|
|
|
|
> como voltar. Se tomar a pílula azul a história acaba, e você acordará na sua
|
|
|
|
> cama acreditando no que quiser. Se tomar a pílula vermelha ficará no País das
|
|
|
|
> Maravilhas e eu te mostrarei até onde vai a toca do coelho. Lembre-se: tudo o
|
|
|
|
> que estou te oferecendo é a verdade. Nada mais.
|
|
|
|
|
|
|
|
### Você é extremamente sortudo e tem um teclado totalmente suportado
|
|
|
|
|
|
|
|
Se seu teclado e micro-controlador são suportados oficialmente, simplesmente
|
|
|
|
visite a webpage com os seus arquivos e coloque-os na raiz do "flash drive".
|
|
|
|
Estas webpages podem ser vistas [aqui](https://github.com/KMKfw/boards). Você
|
|
|
|
precisará dos arquivos `kb.py` e `main.py`. Instruções mais avançadas podem ser
|
2021-08-21 21:55:16 +02:00
|
|
|
vistas [aqui](config_and_keymap.md).
|
2021-08-19 18:22:18 +02:00
|
|
|
|
|
|
|
### Você obteve outro teclado, possivelmente artesanal, e quer customizar o KMK para ele
|
|
|
|
|
|
|
|
Primeiro, certifique-se de entender como o seu teclado funciona, e em particular
|
|
|
|
sua configuração matricial específica. Você pode observar
|
|
|
|
[aqui](http://pcbheaven.com/wikipages/How_Key_Matrices_Works/) ou ler o
|
|
|
|
[guia](https://docs.qmk.fm/#/hand_wire) feito pelo time da QMK para teclados
|
|
|
|
artesanais.
|
|
|
|
|
|
|
|
<br>Uma vez que você compreendeu a essência da coisa:
|
2021-08-21 21:55:16 +02:00
|
|
|
- Você pode dar uma olhada [aqui](config_and_keymap.md) e [aqui](keys.md) para
|
2021-08-19 18:22:18 +02:00
|
|
|
começar a customizar seu arquivo code.py / main.py.
|
2021-08-21 21:55:16 +02:00
|
|
|
- Eis uma [referência](keycodes.md) dos códigos de teclas (*keycodes*)
|
2021-08-19 18:22:18 +02:00
|
|
|
disponíveis.
|
|
|
|
- A extensão [internacional](international.md) acrescenta teclas para layouts
|
|
|
|
não-americanos, e as [teclas de mídia](media_keys.md) acrecentam teclas
|
|
|
|
para... mídia.
|
|
|
|
|
|
|
|
E para ir mais além:
|
|
|
|
|
2021-08-21 21:55:16 +02:00
|
|
|
- [Sequências](sequences.md) são usadas para enviar múltiplas teclas em uma ação
|
|
|
|
só.
|
|
|
|
- [Camadas](layers.md) podem transformar totalmente como seu teclado age com um
|
2021-08-19 18:22:18 +02:00
|
|
|
simples toque.
|
2021-08-21 21:55:16 +02:00
|
|
|
- [ModTap](modtap.md) te permite customizar a maneira que uma tecla age quando é
|
2021-08-19 18:22:18 +02:00
|
|
|
pressionada ou "segurada"; e o
|
2021-08-21 21:55:16 +02:00
|
|
|
- [TapDance](tapdance.md) dependendo do número de vezes que ela é pressionada.
|
2021-08-19 18:22:18 +02:00
|
|
|
|
2021-08-21 21:55:16 +02:00
|
|
|
Você quer extensões divertidas como RGB, teclados repartidos ao meio e mais?
|
|
|
|
Confira o que os [módulos](modules.md) e [extensões](extensions.md) podem
|
2021-08-19 18:22:18 +02:00
|
|
|
fazer!
|
|
|
|
|
|
|
|
Você também pode obter ideias dos vários [exemplos de
|
|
|
|
usuários](https://github.com/KMKfw/user_keymaps) que fornecemos e fuce nossa
|
|
|
|
[documentação](https://github.com/KMKfw/kmk_firmware/tree/master/docs).
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
|
|
|
## Ajuda e Suporte Adicionais
|
2021-08-21 21:55:16 +02:00
|
|
|
> Estradas? Para onde vamos, estradas são desnecessárias.
|
2021-08-19 18:22:18 +02:00
|
|
|
|
|
|
|
Caso precise, ajuda para depuração pode ser encontrada [aqui](debugging.md).
|
|
|
|
|
|
|
|
Se você precisa de suporte com o KMK ou quer somente dizer oi, encontre-nos no
|
|
|
|
canal [#kmkfw:klar.sh no Matrix](https://matrix.to/#/#kmkfw:klar.sh). Este canal
|
|
|
|
tem uma ponte no Discord
|
|
|
|
[aqui](https://discordapp.com/widget?id=493256121075761173&theme=dark) por
|
|
|
|
conveniência. Se você precisa de ajuda ou pretende abrir um bug report, se
|
|
|
|
possível forneça o hash SHA do *commit* utilizado, o qual pode ser obtido
|
|
|
|
executando este comando no REPL de seu controlador:
|
|
|
|
|
|
|
|
`from kmk.consts import KMK_RELEASE; print(KMK_RELEASE)`
|