USB Newton Keyboard にコメントがあったので、詳細篇です。
まさか需要があるとは、、、
前回の記事はブレッドボードに組んでいましたが、その後ユニバーサル基板に組みました。
(MOSA Software Meeting 2011 の懇親会で紹介したときのバージョンです。)
[ハードウェア]
ハードウェアは単純にRS422 とArduino のUART とのレベル変換です。
NewtonKeyboard と、レベル変換IC (LTC485) に電源が必要ですが、
この回路では D7 ピンをHIGH、D6 ピンをLOW にして、電源としています。
・D5 ピンにLED をつけると、CapsLock の状態によって点灯します。
・LED の種類は任意です。電流制限用の抵抗を直列にいれます。
(計算方法が分からない場合は 470Ω〜1kΩ 程度をつけてください。)
・104 は念のためつけたパスコン(セラミックコンデンサ 0.01uF) です。
無くても動作すると思います。
・コネクタはキーボード側のプラグを正面からみた図です。
[ソフトウェア]
まず、こちらのプログラムを通常のArduino のプログラムとして書き込みます。
プログラムの動作はNewton Keyboard が出力するシリアルキーコードを、USB HID Keyboard のファームウェアに合わせて変換し、シリアルポートから出力しています。
次に、Arduino Uno のUSB シリアル変換部のチップ(Atmega8u2) に、DFUプログラミングで USB HID Keyboard のFirmware を書き込みます。
→こちらの記事を参照して下さい。
Arduino のプログラムを書き換える場合は、再度DFU プログラミングで USB シリアル変換 のFirmware に戻します。
もしかして、他にも欲しい方いらっしゃいますか?
おかげさまで無事にニュートンキードからの入力ができるようになりました。念願だったので、超嬉しいです。このコメントはニュートンキーボードから書いています。
返信削除後は持ち運べるように、UNOごとキーボードの中に組込めればと試行錯誤しているところです。
それから、プログラムの方ですが、()がShift +8,9での入力となり、キートップの表記とズレがありました。そんなに不便でもないので、あまり支障はありませんが・・・。
早く自分でスケッチ書けるようになりたいです。
tune さん、動作おめでとうございます。本体に内蔵できたら完璧ですね!
返信削除記号の件ですが、家のはズレていないので、
日本語キーボードとして認識されていませんか?
(他の記号もずれてませんか? たとえばShift + 2 が " など)
OS 側の問題なので、接続する環境によって対処法も変わってくると思います。
プログラムはDFU で書き込んだプログラムの作者darran さんのサンプル(usb_kbd_demo.pde) をベースに、Keycode の変換をするものです。
Newton Keyboard 独自のKeycode と、USB Keyboard のKeycode と、
コンピュータで一般に使われる ASCII Code が混在しているので分かりにくいですが。
初めまして,ヴ バン カンと申します.宜しくお願いします.現在はArduino Mega 2560とMaxonのDCモータでロボットのコントロール研究を行っています.使うエンコーダの出力信号はEIA Standard RS 422式(内蔵ラインドライバ DS26LS31)なんですが,そちらと同じで 秋月のRS485/RS422トランシーバ LT1785CN8 を使おうと思っています.RS422 とArduino のUART とのレベル変換は可能でしょうか?初心者なんで,宜しくお願いします
返信削除ヴ バン カンさん、はじめまして
返信削除返信が遅くなりまして済みません。
RS422 とArduino UART のレベル変換は問題なくできます。
(この記事のキーボードは TTL レベルを受け付けたのでIC 省略してしまいましたが、、、)