2014年11月16日

66SRのキーボードについて(3)

  フォーマットが分かったので、ハードウエアで実現してみました。


  動くかどうかのテスト用なので、Arduino を使います。

  回路図とスケッチは次の通りです。

141116_01_66SR_key_Arduino.PNG


有線通信のスケッチ

赤外線通信のスケッチ



  ハードウエアについての注意点です。

 ・赤外線通信の回路

  赤外線LEDは汎用なら特に何でもいいと思います。今回は共立電子で、L53F3BTというのを購入しました。

  制限抵抗は、330オームにしていますが、これで12mA程度流れる計算です。


  電源電圧 = 5V、順方向電圧降下 = 1.2V(L53F3BTのカタログより)なので、(5-1.2) / 330 = 0.0115 A

  制限抵抗を小さくすると、発光が強くなって赤外線が飛ばせる距離が伸びますが、Arduino の絶対最大出力が40mAなので、あまり大電流を流さないようにして下さい。


 ・有線通信の回路

  コネクタの番号が分かり難いので、Arduinoに接続する前に確認して下さい。66SRの電源を入れた時に、1ピンと2ピンの間に5Vの電位差が出るので、これを確認するといいと思います。

  後は回路図の通り、2ピンと4ピンをGNDに、3ピンを33オームの抵抗を解して接続します。

  スケッチをArduinoに書き込む時は、66SRと接続しない状態でするようにして下さい。



  送信するキーデータですが、Arduino を接続しているパソコンからシリアル通信で送信します。

  パソコンからのデータが0xFF以外は、制御コード = 0b000 として、キーデータを66SRに送信します。
  パソコンからのデータが0xFFの時は、その次のデータを制御コードとし、さらにその次のデータをキーデータとして送信します。


  とりあえずいつもの「あくのりっち」を使った場合について説明します。

http://www.vector.co.jp/soft/win95/prog/se089304.html


 1)回路を組み立てます。
 2)Arduino IDE でArduino にスケッチを書き込みます。
 3)Arduino IDE を終了させます。
 4)あくのりっちを起動します。
 5)「シリアルデバイスを開く」を選び、Arduino IDEで指定したCOMポートと同じものを選択します。
 6)画面下のボーレート設定を1200bpsにします。

  これで通信が可能になっているはずです。

 7)66SRの電源を入れます。BASICを選ぶ画面になるまで待ちます。

 8)F5 を押すために、Arduino にデータを送信します。あくのりっちの「編集」−「BINARYモード」を選び、下の入力部分に、FF、01、F4、を入力します。

 9)N66SR-BASICが起動されれば成功です。


 ・わかっている問題

  パソコン→Arduino→66SRにデータを送信する時に、パソコン→Arduinoの転送よりも、Arduino→66SRのデータ速度が遅いです。そのため、大量にデータを送信した場合、例えばファイル転送した場合などは、Arduinoでデータ溢れが発生します。

  通常はフロー制御を行って、パソコンからくる送信データを抑制するのですが、それがどうもうまくいきません。

  Arduinoのハードウエアは、フロー制御の信号が接続されていないので、Xon/Xoffのソフトウエア制御になります。
  パソコン側でXon/Xoffを受信した時に、送信を抑制/再開のフロー制御をすればいいだけだと思うのですが...このフロー制御は、Arduinoのドライバが行うのか、あくのりっちが行うのか、それともさらに上位のソフトが行うのか、よくわかりません。


  通常の人間がキー入力するような速度なら、特に問題はありません。





posted by えすび at 12:20| Comment(0) | P6解析:サブCPUと8255 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。