CardKB

CardKB は I2C 接続の小さなキーボードです。


購入

直販他で買えます。

新しいタイプ (v1.1) は MCU が ATMega8A に差し替えられています。

ファームウェアは ATMega328P のものがそのまま使えるようです。


配線と動作確認

CardKB には GROVE コネクタがあり、ケーブルも付属していますので、M5StackWio Terminal に直接接続する事ができます。

GROVE コネクタを持たない Arduino と接続するには別途 GROVE ケーブルを購入して加工する必要があります。

半分に切断すれば 10 本できますね。

※ この製品の GROVE コネクタにはツメが付いていますので、カッターナイフ等で切り落とす必要があります。

※ CardKB は動作電圧が 3.3V なので 5V のマイコンと接続するにはロジックレベル変換が必要となります。

See Also:

LED インジケーター

左側中央にインジケーター用の RGB LED があります。LED の状態とその意味については次のようになっています。

2ndF Lock
赤点滅 赤点灯
Sym 緑点滅 緑点灯
Fn 青点滅 青点灯

キーコード

デフォルトのファームウェアだと、キーコードは次のようになっています。

Esc
(0x1B)
1 2 3 4 5 6 7 8 9 0 BS
(0x08)
Esc 1 2 3 4 5 6 7 8 9 0 Delete
(0x7F)
Esc ! @ # $ % ^ & * ( ) BS
(0x80) (0x81) (0x82) (0x83) (0x84) (0x85) (0x86) (0x87) (0x88) (0x89) (0x8A) (0x8B)

 
Tab
(0x09)
q w e r t y u i o p
Tab Q W E R T Y U I O P
Tab { } [ ] / \ | ~ ' "
(0x8C) (0x8D) (0x8E) (0x8F) (0x90) (0x91) (0x92) (0x93) (0x94) (0x95) (0x96)
Left
(0xB4)
Up
(0xB5)
a s d f g h j k l Enter
(0x0D)
Left Up A S D F G H J K L Enter
Left Up ; : ` + - _ = ? Enter
(0x98) (0x99) (0x9A) (0x9B) (0x9C) (0x9D) (0x9E) (0x9F) (0xA0) (0xA1) (0xA2) (0xA3)
Down
(0xB6)
Right
(0xB7)
z x c v b n m , . Space
(0x20)
Down Right Z X C V B N M , . Space
Down Right < > Space
(0xA4) (0xA5) (0xA6) (0xA7) (0xA8) (0xA9) (0xAA) (0xAB) (0xAC) (0xAD) (0xAE) (0xAF)

0x80 以上を返すキーは自前で制御する必要があります。

See Also:



CardKB ファームウェアの書き込み

CardKB には制御用のプロセッサとして Arduino Uno 等でおなじみの ATmega328P が使われており、ファームウェアを書き換えることができます。ver1.1 には ATmega8A が使われています。

ファームウェアは CardKB の下部にある ICSP 端子に任意の書き込み装置 (プログラマ) を接続して書き換えます。例によって USBasp を使うのが最も簡単だと思います。もちろん UNO 等を書き込み装置にしても構いません。


プログラマとの接続

下部の ICSP 端子に接続します。電圧は 5V で問題ありません。

ピン 信号
6 GND
5 MOSI
4 MISO
3 SCK
2 RST
1 VCC

ICSP 端子はピンヘッダを立ててメスのジャンパーワイヤで接続するのが最も簡単です。ハンダ付けする必要はなく、少し斜めにしてテンションを掛けてやれば大丈夫です。スルーホールの径が小さいのでテンションを掛ける必要すらないかもしれません。むしろピンヘッダの種類によってはピンヘッダが刺さらないかもしれません (金メッキしてあるのは刺さりにくい?)。

確実性を求めるなら、スルーホール用テストワイヤを使うなり、ピンヘッダをハンダ付けしてください。

See Also:


ファームウェア書き込み手順と注意点 (ver1.0: ATmega328P)

  1. ファームウェアを Arduino IDE で開きます。
  2. [ツール | 書込装置] で書き込み装置 (プログラマ: USBasp 等) を選びます。
  3. [ツール | ボード] で Arduino Pro or Pro Mini を選びます。
  4. [ツール | プロセッサ] で ATmega328P (3.3V, 8MHz) を選びます。
  5. [スケッチ | 書込装置を使って書き込む] でファームウェアを書き込みます。

以下、注意点です。

CardKB は内部発振 8MHz で動作するため、クリスタル (水晶発振器) が実装されていません。不適切なブートローダーを書き込むなどして Fuse ビットが書き換わってしまった場合、クリスタルを外付けしない限り Fuse ビットを元に戻すことはできませんし、不適切な Fuse ビットが書き込まれてしまった場合にはヒューズリセッタが必要となる事があるので注意してください。

See Also:


ファームウェア書き込み手順と注意点 (ver1.1: ATmega8A)

ボードマネージャで事前に MiniCore をインストールしておく必要があります。
  1. ファームウェアを Arduino IDE で開きます。
  2. [ツール | 書込装置] で書き込み装置 (プログラマ: USBasp 等) を選びます。
  3. [ツール | ボード] で MiniCore | ATMega8 を選びます。
  4. [ツール | Clock] で Internal 8MHz を選びます。
  5. [スケッチ | 書込装置を使って書き込む] でファームウェアを書き込みます。

以下、注意点です。

CardKB は内部発振 8MHz で動作するため、クリスタル (水晶発振器) が実装されていません。不適切なブートローダーを書き込むなどして Fuse ビットが書き換わってしまった場合、クリスタルを外付けしない限り Fuse ビットを元に戻すことはできませんし、不適切な Fuse ビットが書き込まれてしまった場合にはヒューズリセッタが必要となる事があるので注意してください。


ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。

メニュー: