DigiQコマンダー

なにをするものか?

今回は前回製作したDigiQライター用の表示文字を変更するツールを製作するのが初期の目的です。
が、いつのまにやら脱線して横の線路に乗り上げた状態にまでなっています。

仕様

せっかくDigiQライターで赤外線のデコードに成功したので、文字データも赤外線で送信することにします。
しかしパソコンなど繋げていたら赤外線でやっていてもPICライターでやっていても規模は変わらないので、バッテリー駆動のスタンドアローンを目標にします。
つまり赤外線リモコンのようなものを目標とします。
文字を入力するには当然表示機も必要なので(肝心のDigiQライターではLEDが1列しかないので)表示機として16×2文字のキャラクタ液晶を使ってみることにしました。

試作

まいどのブレッドボードで試作します。
PIC16F84Aのマイコンモジュールを中心に液晶や赤外線LED、スイッチなどを適当に繋げます。

スイッチはうまくブレッドボードにささらなかったのでピンフレームに挿しています。
液晶のピンは2列なのでそのままブレッドボードに差し込むとショートしてしまうので右のような変換アダプタを予め作っておきました。
この状態でプログラムを作成しますが、あまり適当にデータを送信してしまうとDigiQが走り出してしまう可能性があります。
赤外線のフォーマットを確認する意味でまずDigiQのモータを回すことを目標にしました。
モータを回せるプログラムが組めれば、モータを回さないで通信することもできるはずです。

ケースの選定

もちろん四角いケースに入れても全然問題ないわけですが、四角い箱だと電池ボックスを付けてスイッチを付けてLEDを付けてと面倒なので、何か流用できるものは無いかと家の中をあさりました。
最初はテレビのリモコンかなにかを使おうと思ったんだけど、ゲームパッドが目に止まりました。
「これにLEDがつけばいいかな〜」と漠然と考えていた時こんなものを発掘しました。

PCエンジン用のコードレスパッドです、しかも未使用の新品!!
なぜ未使用かというと当時受信機とセットだと思って買ってきたのが送信機単品で使うに使えなくてそのまま埃をかぶっていました。
バッテリーは単4が4本と、これまた工作しやすい条件が揃っています。(単3が2本で3Vだったりすると5Vの液晶が駆動できないんです)
液晶を組み込むスペースは連射速度の切換スイッチの辺りからグバッとえぐれば何とかなりそうです。
パッドを使うことにしたので使用するボタンの数を再検討しました。
つまりPCエンジンには、上、下、右、左、@、A、SELECT、RUN、のキーがあり、どのボタンをPICで使用するかということです。(さすがに連射やパッドのID選択スイッチは要りません)
かなり悩んで・・・使用目的はともかく、とりあえず全部PICの足につなげておくことにしました。
しかし、16F84ではI/Oとして使える足の数に限りがあるので全てを同時に繋げるわけにはいきません。
1から作るならならキーをマトリックス配置にして節約することも可能ですが、このパッドのスイッチは押すとGNDに繋がるようにパターンがなっていて、マトリックス化しにくかったんです。
さらには液晶も繋がるので(液晶は節約しても6本必要)その分も見越さないとダメです。
そこで、PICを毎度の16F628に変更することにしました。
足の数こそ16F84と同じ18ピンですが、内部発振設定にすればクロックの入出力ピンをI/Oに振り分けることが可能です。
というわけで、ブレッドボードもスイッチ8個版に改造しました。

この時点ですでにISPも想定しているので逆流防止用のダイオードも見えます。
またISPのケーブルはDigiQライター用に作ったものと兼用できるようにしています。
赤外線LEDは1個だと飛距離が稼げないので、トランジスタに接続し、PICでコントロールしています。
こうすれば赤外線LEDが増えてもトランジスタなりFETなりを追加すればよいのでPICの足は1本のままで済みます。

製作

ブレッドボードの回路がおちついたのでパッドの改造に入ります。
まずは分解から。

