フォト
2019年11月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
無料ブログはココログ

« M5Stack用CardKBをPS/2インタフェース対応にしてみる(1) | トップページ | プロペラ2の評価ボード »

2019年3月 8日 (金)

M5Stack用CardKBをPS/2インタフェース対応にしてみる(2)

前回の続きです。

GithubにてPS/2インタフェース対応ファームウェアを公開しました。

・ CardKeyBoard PS/2 インタフェース版 ファームウェア
   https://github.com/Tamakichi/CardKeyBoard_PS2
  (2019/03/10 更新しました:  (内容) PS/2イニシャル時0X00送信削除、応答無しでも次に進む、LED点滅廃止

オリジナル版になかった [カナ] [Insert][F1] [F10] キー等を追加しました。
IchigoJamでのローマ字カタカナ入力にも対応しています。

プログラム入力には困らないと思います。

Dscn9772

Dscn9774

ケーブルには次の信号を割り当てています。

02

03

IchigoJamで利用する場合、
ジャンパーワイヤー(オス - オス)を使って、端子に接続でも利用出来ます。
   GND    - GND
   VCC    - 5V or 3.3V
   KBD1  - CLK
   KBD2  - DATA

Dscn9783

USBコネクタ(オス)を用意して、結線してUSB接続でも利用出来ます。

04

キーを押すのが固めですが、公開されているこのキーボード用ケースの
3Dプリンター用データを出力して装着すると、かなり改善されて入力しやすくなりました。

Dscn9780


ファームウェアの書き込みが少々面倒ですが、下記のサイトにて詳しい方法が
分かりやすく解説されています。大変参考になりました。
しかるのち - M5Stack:CardKB ファームウェア更新


2019/03/10 追記

IchigoJam(V1.3.1)での利用で、キーボードを認識しないとの報告があり、
手持ちの世代の違うIchigoJamを試したところ、認識出来ないボードが1つありました。

Dscn9799

下段のビデオ端子が白いボードが認識出来ませんでした。
ファームウェアは1.2.1と古いですが、安定したバージョンです。

調べると、キーボード起動時のLED(NeoPixel)点滅が原因のようです。

制御を行うAdafruit NeoPixelライブラリが内部で割込停止を行っており、
PS/2イニシャル処理(ピン変化を割込みで検知)の邪魔をするようです。

点滅を無くすと認識出来るようになりました。
他のボードは問題なかったので、起動時の微妙なタイミングで発生するようです。
(電源周りの差異で立ち上がりが微妙に違う等)


« M5Stack用CardKBをPS/2インタフェース対応にしてみる(1) | トップページ | プロペラ2の評価ボード »

arduino」カテゴリの記事

IchigoJam」カテゴリの記事

コメント

またまた教えてください。
M5stack-c用キーボードに関して。
面白そうなのでキーボードを購入いたしました。
IchigoJamに接続しようとするのですが上手くいきません。
ファームの書き換えはまだしていません。
IchigoJamのバージョンは、最新の1.3.1です。
ファームの書き換え以外にすることはありますでしょうか?
よろしくお願いします。

rokurakuさん

M5Stack用CardKBキーボードをIchigoJamのPS/2インタフェース接続のキーボードとして認識させてるためには、
このキーボードのファームウェアの書き換えが必要となります(改造が必要)。
ファームウェアの書き換えにより、本来のI2C接続の4線をPS/2キーボード接続の信号線に強引に変更しています。

本記事にも記載していますが、下記リンク先の内容に従って書き換える必要があります。
https://github.com/Tamakichi/CardKeyBoard_PS2
この作業は、Arduinoに関する知識が必要です。書き換えを行うライター(書き込みツール)も必要となります。

M5Stack用CardKBキーボードは、無改造(ファームウェア書き換え無し)でも、
I2C接続でIchogJamにつなげて、I2CRコマンドで押されたキーの文字を取得することが出来ます。
この場合は、BASICにてI2CRコマンドを使ったプログラム実行中でのみでの利用となります。
モニター上で、プログラムを入力したりするキーボードとしての利用は出来ません。


ご回答ありがとうございます。
やはりそうですよね、書き換えが必要ですね。
だいぶん前になりますがAVRでアプリを開発していた時があります。
書き込みツールもあったっと思いますので、やってみます。
(書き込みに失敗して元に戻らなかったら悲劇です)
今後ともよろしくお願いいたします。

P.S
記事では、キーボードアプリの書き換えは、必須の様に読めるのですが、そうですか?

rokurakuさん

> (書き込みに失敗して元に戻らなかったら悲劇です)
私も1回、書き込みに失敗しAtmega328pを交換しました。
HEXファイル書き込みで、ヒューズビットの設定ミスで、文鎮状態になってしまいました。
通常ではれば、高電圧にてヒューズビットのリセットが出来るのですが、
M5Stack用CardKBキーボードでは、そのための端子がないため、チップ交換の対処となりました。
書き込みはArduino IDE経由が、ヒューズビットの設定が不要なので安全だと思います。

> P.S
> 記事では、キーボードアプリの書き換えは、必須の様に読めるのですが、そうですか?
PS/2インタフェースでの利用の場合は、書き換え必須となります。
I2C接続で利用するのであれば、書き換え不要です。
その場合、IchigoJamではBASICインタプリタのI2CRコマンドで利用出来ます。
モニターでの対話入力のキーボードとしては利用出来ません。

P.S
知人が、このM5Stack用CardKBキーボード単体でBASICインタプリタを公開しています。
CardKeyBoardでArduinoBasicが動作する自作ポケコン
https://github.com/KeiTakagi/ArduinoBasic_cardKB
この発想は面白いですね。

IchigoJamについては、facebookのIchigoJam-FANグループに有用な情報が多数投稿されています。
グループ管理者は開発者の福野さんです。
私もメンバーです。製作物の発表、情報・意見交換、質問等も気楽に行えるグループです。
facebookのアカウントが必要ですが、お勧めの情報源です。
https://www.facebook.com/groups/ichigojam/

いろいろと参考情報頂き、ありがとうございます。
ArduinoにもBASIC書き込みました。
BASICもやってみると面白いですね。
今後ともよろしくお願いします。

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: M5Stack用CardKBをPS/2インタフェース対応にしてみる(2):

« M5Stack用CardKBをPS/2インタフェース対応にしてみる(1) | トップページ | プロペラ2の評価ボード »