Compare commits
9
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6c069776fb | ||
|
|
586d1deb4e | ||
|
|
796b7733f5 | ||
|
|
9eb86d2069 | ||
|
|
a08ed5dc25 | ||
|
|
7e477e1aa8 | ||
|
|
3be9f9b9ad | ||
|
|
e0786e6118 | ||
|
|
9340579031 |
No files matched your search
@@ -1,4 +1,14 @@
|
||||
# KMK: Clackety Keyboards Powered by Python
|
||||

|
||||
|
||||
|
||||
KMK is a feature-rich and beginner-friendly firmware for computer keyboards
|
||||
written and configured in
|
||||
@@ -78,3 +88,10 @@ All documentation and hardware designs are licensed under the [Creative Commons
|
||||
Attribution-ShareAlike 4.0](https://creativecommons.org/licenses/by-sa/4.0/)
|
||||
license. Contributions to this repository must use these licenses unless
|
||||
otherwise agreed to by the Core team.
|
||||
|
||||
|
||||
## Stargazers over time
|
||||
|
||||
[](https://starchart.cc/KMKfw/kmk_firmware)
|
||||
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
# Handwire keyboards
|
||||
This guide will not talk about the physical wiring. Check out our
|
||||
[recommended microcontrollers](Offiially_Supported_Microcontrollers.md) and
|
||||
follow the amazing guide for that[here](https://docs.qmk.fm/#/hand_wire). That
|
||||
[recommended microcontrollers](Officially_Supported_Microcontrollers.md) and
|
||||
follow the amazing guide for that [here](https://docs.qmk.fm/#/hand_wire). That
|
||||
guide can be followed until you are setting up the firmware. After wiring the
|
||||
keyboard, you can refer to our porting guide [here](porting_to_kmk.md)
|
||||
@@ -0,0 +1,110 @@
|
||||
# はじめに
|
||||
> Life was like a box of chocolates. You never know what you're gonna get.
|
||||
|
||||
KMKは[CircuitPython](https://circuitpython.org/)の上に配置されるキーボード用の実装レイヤーです。
|
||||
そのため、[CircuitPythonをサポートするほとんどのボード](https://circuitpython.org/downloads)と互換性があります。
|
||||
|
||||
最新の安定したバージョンを使用することをおすすめします。(>5.0)
|
||||
使用可能やおすすめなデバイスは[こちら](Officially_Supported_Microcontrollers.md)から確認できます。
|
||||
|
||||
CircuitPythonの最適化バージョン(特定のボードの容量制限に対処した、プリインストールされた関連モジュールの選択が可能なバージョン)も提供しています。
|
||||
|
||||
なぜCircuitPythonよりKMKPythonを使用するか気になっていたら、両方を比較した[実績](kmkpython_vs_circuitpython.md)があります。
|
||||
|
||||
<br>
|
||||
|
||||
## TL;DR クイックスタートガイド
|
||||
> To infinity and beyond!
|
||||
|
||||
1. CircuitPythonをボードに[インストール](https://learn.adafruit.com/welcome-to-circuitpython/installing-circuitpython)する。
|
||||
|
||||
|
||||
2. マスターブランチから[KMKのコピー](https://github.com/KMKfw/kmk_firmware/archive/refs/heads/master.zip)を取得。
|
||||
|
||||
|
||||
3. ファイルを展開し、KMKフォルダーとboot.pyファイルをUSBドライブのルート(CIRCUITPYと表示されることが多い)にコピーする。
|
||||
|
||||
|
||||
4. 同じルートディレクトリー(boot.pyと同レベル)に新規で*code.py* または *main.py*のファイルを作成する。中身は以下の例とする。
|
||||
|
||||
***重要:*** GP0 / GP1 ピンを使用ボードに合わせて下さい!<br>
|
||||
|
||||
|
||||
```
|
||||
print("Starting")
|
||||
|
||||
import board
|
||||
|
||||
from kmk.kmk_keyboard import KMKKeyboard
|
||||
from kmk.keys import KC
|
||||
from kmk.matrix import DiodeOrientation
|
||||
|
||||
keyboard = KMKKeyboard()
|
||||
|
||||
keyboard.col_pins = (board.GP0,)
|
||||
keyboard.row_pins = (board.GP1,)
|
||||
keyboard.diode_orientation = DiodeOrientation.COLUMNS
|
||||
|
||||
keyboard.keymap = [
|
||||
[KC.A,]
|
||||
]
|
||||
|
||||
if __name__ == '__main__':
|
||||
keyboard.go()
|
||||
```
|
||||
|
||||
1. ワイヤーなどでGPIO 0とGPIO 1(またはほかに指定したピン)を接続する。
|
||||
|
||||
|
||||
2. "A"や"Q"(キーボードのレイアウトによって異なる)が表示されたら、完成!
|
||||
|
||||
<br>
|
||||
|
||||
|
||||
## とりあえず一通り動くようになったので、もっとに先へ進みたい場合
|
||||
> This is your last chance. After this, there is no turning back. You take the blue pill—the story ends, you wake up in your bed and believe whatever you want to believe. You take the red pill—you stay in Wonderland, and I show you how deep the rabbit hole goes. Remember: all I'm offering is the truth. Nothing more.
|
||||
|
||||
### フルサポートされているキーボードを持っている場合
|
||||
あなたのキーボードとマイコンが正式にサポートされている場合、[こちらのページ](https://github.com/KMKfw/boards)から`kb.py` と `main.py`を"flash drive"のルートに落とす必要があります。より高度な手順は[こちら](config_and_keymap.md)から確認できます。
|
||||
|
||||
このボードに最適化されているため、 [KMKPython](https://github.com/KMKfw/kmkpython) の使用を推奨します。
|
||||
|
||||
Circuitpythonを使用する場合、 [boot.py](https://github.com/KMKfw/kmk_firmware/blob/master/boot.py)も必要になります。
|
||||
|
||||
### ほかに自作ボードなどを持っていて、カスタマイズされたKMKを導入したい場合
|
||||
|
||||
最初にデバイスの動作や具体的なマトリックス構成についてしっかり理解してください。
|
||||
QMKチームが提供している手配線キーボード用の[ガイド](https://docs.qmk.fm/#/hand_wire)と[ドキュメント](http://pcbheaven.com/wikipages/How_Key_Matrices_Works/) を確認できます。
|
||||
|
||||
<br>要旨をつかめてきたら:
|
||||
- [ここ](config_and_keymap.md) と [ここ](keys.md)を見て、code.py / main.py ファイルをカスタイマイズできます。
|
||||
|
||||
- 使用可能なキーコードの[リファレンス](keycodes.md)があります。
|
||||
|
||||
- [インターナショナル](international.md)は、US配列以外のキーボードにキーを追加する拡張機能で、[メディアキー](media_keys.md)は・・・メディアにキーを追加する拡張機能です。
|
||||
|
||||
さらに先へ進むと:
|
||||
- [シーケンス](sequences.md) 一つのアクションで複数のキーストロークを送信するために使用します。
|
||||
- [レイヤー](layers.md)でタッチ一つでキーボードの全体の動きを変えることができます。
|
||||
|
||||
- [モドタップ](modtap.md) でキーの押し/長押しの動作を設定し、何回押されたかによって[タップダンス](tapdance.md)を設定します。
|
||||
|
||||
RGBや分裂型などの機能を楽しめたい場合は、ビルトイン[モジュール](modules.md)と[拡張機能](extensions.md)を見てみてください!
|
||||
|
||||
私たちが提供する、いろんな [ユーザー事例](https://github.com/KMKfw/user_keymaps)や[ドキュメント](https://github.com/KMKfw/kmk_firmware/tree/master/docs)からアイデアを得ることもできます。
|
||||
|
||||
<br>
|
||||
|
||||
## ヘルプ/サポート
|
||||
> Roads? Where we're going we don't need roads.
|
||||
|
||||
デバッグについてのヘルプが必要な場合は[こちら](debugging.md)。
|
||||
|
||||
KMKについてサポートが必要な場合や、コミュニケーションをとりたい場合は[こちら](https://matrix.to/#/#kmkfw:klar.sh)。
|
||||
このチャネルは[Discord](https://discordapp.com/widget?id=493256121075761173&theme=dark) からも見ることができます。
|
||||
|
||||
チャットやバグ報告などでヘルプを求める場合、可能な限り、コントローラーのREPLに`from kmk.consts import KMK_RELEASE; print(KMK_RELEASE)`を実行することによって表示されるコミットSHAを記載してください。
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,140 @@
|
||||
# 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
|
||||
encontrados [aqui](Officially_Supported_Microcontrollers.md)
|
||||
|
||||
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
|
||||
KMKPython em vez do CircuitPython cru, tentamos comparar ambas as abordagens
|
||||
[aqui](kmkpython_vs_circuitpython.md)
|
||||
|
||||
<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
|
||||
from kmk.matrix import DiodeOrientation
|
||||
|
||||
keyboard = KMKKeyboard()
|
||||
|
||||
keyboard.col_pins = (board.GP0,)
|
||||
keyboard.row_pins = (board.GP1,)
|
||||
keyboard.diode_orientation = DiodeOrientation.COLUMNS
|
||||
|
||||
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
|
||||
vistas [aqui*](config_and_keymap.md).
|
||||
|
||||
Note que recomendamos utilizar [KMKPython](https://github.com/KMKfw/kmkpython)
|
||||
para essas placas pois ele é otimizado para elas. Se você usar o Circuitpython
|
||||
em vez do KMKPython, você também vai precisar do
|
||||
[boot.py](https://github.com/KMKfw/kmk_firmware/blob/master/boot.py).
|
||||
|
||||
### 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:
|
||||
- Você pode dar uma olhada [aqui*](config_and_keymap.md) e [aqui*](keys.md) para
|
||||
começar a customizar seu arquivo code.py / main.py.
|
||||
- Eis uma [referência*](keycodes.md) dos códigos de teclas (*keycodes*)
|
||||
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:
|
||||
|
||||
- [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
|
||||
simples toque.
|
||||
- [ModTap*](modtap.md) te permite customizar a maneira que uma tecla age quando é
|
||||
pressionada ou "segurada"; e o
|
||||
- [TapDance*](tapdance.md) dependendo do número de vezes que ela é pressionada.
|
||||
|
||||
Você quer extensões divertidas como RGB, teclados divididos ao meio e mais?
|
||||
Confira o que os [módulos*](modules.md) e [extensões*](extensions.md) podem
|
||||
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
|
||||
> Roads? Where we're going we don't need roads.
|
||||
|
||||
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)`
|
||||
@@ -0,0 +1,72 @@
|
||||
# Micro-Controladores Oficialmente Suportados
|
||||
|
||||
Enquanto a maioria dos dispositivos com Circuitpython são muito bons para
|
||||
teclados artesanais, amaioria dos teclados é projetada para aceitar um Pro
|
||||
Micro. As placas listadas abaixo ou são, ou podem ser adaptadas para essa
|
||||
pinagem a fim de usar teclados comuns já presentes no mercado.
|
||||
|
||||
## Nice!Nano
|
||||
|
||||
Características:
|
||||
- Pinagem Pro Micro
|
||||
- Suporte a USB HID e Bluetooth
|
||||
- Pode ser usado para teclados divididos Bluetooth sem fio
|
||||
- Suporte a bateria, incluindo carga
|
||||
|
||||
Desvantagens:
|
||||
- 25 dólares por micro-controladores na maioria das revendedoras
|
||||
|
||||
Varejistas comund:
|
||||
- [Boardsource](https://boardsource.xyz/store/5f4a1733bbaa5c635b83ed67)
|
||||
- [NiceKeyboards](https://nicekeyboards.com/collections/group-buy/products/nice-nano-v1-0).
|
||||
|
||||
## ItsyBitsy M4 Express
|
||||
|
||||
Características:
|
||||
- Preços acessíveis a partir de 15 dólares
|
||||
- Pode rodar a maior parte das vantagens do KMK, incluindo RGB
|
||||
|
||||
Desvantagens:
|
||||
- Precisa de adaptadir para funcionar com a pinagem do Pro Micro. O adaptador
|
||||
pode ser encontrado
|
||||
[AQUI](https://github.com/KMKfw/kmk_firmware/tree/master/hardware)
|
||||
|
||||
Varejistas Comuns:
|
||||
- [Adafruit](https://www.adafruit.com/product/3800)
|
||||
|
||||
## RP2040
|
||||
|
||||
Características:
|
||||
- Preço bastante acessível
|
||||
- Bastante poderosa dado o preço
|
||||
|
||||
Desvantagens:
|
||||
- Pouco suporte para kits de teclado
|
||||
|
||||
Varejistas comuns:
|
||||
- [Adafruit](https://www.adafruit.com/pico?src=raspberrypi)
|
||||
- [Sparkfun](https://www.sparkfun.com/products/17829?src=raspberrypi)
|
||||
|
||||
## Adafruit ItsyBitsy nRF52840 Express
|
||||
|
||||
Características:
|
||||
- Suporte a USB HID e Bluetooth
|
||||
- Mais acessível que o Nice!Nano, apenas 18 dólares
|
||||
|
||||
Desvantagens:
|
||||
- Precisa de adaptador para funcionar com teclados de pinagem Pro Micro pinout
|
||||
keyboards. O adaptador pode ser encontrado
|
||||
[AQUI](https://github.com/KMKfw/kmk_firmware/tree/master/hardware)
|
||||
- O suporte à bateria precisa de uma placa adicional encontrada
|
||||
[AQUI](https://www.adafruit.com/product/2124)
|
||||
|
||||
Varejistas comuns:
|
||||
- [Adafruit](https://www.adafruit.com/product/4481)
|
||||
|
||||
## Outros Micro-Controladores
|
||||
|
||||
O mínimo que você vai precisar:
|
||||
|
||||
- CircuitPython/KMKpython
|
||||
- 256KB de armazenamento flash
|
||||
- HID sobre USB e/ou Bluetooth.
|
||||
@@ -0,0 +1,31 @@
|
||||
## Comparação de Firmware
|
||||
|
||||
### KMKPython
|
||||
|
||||
KMKPython é um *fork* do Circuitpython, mas com bibliotecas para a maior parte
|
||||
das extensões já embutidas. Isto te poupa de ter que reuni-las e atualizá-las
|
||||
manualmente. Pode haver outras características adicionadas no futuro exclusivas
|
||||
para o KMKPython. Para o nice!nano, o KMKPython é altamente recomendado e usado
|
||||
em lugar do Circuitpython.
|
||||
|
||||
#### Diferenças Notáveis
|
||||
|
||||
- Bibliotecas embutidas para Bluetooth, RGB etc.
|
||||
- Economiza espaço, pois os binários gerados são otimizados para teclados.
|
||||
- micro-controladores como o nice!nano poderão acessar todas as vantagens
|
||||
diretamente.
|
||||
|
||||
### Circuitpython
|
||||
|
||||
Circuitpython pode ser instalado seguindo [este
|
||||
guia](https://learn.adafruit.com/welcome-to-circuitpython/installing-circuitpython).
|
||||
É recomendável utilizar a versão mais recente, 5.0 ou superior. Versões beta
|
||||
podem funcionar, mas espere suporte limitado.
|
||||
|
||||
#### Diferenças Notáveis
|
||||
|
||||
- Suporta mais dispositivos.
|
||||
- Menos bibliotecas embutidas. Se precisar de RGB, Bluetooth e mais, você terá
|
||||
que adicionar estas bibliotecas manualmente.
|
||||
- Alguns dispositivos como o nice!nano não dispõem de muito espaço livre, então
|
||||
nem todas as vantagens podem ser instaladas ao mesmo tempo.
|
||||
Reference in new issue
Block a user