1年前に、遊戯王真デュエルモンスターズ~封印されし記憶~のポケットステーションで強力なカードを入手するためのツール:チートリモコンを製作記事を作成した。
今回は、チートリモコンの設計を見直し、小型で操作性を向上したLite版を製作する。
<初代チートリモコン>
・概要編
<チートリモコンLite>
・回路図編 ←いまここ
このチートリモコン製作記は、ほん呪レビューの次ぐらいにブログ開設したらやりたかったことであり、1周年記念として気合を入れて記事を書いた。
特にこれを作った6年ぐらい前は、久しぶりにプログラミングしたこともあってコードがグチャグチャで、ロジックアナライザを使った信号解析もしていなかったので、何とか動いている程度の代物だった。
そのためソースコードを全面的に見直し、値渡しから参照渡しに変更したり、チャタリング対策を徹底したり、0.1us単位でタイミング設計したりと、C言語の再勉強にもなったので思い出深い。
それが功を奏したのか、”封印されし記憶 ポケステ”で検索すると本ブログが上位に出てくるし、はてなブログのアクセス解析機能を見ると、チートリモコン関係記事からのアクセスが結構あるみたいで、遊戯王真デュエルモンスターズ~封印されし記憶~の人気と、あの時はできなかった最強デッキを作りたいという需要の大きさを再確認できた。
ちなみに、アクセスはほん呪レビュー記事が圧倒的だけど、バラけるので上位にあるのは最新作と51、55辺りだけだったりする。
単独ではPICerFT製作記事が一番多いけど、これは本家がしっかり解説してて最近でも更新しているし、個人的には黒歴史のPICkit2を晒すというネタ記事のつもりなので、あまり参考にしてほしくないのだが・・・
今更言うのもだけど、レイアウト作成は設計者の個性が一番出るし、個人的に一番好きな作業だと思っているため、アレをそのまま作らないように。
そんなチートリモコンだが、プロトタイプということもあってかなり贅沢な仕様となっている。
特にリセットボタンは、当初はフォーマット切り替えボタンとして機能しており、最終的に採用した旧NECフォーマットの他にも、新NECフォーマット、家電協(AEHA)フォーマット、SONYフォーマット(5bit/8bit/13bitアドレス)の計6フォーマットに対応していた。
当初は新NECフォーマットを使っていたが、10000パターン以上試しても20種類ぐらい入手できず、旧NECフォーマットでやってみたら6000パターンぐらいでコンプしてしまった。
ちなみに、SONYフォーマットは当然ながら入手できたが、家電協フォーマットは失敗した。
ポケステが対応していないのか、筆者の設計が悪かったのかは不明。
また、見た目重視でハードウェアによるチャタリング対策を怠ったことにより、ソフトでのチャタリング対策に苦労したし、1~2%程度の確率でチャタリングし、同じのを送ったり飛ばしてしまったりもした。
そのため、最低限の機能だけを持たせ、小型で低予算、かつ操作性や信頼性の高いチートリモコン、通称チートリモコンLiteを作ろうというのが今回の試み。
まず、リモコンのフォーマットは旧NECフォーマットに絞るため、インターフェースで必要なのはCustomコードとDataコード、送信スイッチだけとなる。
CustomコードとDataコードはどちらも8bit+反転8bitのため、それぞれに8bitのスイッチを用意すればいい。
DIPスイッチなら8bit品もあるが、操作性と視認性を考慮してロータリースイッチという部品を使う。
この部品は4bitの論理スイッチが入っており、つまみを回すと0x0~0xFまでの論理値を切り替えることができる。
そのため、Customコード用とDataコード用に各2個使用し、視認性を考慮して正論理と負論理を使用した。
他には、内部プルアップを使用することでプルアップ抵抗を削減、内部発振を使用することで水晶振動子を削減した回路図がこちら。
PICマイコンはPIC16F1786を使用した。
PIC16F1786は全ポートに内部プルアップがあり、以前使用したPIC18F25K22ではポートBしか内部プルアップがないので注意。
これをブレッドボードに組み込むと、以下のような配線図になる。
電源は+5.5Vまでのため、ニッケル水素電池x4を使用。
ロータリースイッチは1ピンマークが左下を向くようにする。
ちなみに、ロータリースイッチの配線は、操作性を考慮してすべて奥側にしている。
また、色分けは抵抗でおなじみのカラーコードに合わせている。
何かと便利なので、ぜひ覚えよう。
実際の配線やテストの様子はこちら。
プログラミングや基板設計は次回以降の記事にて。