赤外線部には受信機も同時にセットされていました。
PCエンジンはパッドが5本繋がるので、同時使用したときに他のパッドとバッティングしないようにやり取りするためのものなのでしょう。
おそらくこの受信素子が5V駆動なので電源が単4×4本なのだと思います。
ちなみに受信素子にはシャープ製でした。
ケース自体の加工はプラスチックなのでガリガリ削るだけでいいので液晶が収まるようにひたすら削ります。

裏から見た写真です。
表からみると完成状態と変わりないのでまだ見せません(笑)
液晶のソケットはそのままでは入らないので、90゜曲がったピンヘッダを液晶に付けてあります。
直接基板とハンダしてしまうといろいろ面倒なので・・・。
液晶とケースの固定は2mmのビス及びナットで行っています。
ビスは以前こっていたミニ4駆のものが2mmだったのでそれを利用しています。
ビスを探していたら当時の私のマシンが出てきました。

ベースはスーパーXシャシーだけど非純正パーツと自作パーツの嵐です。
さておき、次はメイン基板の加工です。
メイン基板で欲しいのはスイッチ部だけなので液晶の下になる部分を大きくえぐることにします。
しかしそれにはまずパッドのCPUがじゃまなので撤去します。

ハンダでチマチマ剥がしてもいいのですが、どのみち再利用する予定は無いのでカッターで足を切った方が早く取れます。

とれたら後はハンダコテで残った足を掃除すれば出来上がりです。

ついでにクリスタルも撤去しました。
つぎはメイン基板を削ります。

左が加工前、右が加工後。
ノコギリで粗く削っておき、ハンドニブラで角を削ってからヤスリで仕上げました。
このとき電源ラインやGNDラインのパターンを切らないように注意。
この状態でケースに液晶とともに入れてみるとこんな感じ。

次に切り取った空間を利用してガラエポの片面ユニバーサル基板を組み込みます。

メイン基板との接続は少し浮かせて2mmのビスで接続します。(浮かせないと部品の高さが稼げません)
左上の端子(右の写真がそのアップ)は丸ピンソケット5本分でISP端子になります。
なぜこの位置かというと・・・できてからのお楽しみということで。

スイッチの配線はパッドのCPUの跡地から頂きます。

赤外線LEDはデジプロポにならい6本搭載しました。
ドライブ用のトランジスタはLED2個に付き1本で、計3本搭載しました。
PICと液晶は3端子レギュレータで5Vを生成して供給していますが、LEDは電池の6Vを直接ぶち込んでいます。(レギュレータの容量が足りませんので)
それでも信号の「飛び」が悪く電圧降下しているようなので、手元にあった電解コンデンサを電源ラインに組み込んでみました。
LEDはユニバーサルに直接搭載する予定でしたが、部品面が逆になってしまったので急遽基板を切断し、ピンヘッダで反転接続しています。(基板の高さを元の基板に揃える目的もあります)
LEDの左側のスペースは、あわよくば受信素子も載せようと思い残しています。
PICの足は使い切っていますが、MCLRピン(ようするにリセットピン)を入力端子に設定すれば入れられないことはないと思っています。

全部品を搭載したの図。
液晶とは右の写真に写っているカラフルなフラットケーブルで繋げています。
完成状態。

完全にPCエンジンのパッドに液晶が埋め込まれただけの状態になりました。
ISP端子は左上のパッドのID設定スイッチのところにくるわけです。
ID番号表示がピン番表示に見えなくもないですね・・・。
それと現時点の回路図です。

抵抗値やコンデンサの値は手持ちの部品を組み合わせただけであまり考えてないので信用しないで下さい。(笑)
回路図上ではすでに赤外線受信機も載っていますが、まだ予定です。

ソフトウェア

目的はDigiQライターの文字変更ですが、前述のとおりモータを回すところから始めました。

カーソルキーの左右でLかRを選択し、上下で数値を入力します。
そのままDigiQの左右のモーターパワーを入力することになります。(MAX±31)
ちなみに正転は「+」、逆転は「-」表示になります。
数値を入力したら@ボタンを押すことによって赤外線を発射します。

なのでこんな数字を入力して赤外線を発射すると・・・

その場で高速スピンを始めます。
とりあえずまだここまでしか出来ていません。