6 changed files with 372 additions and 2 deletions

No files matched your search

+17
View File
@@ -1,4 +1,14 @@
# KMK: Clackety Keyboards Powered by Python
![GitHub](
https://img.shields.io/github/license/KMKfw/kmk_firmware
)![GitHub contributors](
https://img.shields.io/github/contributors/KMKfw/kmk_firmware
)![Discord](
https://img.shields.io/discord/493256121075761173?logo=Discord
)![Lines of code](https://img.shields.io/tokei/lines/github/KMKfw/kmk_firmware
)![GitHub issues](https://img.shields.io/github/issues-raw/KMKfw/kmk_firmware
)![GitHub closed issues](https://img.shields.io/github/issues-closed/KMKfw/kmk_firmware)
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
[![Stargazers over time](https://starchart.cc/KMKfw/kmk_firmware.svg)](https://starchart.cc/KMKfw/kmk_firmware)
+2 -2
View File
@@ -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)
+110
View File
@@ -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を記載してください。
+140
View File
@@ -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.
+31
View File
@@ -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.