PIC18F2550でUSB入力デバイスを作る(4)。
Posted by arms22 on 2008年09月08日

6つのロータリエンコーダを使ったキーボードをブレッドボード(パンじゃないですよ!)に実装しました。とりあえずSafariに特化して次のようにキーを割り当てた。左のロータリエンコーダから右回り、左回りの順で記載。
- TAB、シフトTAB
- コマンド+]、コマンド+[ ※Safariでは「次に進む」「前へ戻る」
- カーソル→、カーソル←
- カーソル↓、カーソル↑
- ページダウン、ページアップ
- Volアップ、Volダウン
ロータリーエンコーダの使い方
http://elm-chan.org/docs/tec/te04.html

回路図です。ロータリーエンコーダの出力をPICのポート1つ1つに割り当てています。6ロータリーエンコーダ×2出力で12ポート使用しています。このままだとLEDやスイッチを追加していくにはポートが足りなくなりそうです。そこで、次のようにマトリクス上にロータリーエンコーダを配線する方法を思いつきました。こうすれば12ポートを7ポートまで減らせるかもしれない。

SEG1-SEG2は常時入力ポートにしておき、読み取りを行う直前にSEG1-SEG2いずれかを出力Lにする。SEG1-SEG2を順番に出力Lにして、REnc1-A/REnc1-B、REnc2-A/REnc2-Bを読み込めば、6ロータリーエンコーダすべての値が読みとれる。SEG1-SEG2は3-to-8-ラインデコーダが使える、、あ、ラインデコーダじゃ非アクティブポートをHi-Zにできないわ。
PICのファームウェアは前回作成したHIDKeybordをベースに作成しました。USB経由でファームウェアを更新できるようUBWに対応しました。UBWについてはこちらのWikiが参考になります。
memo/UBW - 千秋ゼミ
http://www-ice.yamagata-cit.ac.jp/ken/senshu/sitedev/index.php?memo%2FUBW
UBWに対応する為にやるべきことは次の四つ。
- ブートモードに入るためのスイッチを追加する
SW1をMCLR、SW2をRC2 - ブートローダが使用するLEDを追加する
LED1をRC0、LED2をRC1に接続。 - PICライタでブートローダを書き込む
ブートローダを1度書き込めば以降、ブートモードで立ち上げて、USB経由でファームウェアをダウンロードできる。 - ファームウェアをブートローダに対応する
リンカスクリプトをブートローダ対応版に差し替える。
Ads by Google
0 Comments
Leave a reply
該当の記事は見つかりませんでした。